7.8 [bx+si]和[bx+di]

在前面,我们用[bx(si或id)]和[bx(si或di)+idata]的方式来指明一个内存单元,我们还可以用更为灵活地方式:[bx+si]和[bx+di]

 

[bx+si]表示一个内存单元,它的偏移地址为(bx)+(si)(即bx中的数值加上si中的数值)

 

问题7.4

用debug查看内存,结果如下:

2000:1000 BE 00 06 00 00 00 ...

写出下面程序执行后,ax、bx、cx中的内容

mov ax,2000H
mov ds,ax
mov bx,1000H
mov si,0
mov ax,[bx+si]
inc si
mov cx,[bx+si]
inc si
mov di,si
add cx,[bx+di]

 

分析

ax: 00 BEH

bx: 10 00H

cx: 06 06H

 

源程序

assume cs:code

code segment
start:
    mov ax,2000H
	mov ds,ax
	mov bx,1000H
	mov si,0
	mov ax,[bx+si]
	inc si
	mov cx,[bx+si]
	inc si
	mov di,si
	add cx,[bx+di]

    mov ax,4c00h
	int 21h
code ends

end start

debug布置内存环境

debug执行结果

结果与分析一致

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值