《嵌入式系统》课件_第3章 ARM指令系统及程序设计基础.ppt

《嵌入式系统》课件_第3章 ARM指令系统及程序设计基础.ppt

ARM指令集中没有用于栈的操作指令,但是可以借用LDM / STM指令来完成栈操作。 POP操作使用一条LDM指令,PUSH操作使用一条STM指令。 FA 满递增堆栈; FD 满递减堆栈; EA 空递增堆栈; ED 空递减堆栈; BL指令在跳转的同时将PC地址加4字节存入链接寄存器 存储的是偏移量 (2^24)*4=4MB(因为ARM是32位的,其每个单位占4字节) BX 和 BLX是唯一可使用的切换指令集的方法。 CPSR T bit = Rm[0] BLX有两种形式: 带链接无条件转移到程序相对偏移地址(LABEL) 带链接有条件转移到寄存器中的绝对地址(Rm) BLX有两种形式: 带链接无条件转移到程序相对偏移地址(LABEL) 带链接有条件转移到寄存器中的绝对地址(Rm) 如果立即数被忽略,则用户程序调用系统例程的类型由R0的内容决定,同时,参数通过其它通用寄存器传递。 LDR/STR指令:寄存器在前,地址在后 LDM/STM指令:地址在前,寄存器在后 LABEL:相对PC的寻址方式。编译器在汇编时,会将标号LABEL汇编成PC的偏移量存入该指令的立即数字段。 B: Byte S: Sign H: Half LDM和STM指令可将任何范围为R0~R7的寄存器子集加载和存储, B指令是Thumb指令集中唯一可条件执行的指令。 PC = PC + (SignExtend

文档评论(0)

1亿VIP精品文档

相关文档