微机原理中的一道题目请教大家

若程序的数据段定义如下,写出各指令语句独立执行后的结果:DSEGSEGMENTDATA1DB10H,20H,30HDATA2DW10DUP(?)STRIGNDB'123'... 若程序的数据段定义如下,写出各指令语句独立执行后的结果:
DSEG SEGMENT
DATA1 DB 10H,20H,30H
DATA2 DW 10 DUP(?)
STRIGN DB '123'
DSEG ENDS

(1) MOV AL, DATA1
(2) MOV BX, OFFSET DATA2
(3) LEA SI, STRING
ADD DI, SI

答案给出的解释是这样的:
(1) 取变量DATA1的值。 指令执行后是, AL = 10H.
(2) 变量DATA2的偏移地址。指令执行后, BX = 0003H.
(3) 先取变量STRING的偏移地址送寄存器SI,之后将SI的内容与DI 的内容相加并将结果送DI。指令执行后,SI = 0017H;DI = DI+0017H.
我现在不明白关于第二个问题中,为什么BX = 0003H, 第三个问题中,为什么执行后SI =0017H,
展开
tudou0digua
推荐于2016-12-02 · TA获得超过375个赞
知道小有建树答主
回答量:269
采纳率:0%
帮助的人:342万
展开全部
data1,data2和string都在同一数据段,所以在内存中存放是从上往下存的
|10h|
|20h|
|30h|
20个空的内存单元(dw 10 dup()十个字)
31h (‘1’的assic码)
32h
33h
所以data2的偏移地址为0003h(从上往下第四个,10h的偏移地址为0000h)
string为0017h(即十进制的23)
追问
这么说来,DATA1,DATA2,STRING之间的相对偏移地址都是有关联的啊,我还以为他们是完全独立的的呢。
北京奥德利诺
2024-08-20 广告
北京奥德利诺仪器有限公司代理德国Dataphysics品牌:OCA系列,DCAT系列,MS系列,SVT系列产品。代理奥地利Alicona品牌:IFM系列三维表面测量仪,EdgeMaster刀具测量仪等产品。欢迎致电。... 点击进入详情页
本回答由北京奥德利诺提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式