2 freedom wings4 freedom_wings4 于 2016.09.08 09:28 提问

x86下,32位cpu的4GB虚拟地址空间中,绝对地址怎么转段偏移地址?
   例如我要往0x00403000中写入数据,我想用段寄存器:偏移地址的形式来表示,这要怎么转换?

1个回答

caozhy
caozhy   Ds   Rxr 2016.11.16 02:12

这个和操作系统有关,操作系统可以用分页、段、段页、平坦等很多方式,windows使用的是分页,那么操作系统才能转换成物理地址。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
X86下逻辑地址、线性地址、虚拟地址和物理地址的理解
参考:http://bbs.chinaunix.net/thread-2083672-1-1.html 本贴涉及的硬件平台是X86,如果是其它平台,不保证能一一对号入座,但是举一反三,我想是完全可行的。 一、概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。 ——这个概念应该是这几个概念中最好理解的一个,但是值得一
关于进程虚拟地址为什么是4G的讨论
重点: 因为我们平时用的机器一般是32位的,32位地址线能索引的最大内存量是4G,所以分配给进程的虚拟地址都是4G,而64位的这个值应该是4G个4G! 1、什么叫进程 当程序安静地躺在硬盘上时,它是一个“文件”,非要给点区别的话,它是一个“可执行文件”;而当程序运行起来,它就从硬盘上一跃进入内存,这时它就被叫做一个“进程/process”了。 2、什么叫进程 或许有些读者想打开机
计算机原理学习(7)-- x86-32 CPU和内存管理之分段管理
前言   前一篇我们介绍了内存管理中的分页试内存管理,分页的主要作用就是使得每个进程有一个独立的,完整的内存空间,通过虚拟内存技术,使得程序可以在较小的内存上运行,而进程之间内存空间相互独立,提高了安全性。这一篇将主要介绍内存管理中分段管理,以及两种的结合,也是目前计算机普遍采用的段页试内存管理。这也直接决定了的后面程序的编译,加载以及允许时的内存布局。       1. 分段
Linux进程的虚拟地址空间
1.以32位系统为例,Linux系统中每个进程共有3GB的用户地址空间,当用户调用系统调用时,内核线程会代表进程运行,此时是在内核空间内运行的,故所有进程共享1GB的内核空间. 所以,总的来说,每个进程可用的地址空间共有4GB2.进程的3GB用户地址空间由下图所示: 可以看出,进程的用户地址空间从0x00000000--0xbfffffff(2^30+2^31),依次是代码段,数据段,堆,
1.4 x86 CPU地址空间分配和寄存器访问
1、基本概念cpu地址空间和pci地址空间是两个常用的比较容易混淆的概念,特别是其中不同系列的cpu的实现还各不相同:x86系列cpu地址空间和pci地址空间是重合的,即为同一空间;而非x86 cpu的cpu地址空间和pci地址空间为两个独立的空间。
浅谈进程地址空间与虚拟存储空间
早期的内存分配机制 在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。 那当程序同时运行多个程序时,操作系统是如何为这些程序分配内存 的呢?下面通过实例来说明当时的内存分配方法: 某台计算机总的内存
----[x86实模式] 内存地址空间分布 CPU合成内存地址的方式 程序中段的加载 启动区格式要求----
2015.03.25-26 读《汇编语言》—王爽、《x86汇编语言:由实模式到保护模式》— 李忠、《30天自制操作系统》—川合秀实 整理笔记。 1 实模式 在实模式下,处理器的内存寻址方式和8086处理器相同。 2 计算机开机过程 任何一台使用Intel 系列CPU的PC机只要一开机,CPU就工作在实模式下。CPU从地址FFFF0H处开始执行指令,这是一条跳转指
内存地址空间布局
在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space)。 1 32位虚拟内存布局 在32位模式下虚拟地址空间总是一个4GB的内存地址块。这些虚拟地址通过页表(page table)映射到物理内存,页表由操作系统维护并被处理器引用。每一个进程拥有一套属于它自己的页表,但是还有一个隐情。只要虚拟地址被使用,那
32位x86体系linux虚拟地址空间
每个程序被运行起来以后,它将拥有自己独立的虚拟地址空间(Virtual Address Space),这个虚拟地址空间的大小由计算机的硬件平台而决定,具体由CPU的位数决定。硬件决定了地址空间的最大理论上限,即硬件的寻址空间的大小,例如,32位x86体系linux虚拟地址空间是4GB的虚拟空间大小,地址范围是0~2^32-1,即0x00000000~0xFFFFFFFF。 0X00000
【补充】虚拟地址空间以及编译模式
所谓虚拟地址空间,就是程序可以使用的虚拟地址的有效范围。虚拟地址和物理地址的映射关系由操作系统决定,相应地,虚拟地址空间的大小也由操作系统决定,但还会受到编译模式的影响。 这节我们先讲解CPU,再讲解编译模式,让大家了解编译器是如何配合CPU来提高程序运行速度的。 CPU的数据处理能力 CPU是计算机的核心,决定了计算机的数据处理能力和寻址能力,也即决定了计算机的性能。CPU一次(一个时