寄存器都是16位的,要实现两个128位的数字的加法。
128位的数字都放在内存里,先计算最16位的结果,然后开始高位挪动。
ds:si 指向第一个参数
ds:di 指向第二个参数
add128: push ax
push cx
push si
push di
sub ax,ax; CF设置为0
mov cx,8; 16一组需要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
如果用