我正在使用llvm-clang编译器,将简单的C函数编译到ARMv7-A处理器上进行汇编。我想弄清楚这个指令的功能。ARM SUB指令操作数
SUB sp, sp, #65, 30
显然,这是在做一些局部变量堆栈指针的房间,但我从来没有见过四个操作数的ARM SUB指令。我猜测30以某种方式修改了#65,但我不知道如何,而且我还没有能够在“ARM体系结构参考手册”中找到详细信息。有什么建议么?
对于好奇,这是在一个程序的开始,创建一个8×8的整数矩阵,所以我希望该sp需要为堆栈上至少8 x 8 x 4字节的空间。
感谢您的快速回复。任何想到为什么会有一个立即移位而不是仅仅是数字260(ARM指令指定立即数为12位宽,对于常数260足够明显)? – Zeke 2010-07-15 20:37:42
@Zeke:马丁的回答明白了为什么 – 2010-07-15 23:21:29