128位数据相加(整理)

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

你可能感兴趣的:(测试)