正文:http://www.360doc.com/content/12/0704/23/9072830_222316960.shtml
1、x86没有LDR指令,mov可以完成读取内存地址数据的功能
2、arm是RISC架构,mov用于芯片内部操作,寄存器和寄存器之间,寄存器和立即数之间(立即数要+#,如:mov r1,#4),mov不可以用于读取内存,面试问到CISC和RISC最大区别可以说这个,呵呵!
3、ldr在ARM中用于读取内存数据,如:ldr r1,0x12345678,就是把0x12345678这个地址中的值存放到r0中。
4、ldr伪指令和ldr指令根本不是一个东西!
5、由于mov指令的第二个操作数必须8位图数据(看 ARM处理器中“8位位图”),如果非8位位图数据copy到寄存器中就用到ldr伪指令,(立即数要加=,如:ldr r1,=0x101)
6、在编译器发现ldr伪指令后面的立即数是8位位图数据时就自动转换成mov了
7、非8位位图数据,编译器将常量放入一个文字池中,用ldr(读内存指令)把它读出来,其实读的是一个地址。