嵌入式linux-ARM体系结构及接口技术,ARM产品线、体系结构、工作模式、寄存器框图、指令格式、机器码指令格式、条件助记符

1,ARM产品线

在这里插入图片描述

2,ARM体系架构

在这里插入图片描述

3,ARM的工作模式

  1. ARM主要有七种工作模式
模式含义
User(普通模式)非特权模式,大部分任务执行在这种模式
FIQ当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ(中断模式)当一个低优先级(normal) 中断产生时将会进入这种模式
Supervisor(超级用户模式)当复位或软中断指令执行时将会进入这种模式
Abort当存取异常时将会进入这种模式
Undef当执行未定义指令时会进入这种模式
System使用和User模式相同寄存器集的特权模式
  1. ARM有37个寄存器

1 个用作PC( Program Counter)
1个用作CPSR(Current Program Status Register)
5个用作SPSR(Saved Program Status Registers)
30 个通用寄存

4,ARM 工作模式及寄存器框图

在这里插入图片描述

  1. 没有标三角的寄存器是在七种模式下公用的,标三角的是有额外的寄存器
  2. system and user模式下
    · PC:记录当前程序运行的位置
    · LR:记录程序的返回地址
    · SP:指向栈顶指针
    · CPSR:当前程序状态寄存器

4.1,CPSR寄存器

在这里插入图片描述

  1. Mode位:处理器模式位
Mode位处理器模式Mode位处理器模式
10000User mode10001FIQ mode
10010IRQ10011SVC mode
10111Abort mode11011Undfined mode
11111System mode
  1. T 位 J 位
    T = 0;J=0 处理器处于 ARM 状态(一条指令4个字节)
    T = 1;J=0 处理器处于 Thumb 状态(一条指令2个字节)

  2. 中断禁止位:
    I = 1: 禁止 IRQ.
    F = 1: 禁止 FIQ

  3. 条件位:
    N = Negative result from ALU
    Z = Zero result from ALU
    C = ALU operation Carried out or borrow
    V = ALU operation oVerflowed

  4. CPSR / SPSR操作指令
    mrs r0,CPSR (写入)
    msr CPSR,r0 (读出)

5,ARM 指令格式(条件助记符)

ARM指令的基本格式:
<opcode>[<con>][S] <Rd>, <Rn>{,operand2}

opcode:指令助记码,如:MOV

con:执行条件,如NE,EQ

S:是否影响CPSR寄存器的值,设置时影响CPSR

Rd:目标寄存器

Rn:第一个操作数的寄存器

operand2:第二个操作数

条件码表
在这里插入图片描述

5.1 示例

	if(r0 ==3)
		r1 = 3;
	else if(r0 < 3)
		r1 = r0 + 3;
	else if(r0 > 3)
		r1 = r0 - 3;
.text
	
	mov r0,#1
	cmp r0,#3
	moveq r1,#3
	addlt r1,r0,#3
	subgt r1,r0,#3
	
	.end

6,ARM 机器码指令格式(立即数合法性)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. cond:条件码
  2. opcode:操作码
  3. 所有的汇编代码都要翻译成机器码来存储,但是机器码中用来存放立即数的位数是有限的,所以,当立即数过大,便会存在立即数不合法的问题。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值