Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157922
  • 博文数量: 17
  • 博客积分: 497
  • 博客等级: 下士
  • 技术积分: 187
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-02 18:40
文章分类

全部博文(17)

文章存档

2012年(8)

2011年(9)

分类: WINDOWS

2012-03-07 13:22:31

    中午自己看了一遍关于8086处理器内部结构这里,对于问题“8086 CPU 能提供20位的地址信息,可直接对1M个存储单元进行访问,而CPU内部可用来提供地址信息的寄存器都是16位,那怎样用16位寄存器来实现20位地址寻址呢"明白了不少。这里分享一下我的理解,若有不对请及时指出。
   
关于逻辑地址是允许在程序中编排的地址,8086的逻辑地址有段地值和段内偏移量两部分,表达形式为“段地址:段内偏移地址”。
 
之前说20位的地址信息可以对1M个内存单元进行访问,就是说编址00000H~FFFFFH,而段寄器CS,DS,SS,ES即存放了这些地址的高4位,如12345H,则某个段寄存器便会存储1234H高4位信息,这即为段地址
段内偏移地址就是移动后相对于段地址的偏移量。
物理地址就是地址总线上提供的20位地址信息。物理地址=段地址*10H+段内偏移地址。段地址乘以10H是因为段地址当时是取高四位得到的,所以还原后要让段地址左移4位(10H = 10000B),例如(cs)= 20A8H,(IP)= 2008H,则物理地址为20A8H*10H+2008H = 22A88H。
阅读(14357) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

baiyaxiong_oc2012-03-13 17:40:25

RSroad: 嗯讲的挺清楚的。他们说了解了8086架构下的内存寻址后就等于了解了8086中2/3的内容。.....
en,还要多多努力~

RSroad2012-03-11 21:54:12

嗯讲的挺清楚的。他们说了解了8086架构下的内存寻址后就等于了解了8086中2/3的内容。