ARM汇编指令中什么是有效立即数

2025-03-24 14:04:28
推荐回答(2个)
回答1:

要知道在ARM的体系结构中一条汇编指令的大小是32位,占一个字(4个字节大小),典型的ARM指令都是有统一的编码格式的,如下图所示:

一条指令的后12位(bit11~0),是指令中立即数占用的位数,,其中这个12位又分为2部分,前7~0位是数值部分,后11~8位是前7~0位要进行移位操作的移位数,也就是说如果一个立即数小于0xFF(255)那么直接用前7~0位表示即可,此时不用移位,11~8位的rotate_Imm等于0,如果前八位immed_8的数值大小了255,那么就看这个数是否能有immed_8中的某个数移位rotate_imm位形成的,说起来很拗口。如果是,那么这个立即数就是有效的,否则就是无效的。比如0xFF1不是合法的,而0xFF0就是合法有效数字。

回答2:

指的是二进制数字可以直接代表一个补码数,而不是指令。
常用于数值操作和基址偏移。