我正在浏览一些代码示例,我看到以下行:
LDR R0, =(byte_1F30B65 - 0x756F70)
我似乎无法理解byte_
在十六进制数之前的含义。
我查了一下,发现了更多,例如
DCD unk_1944AA0
DCD off_1E78280
任何人都可以解释这些意味着什么吗?
注意:此代码已反编译,它不是原始代码。
答案 0 :(得分:1)
这些是由IDA或其他反汇编程序根据IDA约定自动生成的标签,用于命名自动生成的标签。 byte_
前缀表示IDA认为一个字节变量位于标签所指的位置,off_
前缀表示IDA认为指针变量位于标签的位置,并且ukn_
前缀意味着IDA不知道那里有什么。十六进制数是标签引用的地址。
off_
前缀来自x86程序集,其中所有地址都有偏移量和段部分。 off_
标签位置的变量只包含地址的偏移部分。在32位和64位x86汇编中,通常可以安全地假设偏移量相对于平坦的"覆盖整个32位或64位地址空间的段。