手順は、コードの書き込みコード・セグメントに、以下の通りであった、データセグメントと順次結果を追加のセグメントBは、Cセグメントに格納されます。
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
?
code ends
end start
回答:
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
mov ax,a
mov ds,ax
;注意ds里面应该放入的是第一个段a相应的地址
mov cx,4
mov bx,0
s:
mov dx, [bx];利用了汇编偏移量的特点
;同时利用了没有进位的特点,把0102与0102看成一个数字
;放到一个寄存器之中进行相加
add dx, [bx+16];
mov [bx+32],dx
add bx,2
;每次两个字节相加,所以每次的偏移量加2
loop s
mov ax,4c00h
int 21h
code ends
end start