作者:mobiledu2502871243 | 来源:互联网 | 2023-05-18 01:44
ARM汇编中,由于LDR指令和LDR伪指令的指令助记符是一样的,所以在阅读汇编代码时,如何确定一条LDR是指令还是伪指令呢?由于LDR指令和伪指令的助记符相同,所以我们必须从指令操作数的格式
ARM汇编中,由于LDR指令和LDR伪指令的指令助记符是一样的,所以在阅读汇编代码时,如何确定一条LDR是指令还是伪指令呢?
由于LDR指令和伪指令的助记符相同,所以我们必须从指令操作数的格式来区分。
先来看看LDR伪指令和LDR指令的语法格式。
1)LDR伪指令的语法格式
![](https://img1.php1.cn/3cd4a/24e5b/525/c081cf956e307ce3.jpeg)
图1: LDR 伪指令语法格式
2)LDR (immediate offset)指令语法格式:
![](https://img1.php1.cn/3cd4a/24e5b/525/98a1533b0fe7cc96.jpeg)
![](https://img1.php1.cn/3cd4a/24e5b/525/d4b7a91cb8d53ddf.jpeg)
图2:LDR (immediate offset)指令语法格式
3)LDR (register offset)指令语法格式
![](https://img1.php1.cn/3cd4a/24e5b/525/7a9f959a0066a6a2.jpeg)
![](https://img1.php1.cn/3cd4a/24e5b/525/8d52882ee53a65f2.jpeg)
图3:LDR (register offset)指令语法格式
4)LDR (PC-relative)指令语法格式
![](https://img1.php1.cn/3cd4a/24e5b/525/780275245f51aae0.jpeg)
![](https://img1.php1.cn/3cd4a/24e5b/525/e5a3ff6c407b7946.jpeg)
图4:LDR (PC-relative)指令语法格式
5)LDR (register-relative)指令语法格式
![](https://img1.php1.cn/3cd4a/24e5b/525/f33bdcd9bebd9233.jpeg)
![](https://img1.php1.cn/3cd4a/24e5b/525/8c61d34ae7d335b8.jpeg)
图5:LDR (register-relative)指令语法格式
由图1到图5可以看出,LDR伪指令只有一个操作数且操作数前有一个“=”前缀符号。
故这个前缀符号“=”就是区分LDR伪指令的关键。