ds:si指向第一个数,ds:di指向第二个数的内存空间
push ax
push cx
push si
push di
sub ax,ax
mov cx,8
s:mov ax,[si]
adc ax,[di]
mov [si],ax
inc si
inc si
inc di
inc di
loop s
pop di
pop si
pop cx
pop ax
ret
上面不能将4个inc换成add si,2
add di,2
因为add影响标志位,而上面我们的标志位一直要用,不能随便被改,当然也可以另外用个寄存器保留也行
比如:
FSTSW | AX | ;把状态寄存器的值传送给AX |
TEST | AX, 4 | ;测试第2位,即:检测ZE是否为1 |