compiler-construction - 什么是绝对代码,为什么在编译时就知道它?

标签 compiler-construction operating-system compile-time

在为我的操作系统概念决赛学习时,我偶然发现

Compile time: If memory location knows, **absolute code** can be generated;
must recompile code if starting location changes

给出的绝对代码示例是中断向量表。我想知道那个语句到底是什么意思,为什么在编译时知道中断向量表?

最佳答案

这意味着在已知的固定内存地址加载的代码。由于该地址是固定的,因此可以编译跳转以直接指向其目标内存地址,而无需在加载时使用相关跳转指令或修复任何内容。

关于compiler-construction - 什么是绝对代码,为什么在编译时就知道它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23552985/

相关文章:

代码片段 : is this pure C?

Ruby 到 Actionscript3 字节码

c++ - 如果编译器内联通过函数指针调用的函数会发生什么

linux - 为什么文件系统有自己的 block 大小,而不是使用硬盘 block 大小?

java - 套接字连接在独立 "main(..)"类中运行良好,但在 servlet 环境中超时

swift - 错误 : unable to spawn process (Argument list too long) in Xcode Build

c++ - 编译器不喜欢 void :'( - function declaration

java - Mac OS 上 JVM 崩溃会发生什么情况?

c++ - 如何测试类型转换时间?

c# - 在 C# 中,我可以在编译类型中检查一个类是否可序列化吗?