导航:首页 > 源码编译 > 程序编译时形成逻辑地址吗

程序编译时形成逻辑地址吗

发布时间:2025-05-11 13:38:29

‘壹’ 高级语言源程序编译后产生的地址是逻辑地址还是物理地址

由于操作系统技术的发展,可重用二进制程序技术使用了内存重定位技术,所以从汇编的角度来看即不是逻辑地址也不是物理地址。而且这个概念有些不同,编译后产生的地址是相对地址,是相对于可执行头部位置的地址。而逻辑地址是指在指令系统内部使用的用来访问内存的一个逻辑表示,通常表现为相对于某个段基地址的偏移量。
当可执行程序被载入内存之后,才会有逻辑地址存在,此时可执行程序被如何加载于何处,地址为多少,由操作系统决定,此时cpu访问程序用的是逻辑地址。一个程序一旦被编译确定之后基本上变量初始化的顺序固定,资源分配位置也固定,设置有编译器使用预分配机制,然后采用相对地址引用。
注意:某些工具书也称二进制可执行文件内所有的相对地址范围是逻辑地址空间,相对地址就是逻辑地址。因为两者的访问方式相似,逻辑地址变换依赖cpu或者附加变换机构(硬件),而二进制程序地址空间变换需要操作系统插手管理。
反汇编分析中常常将二进制内部地址称为逻辑地址,因为反汇编器不能还原原来汇编代码的地址跳转空间特性,因此得到一个相对于二进制数据起点位置的相对地址,而和内存和物理存储都没有关系。

‘贰’ 用户编写的程序时一般采用什么地址

逻辑地址。
因为逻辑地址会直接显示应用程序的内存单元,就是可以直接看到存储的位置,所以用户在编写程序的时候会直接采用逻辑地址进行编写。
逻辑地址往往不同于物理地址,通过地址翻译器或映射函数可以把逻辑地址转化为物理地址。

‘叁’ 操作系统中 区分编译后的形成逻辑地址和链接后的形成的最终逻辑地址 什么意思啊

编译后产生若干个目标模块,编译后的逻辑地址指的是每个模块都从0号单元开始编址,而链接将这些模块链接在一起,形成一个完整的装入模块,此时的逻辑地址会重新编址,也就是说链接后的逻辑地址是将整个模块从0号单元开始编址。

阅读全文

与程序编译时形成逻辑地址吗相关的资料

热点内容
android百度地图下载 浏览:198
mac不能写入移动硬盘有没有什么命令 浏览:631
创建新文件夹怎么备份 浏览:257
我的世界电脑版中国版服务器下载地址 浏览:713
安卓平板为什么创建下载文件失败 浏览:232
如何快速提高自律app 浏览:20
中文单片机程序设计语言 浏览:690
为什么电脑写程序编译不了 浏览:578
单片机精确计时 浏览:127
程序员与ui那个工资高 浏览:42
如何把c语言代码放到编译器 浏览:603
app开发用什么语言好 浏览:313
crmjava开源系统 浏览:246
电气工程师程序员年薪 浏览:131
设计院文件加密破解 浏览:842
苹果appstore在哪里看余额 浏览:635
linuxnfs开机挂载 浏览:882
godes加密 浏览:377
战狼2什么时候上映app 浏览:659
python运行系统指令 浏览:246