汇编偏移量问题

我想问这个偏移量是多少mov[ecx+esi],dlecx=0010A83Aesi=00eefb9f... 我想问这个偏移量是多少
mov [ecx + esi],dl
ecx=0010A83A
esi=00eefb9f
展开
 我来答
jfaau02
2010-11-28 · TA获得超过358个赞
知道答主
回答量:265
采纳率:100%
帮助的人:49.4万
展开全部
8086的地址线有20根,能够直接访问的地址空间为2^20即1MB。即内存的地址编号可以从0编到1M。用16进制数表示内存的物理地址,其地址范围为00000H~FFFFFH,为5位16进制数。每一个内存单元都有一个确定的20位物理地址。

但是,16位CPU的字长为16位,一次只能访问2^16=64k内存,如何访问1M的内存空间呢,在8086CPU中采用了地址分段的办法。即每一个存储单元的物理地址都有段地址和偏移地址两部分构成。

规定:只有地址为16的整数倍的物理地址可以作为段地址。这样,1MB的内存空间被分为了1M/16=64K个段。段地址的特征为xxxx0H。

物理地址的计算公式为:

物理地址=段地址 * 16 + 偏移地址

或者,物理地址=段地址 * 10H + 偏移地址

所以:你的问题:

物理地址=426AH * 16 + 86H =426A0H + 86H =42726H

也可以这样做,因为物理地址是20位的,所以:物理地址等于段地址左移4位后再加上偏移地址。

希望我的回答对你有所帮助……
百度网友9045b38
2010-11-28 · TA获得超过1972个赞
知道小有建树答主
回答量:984
采纳率:90%
帮助的人:531万
展开全部
偏移量=ecx + esi=0010A83A+00eefb9f=ffa3d9
其实,你用XP下的科学计算器即可进行16进制的计算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戚继晨
2010-11-28 · 超过22用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:57.4万
展开全部
32位的没学
你那什么寻址方式啊
我只见过寄存器基址变址的
ecx对吗?

偏移量就是ecx+esi啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孝咏劳安安
2019-12-03 · TA获得超过3833个赞
知道大有可为答主
回答量:3111
采纳率:25%
帮助的人:204万
展开全部
你可能没有认真看教程,概念全都串了,再仔细看看吧。
如果是8086的CPU,那么地址线是20根,数据线是16根,传送数据时一次就传送16位。
物理地址是需要用16位的段地址和16位的段内偏移地址来合成的,合成的方法是:段地址左移4位(把16位扩展为20位)+段内偏移地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式