正在自学王爽的《汇编语言》第二版,关于带进位的加法指令 adc 有点疑问,请大家指教
书上11.6节举了这么一个例子:
mov ax,2
mov bx,1
sub bx,ax
adc ax,1
书上说执行后 (ax)=4, 执行时,相当于计算:(ax)+1+CF=2+1+1=4
我就始终搞不明白执行完sub bx,ax后,(bx)为啥就等于1了
CF=1我明白,是因为bx-ax的时候借位了,所以应该等于1
但是,sub bx,ax不是应该是 用bx-ax然后结果存到bx吗,前面(bx)=1,(ax)=2,两个减完后怎么会等于1呢?
------解决方案--------------------------------------------------------
没谁说 sub 指令后 bx 为 1 啊,后面的 adc 指令根本就不关 bx 什么事儿,加的是 ax 、CF 和另外一个操作数立即数 1 而已,bx 是多少都无所谓。