ZKX's LAB

汇编原理 repe 汇编中REPEREPZ是什么?

2021-04-27知识18

请问汇编中的REPZ CMPSB是怎样执行的 repz cmpsb如果ds:si和es:di所指向的两个字节相等,则继续比较。START:MOV AX,DATAMOV DS,AX 后面再加一行mov es,ax

汇编程序解释,完整解释哦 data segment-定义一个段,段名datal1 db 'abcde'-定义字节型数据,标号l1x1 db 'yes$'-定义字节型数据,标号x1x2 db 'no$'-定义字节型数据,标号x2data ends-data段结束data1 segment-定义一个段,段名data1l2 db 'abjde'-定义字节型数据,标号l2data1 ends-data1段结束code segment-定义一个段,段名codeassume cs:code,ds:data,es:data1-伪指令,假设code段与cs关连,假设data与ds关连,假的data与es关连,这条指令只是给编译器看的,不会被编译成机器码start:mov ax,data-标号start,代表程序的入口地址。下面连续8条指令为repe cmpsb指令做铺垫,repe是重复执行字符串的指令,cmpsb是比较字符串的指令mov ds,ax-用于字符串比较的第一个段地址mov ax,data1mov es,ax-用于字符串比较的第二个段地址,因为比较的是两个地址处的字符串mov cx,5-设置cx值,用来计数repe重复次数lea si,l1-将l1标号地址传送给si,这个si是给ds的偏移lea di,l2-将l2标号地址传送给你di,这个di是给es的偏移cld-将df标志位置0,这样repe cmpsb就可以正向执行repe cmpsb-上面的铺垫工作完成,就可以执行这个指令,开始多次重复比较字符jne next-如果取到的两个字符不。

8086汇编 REPE SCASB 1,最后一个字符不匹配,当然是可能的2,如果最后一个字符不匹配,关键寄存器的状态是这样的:(CX)=0,(ZF)=0

#汇编原理 repe

随机阅读

qrcode
访问手机版