这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ARM指令集学习总结

共1条 1/1 1 跳转至

ARM指令集学习总结

工程师
2012-03-07 23:27:42     打赏
 ARM指令集比较简单,本文介绍ARM指令集中需要注意和不易理解的地方。     一、ARM指令集是32位的,程序的启动都是从ARM指令集开始,包括所有异常中断都是自动转化为ARM状态,并且所有的指令都可以是有条件执行的。         二、ARM指令集是Load/Store型的,只能通过Load/Store指令实现对系统存储器的访问,而其他的指令都是基于处理器内部的寄存器操作完成的,这和INTEL汇编是不同的,初学者很不易理解。         三、指令的后缀:"S"  可选后缀,若指定S,则根据指令执行的结果更新CPSR中的条件码。很多初学着不知道怎么更新,若这条指令执行完以后,对ARM程序状态寄存器的条件码标志(N,Z,C,V)的影响。     "! " 表示在完成数据操作以后,将更新基址寄存器,并且不消耗额外的时间。          如:LDR R0, [R1, #4] 他相当于 R0 R1,操作完毕后,R1 = R1+4。不需要"!"号。       八、堆栈寻址     一定要注意:堆栈操作总是要指定自动变址的,否则会覆盖以前保存的内容。     九、乘法指令     1、乘法指令不支持第二操作数为立即数。     2、结果寄存器不能同时作为第一源寄存器。         32位:MUL Rd,Rm,Rs                   MUL Rd,Rm,Rs                   //Rd和Rm不能为同一寄存器.。               64位:MUL RdHi,RdLo,Rm,Rs    //RdHi、RdLo和Rm不能为同一寄存器,RdHi和RdLo不能为同一寄存器。     十、跳转指令     1、BL和BLX跳转是硬件自动将下一条指令地址保存到LR(R14)中,不需要自己写指令。     2、当指令跳转到32MB地址空间以外时,将产生不可预料的结果。     ARM的指令集比较简单,肯定还有其他需要注意的地方,欢迎大家们积极参与补充。



关键词: 指令     学习     总结    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]