发布网友 发布时间:2022-04-23 22:19
共2个回答
热心网友 时间:2023-06-28 20:07
SBB 是带借位位的减法。
在这段程序中,进入S1循环时,先执行 sub ax,1指令,产生了借位(ax=0,ax-1后ax=0FFFF H,借位cy=1)。
执行sbb dx,0 时,dx减去0,再减去借位cy,dx从1000H变成0FFFH。
类似的,adc指令是带进位的加法。这条指令除了将两个加数相加外,还要加上进位位。追问我的问题是为什么向AX的高位借位就是向DX的值借位呢??
追答SBB 指令中是哪个寄存器,就是向谁借位。 本例中 是 SBB DX,0 所以就是向DX借位。
热心网友 时间:2023-06-28 20:08
sbb是带借位的减法。
sub ax,1的时候,cf产生了相应的变化。
然后sbb dx,0的时候,执行的就是dx-cf。