汇编初学者请教各位前辈一个问题!看的是王爽老师的汇编语言第三版

「已注销」 2016-10-31 11:54:55
在王爽老师的汇编语言书籍案例中 讲的是 16位 8086cpu
如今我们使用的是 64位操作系统 cpu我还不知道,希望各位前辈能顺带告知一下
另外有一个疑问就是,
8086cpu中 我再计算物理地址的时候 物理地址=段地址*16+偏移地址 这是王爽老师书上讲的

但是我实际在我电脑上用计算器计算的时候,显示 物理地址=段地址*10+偏移地址 这样才能算出和王爽老师一样的答案,请问各位前辈这是cpu造成的吗?还是64位操作系统造成的?原理是什么呢?是不是因为这本书比较老了,现在的硬件寻址能力都有很大提升,寄存器能存放的位数和书上不一样,造成这种情况的
...全文
361 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
16是sa的倍数,公式上告诉你的没错,如不明白往下看,原公式是sa*16+ea=物理地址,这里的16是10进制的,需要把十进制的16转成十六进制,也就是16=10H,所以最终的公式为sa*10h+ea=物理地址。最后说一下偏移地址,它是最大寻址FFFFH,注意,是最大!不是每个物理地址的偏移地址都能寻址到最大。书上有一题,你自己做一下,我记得那题的答案最大便宜地址直到FFF0H,这里不解释了,你去看看书,再想想为什么。
zara 2016-10-31
  • 打赏
  • 举报
回复
16 位的 8086 cpu,现在的 cpu 可以有各种模式的,能够虚拟原来的 16 或 32 的模式。
64 位的系统,windows 的已经彻底地拒绝了 8086 了,所以直接在这个系统上看这些是不行的了,必须上虚拟机,最简单的就是 DOSBox 了。
地址的问题,是 16 位 cpu 决定的,就是这么设计的;64 位的 cpu 在 16 位模式下也是这么计算地址。
「已注销」 2016-10-31
  • 打赏
  • 举报
回复
明白了,感谢前辈的回答,万分感谢!

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧