assume cs:code,ds:a,ds:b,ds: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 bx,0//一般ax用于当作中介,bx当作偏移量
mov cx,8//cx用来定义循环的次数
mov dx,0//dx作为求和的寄存器
s:
//通过ax中介,把数据段定位到a位置,利用偏移量放到dx的dl中
mov ax,a
mov ds,ax
mov dl,ds:[bx]
//通过ax中介,把数据段定位到b位置,利用偏移量放到dx的dl中
mov ax,b
mov ds,ax
mov dl,ds:[bx]
//通过ax中介,把数据段定位到c位置,反向放到ds中
mov ax,c
mov ds,ax
mov ds:[bx],dl
inc bx//bx偏移量移动一个位置
loop s
mov ax,4c00h
int 21h
code ends
end start
汇编语言:程序如下,编写code段中的代码,将a段和b段中的数据一次相加,结果放到c段中
最新推荐文章于 2021-09-16 23:27:22 发布