ARM体系结构(复习小结)

ARM体系结构(复习小结)

 

一、ARM工作模式

a) 两种工作状态:ARM状态(32位)和Thumb状态(16位),可相互切换;

b) ARM体系结构可以用两种方法存储字数据:

小端(高高低低),一般情况是小端、大端(高低底高);

c) 七种模式:用户模式(usr)、系统模式(sys)、快速中断(fiq)、外部中断(irq)、管理模式(svc,保护模式)、数据访问终止模式(abt)、未定义指令终止模式(und

d) ARM处理器运行模式的改变方法:

          i.  通过软件改变;

          ii.  通过外部中断或异常处理改变;

          iii. 应用程序运行在用户模式下时,访问了某些被保护的系统资源;

e) 除了用户模式以外,其余的6种称之为非用户模式,或特权模式;

f)  除了用户模式和系统模式以外的5种称为异常模式;

 

二、ARM寄存器

a)  37个寄存器:31个为通用寄存器,6个为状态寄存器;

 

b)  通用寄存器(31个)

       i.    不分组寄存器:R0~R7

       ii.   分组寄存器:R8~R14R13SPR14LR,用做子程序链接寄存器,指向函数的返回地址)

       iii.  程序计数器:R15PC 

c)         状态寄存器(6PSR

 

三、   ARM寻址方式

a) 立即寻址:操作数本身包含在指令中了

b)寄存器寻址:操作数直接放在寄存器中

c) 寄存器间接寻址:操作数的地址放在寄存器中

           ADD      R0, R1, [R2]          ;R0 <--R1 + [R2]

d) 基址变址寻址:需要一个基地址寄存器

           i.     LDR       R0, [R1, #4]          ;R0 <-- [R1 + 4]

           ii.    LDR       R0, [R1, #4]!         ;R0 <-- [R1 + 4]R1 ß R1 + 4

           iii.   LDR       R0, [R1], #4          ;R0 <-- [R1]R1 ß R1 + 4

e) 多寄存器寻址:一条指令可以完成多个寄存器值的传送

          LDMIA   R0, {R1, R2, R3, R4}           ;IA表示R0按字长度增长

f) 相对寻址:以程序计数器PC的当前值作为基地址

g) 堆栈寻址:

       i.  递增堆栈:向高地址方向生长;

        ii. 递减堆栈:向低地址方向生长;

        iii.  满堆栈:SP指针指向最后压入的有效数据项;

        iv. 空堆栈:SP指针指向下一个将要压入数据的位置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值