关于ARM和汇编语言

一图流

 ARM

计算机组成

  • 输入设备

  • 输出设备

  • 存储设备

  • 运算器

  • 控制器

处理器读取内存程序执行的过程

  • 取指阶段:控制器器通过地址总线向存储器发送想要获取的指令的地址编号,存储器将指定的指令发送给处理器

  • 译码阶段:控制器对指令进行分析和译码,确定当前指令的作用

  • 执行阶段:控制器通知运算器进行对应的指令运算

指令

  • 机器指令:我们为处理器的每一种运算设置了一条机器指令,机器指令又被称为机器码,由多个0和1组成

  • 汇编指令:将每一条汇编指令理解为一条机器指令的封装形式,当一条汇编指令被编译后,就得到一条机器指令,执行后让处理器进行对应的运算操作

指令集

概念

  • 指令的集合

  • 不同的指令集可以被当作设计不同处理器内核的架构

  • 一般在设计一个内核时会预先将这个处理器内核可以进行的运算的指令设计出来,把这些指令组成一个指令集,按照这个指令集设计这个内核

复杂指令集(CISC)

  • 看重当前处理器的处理能力,将所有能够进行的运算操作的指令组成一个指令集,这种指令集就是复杂指令集

  • 优点:功能强大

  • 缺点:功耗、成本、体积都高

  • 特点

    • 每一条指令的长度不固定

    • 每一条指令的执行周期也不固定

复杂指令集(CISC)

  • 追求功能的特定性,将使用频度最高,比较简单的指令组成指令集

  • 精简指令集优点:开发成本低、功耗低

  • 缺点:实现的功能简单

  • 特点

    • 指令的大小固定

    • 指令的执行周期固定

常见的精简指令集架构

  • ARM架构:ARM公司设计的精简指令集架构,使用的最多

  • RISC-V架构:开源,未来会火

  • MIPS架构:中国龙芯收购,完全垄断

ARM架构

  • ARMV1-ARMV6 //基本不被使用

  • ARMV7:32位处理器架构 支持32位指令集

  • ARMV8:64位处理器架构,支持64位指令集,向下兼容32位指令集

  • ARMV9:64位处理器架构,支持64位指令集

ARM v7架构处理器的工作模式

  • User : 非特权模式,大部分任务执行在这种模式

  • FIQ : 当一个高优先级(fast) 中断产生时将会进入这种模式

  • IRQ : 当一个低优先级(normal) 中断产生时将会进入这种模式

  • Supervisor(SVC) :当复位或软中断指令执行时将会进入这种模式

  • Abort : 当存取异常时将会进入这种模式

  • Undef : 当执行未定义指令时会进入这种模式

  • System : 使用和User模式相同寄存器集的特权模式

ARMv7架构的寄存器组织

概述

  • 不同工作模式下使用的内核中的寄存器是不一样的

  • 不算MON和HYP模式,用户可操作的寄存器总共有37

  • 每一个寄存器的大小都是4字节

寄存器

  • R0-R12用来保存基本的操作数据和运算的数据

  • R13寄存器

    • 栈指针寄存器(STACK POINTER/sp)

    • sp寄存器保存该模式下栈内存栈顶地址,用于进行栈内存读写

  • R14寄存器

    • 链接寄存器(link register/LR)

    • 链接寄存器是用于特定程序跳转场景下用于保存程序的返回地址

  • R15寄存器

    • 程序计数器(program counter/PC)

    • PC寄存器中保存马上要被取指的指令地址

    • 当PC保存的地址执行后,PC的数值会自动向下加一条指令的大小

    • 实现程序跳转的本质就是修改PC的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值