汇编网首页登录博客注册
doing1984的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
友情链接

[2013-04-17 20:13] 2.7 段地址*16+偏移地址=物理地址

我觉得书上给的例子,进制有点混乱

段地址:1230
偏移地址:00C8

这里的段地址跟偏移地址都是16进制

那么这个公式应该严谨的写成下面这样:

1230H*10H+00C8H=12300H+00C8H=123C8H


再往下看....

8086CPU是16位结构的
8086CPU的地址总线是20位的

【注意】这里的位是说二进制的16位,20位

20位-16位=4位

4位二进制可以用十六进制的1位表示

二进制     十六进制 
0000   ——   0 
0001   ——   1 
0010   ——   2 
0011   ——   3 
0100   ——   4 
0101   ——   5 
0110   ——   6 
0111   ——   7 
1000   ——   8 
1001   ——   9 
1010   ——   A(10) 
1011   ——   B(11) 
1100   ——   C(12) 
1101   ——   D(13) 
1110   ——   E(14) 
1111   ——   F(15)

其实十六进制就是二进制的简写,两者的转换非常简单(我是这样理解的^_^)

我们再来看书上的例子“1230H*10H+00C8H=12300H+00C8H=123C8H”

物理地址是20位二进制数,用十六进制表达就是5位

但CPU是16位的二进制数,也就是十六进制的4位

所以十六位的段地址1230H需要升一位,也就是1230H*10H,然后再加个尾巴就成物理地址了

有的东西书上有的我就不详写了

反正我看的时候有点头晕这个16是怎么个怎么回事

最后我们再来看书上的原文“段地址*16+偏移地址=物理地址”,这里的16到底是10进制还是16进制?我真晕了~~!
评论次数(1)  |  浏览次数(477)  |  类型(疑问) |  收藏此文  | 

[  doing1984   发表于  2013-04-17 20:15  ]

我觉得我这种解释比书说的“左移4位”要好理解一些,书上写的进制好混乱,看得我一头雾水

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码