嵌入式系统原理 第三章 ARM指令集与汇编程序设计

目录

3.1 ARM寻址方式

汇编语言指令:

操作码:

操作数:

寻址方式:

ARM处理器八种基本寻址方式:

寄存器寻址:

立即寻址:

寄存器偏移寻址:

寄存器间接寻址:

基址寻址:

多寄存器寻址:

堆栈寻址

相对寻址:

3.2 ARM指令集

3.3 ARM汇编程序设计

3.4 Thumb指令集


3.1 ARM寻址方式

汇编语言指令:

由操作码和操作数两部分组成

操作码:

指示指令要执行的具体操作。用助记符表示

操作数:

指出指令执行过程中的操作对象。用符号或符号地址表示

寻址方式:

微处理器根据指令中由操作数给出的地址信息,来寻找真实物理地址的方式

ARM处理器八种基本寻址方式:

  1. 寄存器寻址
  2. 立即寻址
  3. 寄存器偏移寻址
  4. 寄存器间接寻址
  5. 基址寻址
  6. 多寄存器寻址
  7. 堆栈寻址
  8. 相对寻址

寄存器寻址:

操作数给出的是寄存器编号

MOV R1,R2

SUB R0,R1,R2

立即寻址:

操作数是数据本身

SUBS R0,R1,#1        ;R0=R0-1

MOV R0,#0xFF000        ;立即数0xFF000装入R0寄存器

寄存器偏移寻址:

操作数在使用前,先执行移位操作

MOV R0,R2,LSL #3        ;R2的值左移三位放入R0

ANDS R1,R1,R2,LSL R3        ;R2的值左移三位,然后和R1与,结果放入R1

寄存器间接寻址:

操作数给出的是[寄存器编号],按寄存器内地址寻址找到真正操作数

LDR R0,[R2]        ;

SWP R1,R1[R2]        ;将寄存器R1的值和R2指向的存储单元的内容交换

基址寻址:

将基址寄存器的内容与指令中给出的偏移量相加,形成有效地址

LDR R2,[R3,#0x0C]        ;读取R3+0x0C指向的存储单元的内容,放入R2

STR R1,[R0,#-4]!        ;把R1的值保存到R0-4指向的存储单元

多寄存器寻址:

一次可传送几个寄存器值

LDMIA R1!,{R2-R4,R6}        ;将R1指向的顺序存储单元中的数据读出到R2~R4、R6,且每读取一

次,R1自动加四

STMIA R0!,{R2-R7,R12}        ;将寄存器R2~R7、R12的值保存到R0指向的顺序存储单元,且每保

存一次,R1自动加四

堆栈寻址

相对寻址:

基址寻址的一种变通,由PC提供基准地址,操作数为偏移量,相加得到有效地址

        BL SUBRI        ;

SUBR1

        MOV PC,R14        ;


3.2 ARM指令集

3.3 ARM汇编程序设计

3.4 Thumb指令集

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值