【发布时间】:2012-11-11 08:17:36
【问题描述】:
我正在为 x86/x64 CPU 指令编写编译器,但我似乎无法弄清楚人们所说的“位移”地址是什么意思。例如,此处详细说明了添加指令: http://www.c-jump.com/CIS77/CPU/x86/X77_0150_encoding_add_edx_displacement.htm
我只是试图实现将寄存器添加到正常内存地址的添加指令。问题是,该地址是一个“位移地址”。这是否意味着地址是一个有符号值,它是指令位置的偏移量?
【问题讨论】:
-
你在生成汇编代码吗?你不能生成 C 代码,或者使用 LLVM 吗?或者使用code.google.com/p/asmjit 或其他库发出机器代码?你了解 x86/64 指令集吗?你学习了吗intel.com/content/www/us/en/processors/…