ARM测试题
张占 2011.11.25
1. 如何强行重新编译ADS1.2工程的所有文件?
答:Project -> Remove Object Code... 删除工程中的*.obj文件
2. LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?
答:LDR加载指令用于从内存中读取数据到寄存器中,例如:
LDR r1,[r3]
LDR伪指令用于加载32位的立即数或一个地址值到指定的寄存器中,例如:
LDR r0,#0xff123456
3. 在AXD调试时如何复位程序?
答:File -> Reload Current Image 重新加载映象文件
4. 指令MOV R0,#0x12345678是否正确?为什么?如何解决?
答:不正确。因为ARM是RISC结构,数据从内存到CPU之间的移动只能通过LDR/STR指令完成,而MOV只能在寄存器之间移动数据,不能干这个活,因此正确的写法是: LDR r0,#0X12345678 另外,还可以用LDR伪指令,后面跟一个“=”,LDR r0,=0x12345678,LDR伪指令和MOV是比较相似的,只不过MOV命令限制了立即数的长度为8为,也就是不要超过512,而LDR没有限制。如果LDR后面的立即数没有超过8