汇编一个小问题,请指点下,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/29 12:02:42
一段代码是这样的,

mov dx,10h
mov ax,0
s: sub ax,1
sbb dx,0
cmp ax,0
jne s
cmp dx,0
jne s

上面的程序循环100000h次,为什么,我没有分析透多少次,请讲解下,谢谢!

dx+ax=00100000H(32位)
sub ax,1 即ax=FFFFH
sbb dx,0 即ax=FFFFH dx=000FH (上一步已借位)

cmp ax,0 即ax=FFFFH与0比较
jne s 即FFFFH !=0H 继续执行S
同理 dx=000FH与0比较...

整个意思,让编译器做无用功,看清数据执行结果。

你只要明白"带借位减法"这个指令你就明白了
在书上找找,书上肯定有