首先必须明白 cpu和内存的区别:

·cpu是中央处理器,内存是物理数据存放的地方。cpu不直接存放数据而是通过内存来存放数据。

·cpu和内存之间通过20条地址总线相连接,地址总线就是cpu通过地址找到对应的内存的物理数据的传递工具。

·计算机只能处理0,1 二进制数据,每一条线可以处理 0,1 两种类型数据,所以20根线总共能够组成 2^20=1048576个不相同的地址,也就是能搜索 1048576个地址范围内的内存。我们知道一个地址代表一个存储单元,一个存储单元能够存储 1byte数据,那么也就是1048576个地址能够找到 1048576个1byte数据=1M的数据,即20根地址总线总共能处理1M的内存数据。

·疑问?cpu的寻址能力只能16位而达不到20位,这怎么办呢?

cpu的地址都是使用16进制表示的,最多也能够寻址2^16=65536,说明只能处理64K的内存数据。天啦噜,64K内存的计算机,能用?当然不能用啦,于是,段的概念横空出世。段,理解起来可以是假设将1G的数据划分为 n个段,每一个段是64K(65536个地址),那么16位的寻址就能找到了这65536个地址了。

·肯定还是不理解,对吧。那就说说段地址吧!!!

·开始介绍段地址:每一个段的开头也就是每隔一个64K就是一个基地址(逻辑上基地址等于段地址),段内的数据的地址就是当前基地址的偏移地址。这时,段地址+偏移地址就能够找到真正的内存数据了。

·cpu表示的地址为:基地址:偏移地址(偏移地址相当于在首地址的基础上 移动的距离)

插播:(起始地址顾名思义;相对地址和偏移地址的概念差不多;只不过用在不同的场合;偏移地址就是相对于基地址的偏移量就像是相对距离;基地址是一个段的起始地址,一般的20位地址总线,基地址为16位;逻辑地址就是基地址和偏移地址的复合形式,逻辑地址= 基地址 : 偏移地址;线性地址只是一个概念,表示地址成线性递增;物理地址要通过基地址和偏移地址的计算才能得出,一般的20位地址总线,其物理地址为:基地址 X 16(十进制)(相当于在基地址后面添一个0)+ 偏移地址)

比如,0BAC:0100

0BAC是基地址,0100是偏移地址。0BAC是4位的十六进制,将它表示为16位的二进制数据为:0000 1011 1010 1100。在这里,我们必须要把它转换成20位(也就是5位的16进制) 才能在20位地址总线中传递,也才能达到1G的数据访问范围。

那怎么转换成20位就能让数据传递到内存中找到物理数据了呢?

内存的物理地址 = 基地址*16(十进制)+偏移地址

内存的物理地址 = 0BAC*16+0100 = 0BAC0 + 0100 = 0BBC0H;你看,0BBC0就是5位的十六进制数了,满足20位(4*5=20bit)就可以传递到内存了。所以,实际传递的二进制就是:0000 1011 1011 1100 0000,这样的话20根地址总线就能处理它了。

注意了,32位汇编,32根地址总线,它总共能够直接就找到2^32个地址,(即4294967296 byte数据 = 4G的内存),而且不再将内存分成一段一段的,所有的内存区域都是连续的呢!

附读:

1.基地址 = 段地址 × 16
2.一个大小为64KB的段
起始地址 = 段寄存器的值(段地址) × 16 + 0
结束地址 = 段寄存器的值(段地址) × 16 + 0ffffh
3.8086cpu为16位,ip为16位寄存器,2^16 = 64(2^6) × 1024(2^10) = 64KB

·逻辑上,基地址 = 起始地址,理论上不等于。

·一般我们所的物理地址指的是某个单位的起始地址。这个某个单位是字节、字、或者某一段。
a.对于字节单元的物理地址:因为只有一个存储单元,所以其物理地址就是该单元的编号。
b.对于字单元的物理地址:因为只有两个存储单位,所以其物理地址就该单元的低字节单元地址(起始地址=小编号,结束地址=起始地址+2-1=大编号)。
c.对于段的物理地址:段的内容大小为"容量",所以其物理地址(起始地址)就是该段的低字节单元的编号,结束地址=起始地址+容量-1.

计算机基地址和偏移地址概念相关推荐

  1. 基地址和偏移地址的概念

    首先必须明白 cpu和内存的区别 cpu 中央处理器 内存是物理数据存放的地方 cpu不直接存放数据而是通过内存来存放数据 cpu和内存之间通过20条地址总线相连接,地址总线就是cpu通过地址找到对应 ...

  2. 微型计算机原理偏移地址,微机原理试卷答案(B)

    2008 -2009 学年第 一 学期闽江学院( B ) 适用年级专业:06物本 考试形式:闭卷 考试课程:微型计算机原理与应用 班级 姓名 学号 一.填空题 20% 1.8086CPU 从偶地址访问 ...

  3. 为什么要用段地址和偏移地址?

    本质含义 对于8086CUP而言 是一个16位结构的CPU 其具有的结构特性: (1)运算器一次最多可以处理16位的数据: (2)寄存器的最大宽度为16位: (3)寄存器和运算器之间的通路为16位 除 ...

  4. 相对虚拟地址,虚拟地址,文件偏移地址

    相对虚拟地址(RVA,Relative Virtual Address):RVA只是内存中的一个简单相对于PE文件装入地址的偏移位置,它是一个"相对地址",或称"偏移量& ...

  5. 段地址和偏移地址是什么

    举个很简单的例子:如果说联合国用01表示中国,02表示美国,这里的01和02表示段地址.而各个国家的首都也是01,这个01就是偏移地址.那么0101就表示北京,0201表示华盛顿,这里段地址加偏移地址 ...

  6. 基于8086CPU微处理器的汇编学习之段地址与偏移地址的分析

    人的记忆总是不靠谱的,早在几年前就看过汇编语言,由于没有总结下来资料,所以忘记了很多,所以重新梳理下汇编方面的知识,与君共勉. ------------------------------------ ...

  7. 【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...

    0 前言 此篇文章想写如何通过工具手查导出表.PE文件代码编程过程中的原理.文笔不是很好,内容也是查阅了很多的资料后整合出来的.希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献.因为了解 ...

  8. IP地址和端口基本概念

    这两天在使用proxychains设置代理上网的时候,遇到了一些原来学过的名词,但是只是生硬的对照着教程在走,但是里面一些概念不是很明白,这里遇到了就刚好记录.理解一下. 1. IP: IP地址是在网 ...

  9. 由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)...

    0 前言 此篇文章想写如何通过工具手查导出表.PE文件代码编程过程中的原理.文笔不是很好,内容也是查阅了很多的资料后整合出来的.希望借此加深对PE文件格式的理解,也希望可以对看雪论坛有所贡献.因为了解 ...

最新文章

  1. Django2.0——模板渲染(一)
  2. 外贸网络推广浅析怎么能更有效地提升网站的收录?
  3. 2015年度最全微课堂笔记精华包
  4. 【转】简单介绍几个CDS视图聚合函数
  5. VS中怎样打开MSDN帮助文档
  6. breakcontinue
  7. safari浏览器横屏怎么设置_如何避免苹果safari自带浏览器“跟踪”你的信息!
  8. c语言怎么加分数,用C语言编程平均分数
  9. python读取指定路径txt文件-如何使用pandas读取txt文件中指定的列(有无标题)
  10. LabView学习笔记(五):数据类型综合实验
  11. 有关视图状态(ViewState)的一些问题
  12. 【转】JMeter学习(十八)JMeter测试Java(二)
  13. cmake_安装导入静态/动态库的三种方式(find_package INSTALL 使用绝对路径)
  14. Python 程序设计方法
  15. 闲谈输入法、MinGW、日文字体
  16. 深入理解Nginx负载均衡和反向代理_学习笔记
  17. Windows 80端口被System进程占用的解决
  18. 浅析webpack的原理
  19. Nlog日志记录组件使用
  20. SAP STMS导入队列显示队列末尾

热门文章

  1. 计算机科学与工程第四轮学科评估,超级重磅:全国第四轮学科评估结果正式出炉!...
  2. Unity3D - 物体太远看不见的问题
  3. 【SQL】之数据类型
  4. 常用的HTML和CSS content属性特殊字符归纳
  5. 【SSRF-01】服务器端请求伪造漏洞原理及利用实例
  6. 9门库课程分享(台湾明星御用微整形医师,教你安全地悄悄变美)
  7. 常用导线截面积和载流量数据总结
  8. 数据结构学习——双向链表
  9. 基于CUDA的卷积神经网络算法实现
  10. 计算机教室消防说明,计算机教室消防制度.doc