ARM汇编中,由于LDR指令和LDR伪指令的指令助记符是一样的,所以在阅读汇编代码时,如何确定一条LDR是指令还是伪指令呢?
由于LDR指令和伪指令的助记符相同,所以我们必须从指令操作数的格式来区分。
先来看看LDR伪指令和LDR指令的语法格式。
1)LDR伪指令的语法格式
图1: LDR 伪指令语法格式
2)LDR (immediate offset)指令语法格式:
图2:LDR (immediate offset)指令语法格式
3)LDR (register offset)指令语法格式
图3:LDR (register offset)指令语法格式
4)LDR (PC-relative)指令语法格式
图4:LDR (PC-relative)指令语法格式
5)LDR (register-relative)指令语法格式
图5:LDR (register-relative)指令语法格式
由图1到图5可以看出,LDR伪指令只有一个操作数且操作数前有一个“=”前缀符号。
故这个前缀符号“=”就是区分LDR伪指令的关键。