段地址与物理地址

原创 2017年01月03日 18:00:09

上节提到了段地址的概念,实质上,内存并没有分段,而是从CPU的角度把内存按段来看待和操作。

段地址的值x16就是物理地址的初始地址·,偏移地址代表段中的内存单元。

将若干地址连续的内存单元看做一个段,用段地址x16定位段的起始地址,用偏移地址定位段中的内存单元。

有两点需要注意:

1.段的起始地址一定是16的倍数,这是肯定的。

2.偏移地址位16位,16位的寻址能力是64KB,所以一个段的长度最大是64KB,也就是16位。

8086提供了四个段寄存器:CS、DS、SS、FS。8086CPU要访问内存时,由这四个段寄存器提供内存单元的段地址。

设CS中的内容为M,IP中的内容为N,8086将从内存Mx16+N的位置开始读取指令并执行。

也可以说:8086机任意时候,CPU将CS:IP指向的内存地址当做指令执行。

一般段寄存器是与IP指令指针寄存器共同使用,每执行一步操作,IP值自动+指令长度,从而指向下一条指令。

一般来讲8086CPU的工作过程可以概括如下:

  1. 从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器
  2. IP=IP+所读取的指令的长度,指向下一条指令
  3. 执行指令,转到第一步,重复这个过程

在内存中,指令和数据都是二进制信息,在第一节中展示了一段机器码,以及与之相等的汇编语言的指令,很惊讶的发现,汇编语言的指令在机器语言看来仍然只是一段二进制数而已。

那么为什么CPU会将CS:IP指向的内存单元中的内容看做指令而不是数据呢?

答案是:CS:IP会被地址加法器处理得到20位的物理地址,CPU拿到这个物理地址会到内存中读取指令。

另外,如果内存中的一段信息被CPU执行过的话,那么它所在的单元一定被段地址与指令地址组合得到的物理地址指向过。

由此可见,CS:IP决定了CPU的寻址方式。


三、物理地址和段的概念

1.   物理地址的概念:        a. 物理地址就是指CPU的内存地址空间中的地址;        b. 内存地址空间将所有不同存储设备的存储空间都整合成了一个以为线性的地址空间;      ...

macmakeup网卡物理地址修改

  • 2015年08月18日 11:20
  • 286KB
  • 下载

计算机物理地址查看方法

  • 2015年08月06日 15:38
  • 89KB
  • 下载

Zynq-Linux移植学习笔记之15-用户APP直接访问PL物理地址

1、  背景介绍 在zynq中,由于有PL部分的存在,操作系统需要对PL部分的物理地址进行操作,也就是对操作相关IP核的寄存器。除了在驱动中进行映射外(参看前一篇文章点击打开链接),也可以直接在...

修改物理地址

  • 2015年08月15日 16:14
  • 117KB
  • 下载

物理地址扫描器

  • 2013年07月03日 10:13
  • 6.21MB
  • 下载

页式管理--物理地址计算问题小结

页式存储,物理地址计算,页框号计算,页表项地址推算

IP寻物理地址-纯真数据库

  • 2014年01月01日 15:31
  • 9.31MB
  • 下载

网卡物理地址

  • 2012年10月20日 12:07
  • 626B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:段地址与物理地址
举报原因:
原因补充:

(最多只允许输入30个字)