汇编程序多个数据段的使用

assume cs:code
a segment
	db 1,2,3,3
a ends
b segment
	db 1,2,3,3
b ends
c1 segment
	db 1,2,3,3
c1 ends
code segment
start:
mov bx,0
mov cx,4
xor dx,dx
Acumite:
;设置a段为数据段
mov ax,a
mov ds,ax
add dl,ds:[bx];累加a段
;设置b段为数据段
mov ax,b
mov ds,ax
add dl,ds:[bx];累加b段
;设置c1段为数据段
mov ax,c1
mov ds,ax
add dl,ds:[bx];累加C1段
;显示数据
add dl,30h
mov ah,02h
int 21h
inc bx
xor dx,dx
loop Acumite
mov ah,4ch
int 21h
code ends
end start

我们要知道,对于ds:[bx]的,段的偏移量应该是bx,除此之外,还可以使用[bx+9]但是[bx+cx]是不行的,[bx+局部变量]也不行

段偏移量的指定应该是bx,si,di也行

ds:[bx+si]或者ds:[bx+di]

ds:[bx+si+9]//必须是常数

ds:[bx+di+8]

变址寻址的寄存器组合是有:

bx和si,bx和di,bp和si,bp和di

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

世纪殇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值