ASM C++ Delphi

by jacky_shen

串处理指令

+-------+
+ CMPSB +
+-------+

ES:[DI] 与 DS:[SI] 作字节比较

比较方法:
    DS:[SI] - ES:[DI]

根据结果设置如下标志:
    OF, SF, ZF, AF, PF, CF

    if DF = 0 then
        SI = SI + 1
        DI = DI + 1
    else
        SI = SI - 1
        DI = DI - 1


+-------+
+ CMPSW +
+-------+

ES:[DI] 与 DS:[SI] 作字比较

Algorithm: Compare words: ES:[DI] from DS:[SI].

比较方法:
    DS:[SI] - ES:[DI]

根据结果设置如下标志:
    OF, SF, ZF, AF, PF, CF

    if DF = 0 then
        SI = SI + 2
        DI = DI + 2
    else
        SI = SI - 2
        DI = DI - 2


+-------+
+ SCASB +
+-------+

AL 与 ES:[DI] 作字节比较

比较方法:
    ES:[DI] - AL

根据结果设置如下标志:
    OF, SF, ZF, AF, PF, CF

    if DF = 0 then
        DI = DI + 1
    else
        DI = DI - 1


+-------+
+ SCASW +
+-------+

AX 与 ES:[DI] 作比较

比较方法:
    ES:[DI] - AX

根据结果设置如下标志:
    OF, SF, ZF, AF, PF, CF

    if DF = 0 then
        DI = DI + 2
    else
        DI = DI - 2


+------+
+ REPE +
+------+

ZF=1 时循环执行 CMPSB, CMPSW, SCASB, SCASW,循环执行的次数为 CX 的值
根据返回结果设置 ZF 标志

循环方式:

check_cx:
    if CX <> 0 then
        do following chain instruction
        CX = CX - 1 

        if ZF = 1 then: 
            go back to check_cx
        else
            exit from REPE cycle
     else 
        exit from REPE cycle


+-------+
+ REPNE +
+-------+

ZF=0 时循环执行 CMPSB, CMPSW, SCASB, SCASW,循环执行的次数为 CX 的值
根据返回结果设置 ZF 标志

循环方式:

check_cx:
    if CX <> 0 then
        do following chain instruction
        CX = CX - 1
        if ZF = 0 then:
            go back to check_cx
        else
            exit from REPE cycle
    else
        exit from REPE cycle

阅读更多
文章标签: algorithm go
个人分类: ASM
想对作者说点什么? 我来说一句

汇编语言程序设计-应用

2009年06月15日 59KB 下载

8086-8088汇编指令小结

2011年11月09日 25KB 下载

微机原理课件及习题.ppt

2011年09月17日 6.02MB 下载

没有更多推荐了,返回首页

不良信息举报

串处理指令

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭