在十六进制值之前,byte_或off_等前缀的含义是什么?

时间:2018-06-18 11:15:12

标签: assembly arm

我正在浏览一些代码示例,我看到以下行:

LDR R0, =(byte_1F30B65 - 0x756F70)

我似乎无法理解byte_在十六进制数之前的含义。 我查了一下,发现了更多,例如

DCD unk_1944AA0

DCD off_1E78280

任何人都可以解释这些意味着什么吗?

注意:此代码已反编译,它不是原始代码。

1 个答案:

答案 0 :(得分:1)

这些是由IDA或其他反汇编程序根据IDA约定自动生成的标签,用于命名自动生成的标签。 byte_前缀表示IDA认为一个字节变量位于标签所指的位置,off_前缀表示IDA认为指针变量位于标签的位置,并且ukn_前缀意味着IDA不知道那里有什么。十六进制数是标签引用的地址。

off_前缀来自x86程序集,其中所有地址都有偏移量和段部分。 off_标签位置的变量只包含地址的偏移部分。在32位和64位x86汇编中,通常可以安全地假设偏移量相对于平坦的"覆盖整个32位或64位地址空间的段。