首页 > 其他分享 >基地址和偏移地址

基地址和偏移地址

时间:2022-11-17 15:13:25浏览次数:43  
标签:20 16 地址 偏移 内存 cpu

首先必须明白 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

64K也就是65536个地址   16位的寻址就能找到了这65536个地址了  难道每个64K的 相同的位置的地址都有同一个    但是有n个64MK歇菜了 还是找不到

真正的那个地址啊  

如果在加入一个地址了??? 这个地址用来处理n个 这个地址就是段地址

每一个段也就是每一个64K就是一个基地址  段内的数据的地址就是当前基地址的偏移地址

此时 段地址+偏移地址就能够找到真正的内存数据了

cpu表示的地址为:基地址:偏移地址 (2个16位的地址 2byte)

 

而偏移地址相当于在首地址的基础上 移动的距离

 

比如 0BAC:0100

0BAC是基地址,0100是偏移地址

0BAC 4位的十六进制 表示 16位的2进制数据 转换后为:

0000 1011 1010 1100   

必须要转换成 20位(也就是5位的16进制) 才能在20位地址总线中传递 才能达到 1G的数据访问范围

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

内存的物理地址 =基地址*16+偏移地址

内存的物理地址 =0BAC*16+0100=0BAC0+0100=0BBC0H

0BBC0 就是5位的十六进制  就是 4*5=20位了 可以传递到内存了

实际传递二进制就是:

0000 1011 1011 1100 0000

20根地址总线就能处理了

 

 

32位汇编 32根地址总线 总共能够直接 就找到  2的32次方个地址 也就是4294967296 byte数据 也就是 4G的内存

而且不在将内存分成一段一段 所有的内存区域都是连续的

标签:20,16,地址,偏移,内存,cpu
From: https://www.cnblogs.com/amxiang/p/16899541.html

相关文章

  • PHP 之正则匹配获取img标签图片地址
    一、代码/***对富文本信息中的数据*匹配出所有的<img>标签的src属性*@paramstring$contentStr富文本字符串*@returnarray*/functiongetPatternMa......
  • Windows下Redis下载地址和后台启动停止命令
    Windows下Redis下载地址和后台启动停止命令Redis下载地址:https://github.com/MicrosoftArchive/redis/releases可视化工具下载地址:https://github.com/qishibo/AnotherR......
  • Linux调整网卡MAC地址(指令)【转】
    转自:https://blog.csdn.net/Kushidou/article/details/115295414 仅供参考学习使用 ......
  • ACV1引擎寻找ScriptHook地址
    ACV1引擎寻找ScriptHook地址0x00前言为了实现不封包即对游戏的脚本文件进行修改此处需要Hook相关位点Hook功能已经在ACV1FileHook中实现但是需要寻找两个地址第一个......
  • 配置基于源地址的策略路由
    公司通过两台路由器连接到外部网络,为了更好的实现网络管理,要求:IP地址为192.168.1.1~192.168.1.127的主机访问外网时通过路由器R3IP地址为192.168.1.128~192.168.1.254的主机访......
  • Linux从头学05-系统启动过程中的几个神秘地址,你知道是什么意思吗?
    作者:道哥,10+年的嵌入式开发老兵。文章目录​​0xFFFF:0x0000​​​​0xF000:0xE05B​​​​0x0000:0x7C00​​在第一篇文章中,我们就提到,现代操作系统是从最古老的​​80......
  • jar包的下载方法及地址
    引言:一般来说我们所需要的jar包都是在官网上下载的,但是对于一些大的项目可能需要很多的jar包,于是我们得去不同的官网去下载,不仅难找,难下载,有时下载的版本与所需的不一致。......
  • K8S固定Pod IP和Mac地址
    简介   客户有个需求,服务的授权是通过主机的Mac地址进行绑定,原部署方式是通过dockerrun--networkhost指定主机网络的方式运行,如今需要迁移到Kubernetes环境,在De......
  • Apache Tomcat 历史版本下载地址 官网地址
    Apache Tomcat历史版本下载地址官网地址官网地址:http://archive.apache.org/dist/tomcat/  点击需要下载的Tomcat版本,Tomcat版本和JDK版本对应关系如下  ......
  • PHP获取真实IP地址(获取本地127.0.0.1真实地址)
    PHP获取真实IP地址publicfunctionget_real_ip(){static$realip;if(isset($_SERVER)){if(isset($_SERVER['HTTP_X_FORWARDED_......