01 arm汇编前的基础

ARM公司只负责设计芯片不生产具体的硬件

arm指令集版本, V4(包括arm9以下), V6(arm11), V7(a8, a9, a7, a15, a53)
流水线: arm9 5级, arm11  8级,  a9 x级

一个程序(由多条指令组成)-->程序要执行前先放入内存, 一条条指令执行
指令执行过程: 取指(从内存里把指令加载到cpu的缓存中) -->>  译码(把指令转换成硬件的功能信息) -->> 执行
        不管流水线多少级都是我们看成三个指令周期来完成取指,译码,执行

100Hz: 一秒钟内有100个时钟周期信号,每个信号表示10ms时间 
指令周期: 这个为指令的最小时钟单位, 一条指令要取指, 译码或执行的时间


1. arm与x86的不同点
    arm                      x86
RISC:精简指令集                 CISC: 复杂指令集(机器指令比较多)
    用汇编开发效率                             机器运算效率
 37寄存器                          十几个寄存器
arm绝大多的操作数放到寄存器        可以直接操作在内存里的数据, 而不用放入寄
后再运算                           寄存器

大多寄存器为通用寄存器               专用寄存器, 如作加法, 则把数放入AL/AH
arm的机器指令固定为32位每条        每条指令的长度不是固定的
统一编址                           独立编址

统一编址: 32位的cpu寻址空间为4G, 板子上的内存为1G,则内存只需用1G地址即可, 其它3G的地址空闲, 可把空闲的地址分配用于控制cpu的IO口功能使用.
像内存地址,与IO口地址都是处于同一寻址空间的编址方式就叫统一编址

独立编址: 内存地址与IO口的地址是不处于同一寻址空间的, 南北桥

cpu分七种工作模式: (架构手册P41)

user,  用户模式, 在linux系统中, 用户进程所在的工作模式
FIQ,  快速中断模式, 当发生快速中断时, cpu会自动进入此工作模式
IRQ,  中断模式,   当发生普通中断时, ......
Supervisor, 管理员模式, 在linux系统中, 内核驱动所在的工作模式
Abort,  终止模式,  当发生数据异常或取指异常时, 所在的模式
Undefined, 未定义模式, 当译码时遇到不认识的指令时, 会进入此模式
System, 系统模式,   一些系统的特定的任务的工作模式

cpu在某一时刻只能在一种工作模式下执行

寄存器(架构手册p43)
没有阴影部分的寄存器表示各个模式下是共用的, 带阴影的表示为此模式下特有的
如共用的寄存器里有R13, 而Supervisor模式下有带阴影R13_svc, 表示当cpu处在supervisor模式时, 访问R13寄存器时, 当访问的是R13_svc,而不是全局的R13


R0--R12可作为通用寄存器, 想干嘛就干嘛
R13, R14, PC, CPSR, SPSR这些寄存器有特定的用途, 不可以瞎搞

R11: fp
R12: ip
R13: 别名sp, 此寄存器用于装载栈顶的地址
R14: 别名lr, 此寄存器用于装载返回地址
R15: 别名pc, 此寄存器用于装载当前取指令的内存地址 
CPSR: 当前程序状态寄存器, 用于获取当前程序执行状态, 或用于改变工作模式等用途
SPSR: 备份程序状态寄存器, 专用于保存当前程序状态寄存器的值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值