设(DS)=1000H,(10100H)=20H,(10101H)=10H,写出语句执行后的AX内容mov AX,0100H和MOV AX,[0100H]

这道题的答案我没看懂,答案是这样说的:(AL)=(DS*16+0100H)=(10100H)=20H;(AH)=(DS*16+0100H+0001H)=(10101H)=... 这道题的答案我没看懂,答案是这样说的:(AL)=(DS*16+0100H)=(10100H)=20H; (AH)= (DS*16+0100H+0001H)=(10101H)=10H;(AX)=1020H
为什么要这样求AX呢??高手给小弟讲讲吧!!谢谢 了。。
展开
 我来答
碧波荡漾
2011-10-26 · 知道合伙人IT服务行家
碧波荡漾
知道合伙人IT服务行家
采纳数:17 获赞数:78
国家二等奖学金获得者

向TA提问 私信TA
展开全部
这题很简单啊。
mov ax,0100h指的是把立即数0100h传给寄存器ax,此时ax=0100h。接着下一条指令
mov ax,[0100]指的是把偏移地址为0100的内存单元中的内容传给ax,由于段地址存放在DS中,所以段地址为1000h,那么这个内存单元的物理地址为1000h*16+0100h=10100h,其内容为20h。
但由于ax是16位寄存器,ax分为al和ah两个8位寄存器,而一个内存单元的内容只能是8位,所以al=20h。
接下来这个内存单元的下一个单元(10101)的内容10h会传给ah。
合起来ax=1020h。
KawaguchiSky
2011-10-26 · TA获得超过2638个赞
知道小有建树答主
回答量:296
采纳率:100%
帮助的人:128万
展开全部
mov AX, [0100h]是内存直接寻址。其中段地址在DS中,偏移也就是0100h。于是得出物理地址PA = DS * 16d(10h)+ 0100h = 10100h

也就是说,物理地址10100h存储的一个字节类型数据为20h。如果把它看作字类型数据的存储地址,则10100h存储的是字类型数据的低位,10101h存储的是字类型数据的高位。所以认为10100h的字类型数据为1020h,故AX = 1020h。答案是以字节类型数据为单位计算的。

寄存器数据在内存中的存储都遵循“高高低低”原则,即高位存放于高地址,低位存放于低地址,而指针寄存器(无论是SP还是作存储器指针的BX、BP、SI、DI)永远指向数据的低位字节,IP除外,因为它指向的是指令。

| …… |
| 20h In AL | <--- 10100h
| 10h In AH | 10101h
| …… |
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
喷农药的苏27
2011-10-26 · TA获得超过284个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:170万
展开全部
mov AX,0100H
把ax赋值0100h
MOV AX,[0100H]
内存地址0100h的内容放到ax
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式