之前的那篇博文,讲到了大数据的加法运算,这里像之前那样编写一个子函数,以后调用方便
根据上一次的公式有下面的解决办法,(功能写在代码中),如下:
;实现的是:将data中的0~15的数和16~31的数加起来,将结果放在32~47
assume cs:code, ds:data
;这里的128位在data空间中是逆序放置的,就是从低位到高位排列的
data segment
dw 0A452H, 0A8F5H, 78E6H, 0A8EH, 8B7AH, 54F6H, 0F04H, 671EH
dw 0E71EH, 0EF04H, 54F6H, 8B7AH, 0A8EH, 78E6H, 58F5H, 0452H
dw 8 dup(0)
data ends
code segment
start: mov ax, data
mov ds, ax
mov si, 0
mov di, 16
call add128
mov ax, 4C00H
int 21H
add128: push ax
push bx
push cx
push dx
push si
push di
sub ax, ax ;将CF清零
mov ax, ds:[si]
add ax, ds:[di] ;对低位用add指令
mov ds:[si + 32], ax