美文网首页
1-ARM处理器_大小端

1-ARM处理器_大小端

作者: ibo | 来源:发表于2017-02-03 15:32 被阅读0次

ARM

ARM支持的数据格式:
  • byte:8bit char
  • hw:16bit short
  • word:32bit int
  • dw:64bit long long
* ARM(32bit) thumb(16bit)
* ARM处理器工作模式:
  • user:唯一的非特权模式,只能操作普通的寄存器
  • system:特权模式,使用和user一样的寄存器,PC
  • FIQ:快速中断
  • IRQ:普通中断
  • SVC(Supervisor):复位,软中断进入的模式
  • abort:取指(到内存中取到指令)异常
  • undef:指令未定义时会进入这个模式
  • monitor:监控
* 除了system和user的模式都叫做异常模式
* r13 sp 堆栈指针(备份普通寄存器内容)
  • r14 lr 链接寄存器(备份PC)
  • r15 pc 程序计数器(指向下一条执行的指令)
一个函数的跳转:
  • 将pc备份到lr
  • 压栈,保存栈指针到sp
  • 执行新的函数
  • 执行完毕
  • 从栈里恢复数据到寄存器
  • 将lr恢复到pc
ARM核里有37个寄存器
  • system+user公用17个寄存器
  • FIQ独立:r8 - r14 SPSR(用来备份cpsr) 8个
  • IRQ独立的:r13、 r14、 spsr
  • SVC独立的:r13、 r14、 spsr
  • undef独立的:r13、 r14、 spsr
  • abort独立的:r13、 r14、 spsr
cpsr
  • 31 n位 负数位
  • 30 z 0
  • 29 c 进位位
  • 28 v 溢出
  • 24 j thumbee java字节码
  • 19-16 GE 大于或者等于
  • 15-10 if then
  • 9 e 大小端
  • 7 i 禁止IRQ
  • 6 f 禁止FIQ
  • 5 T 进入thumb状态
* 异常处理:4大步3小步
  • 1.拷贝cpsr到指定模式的spsr
  • 2.设置cpsr
    • a.改变状态为ARM状态
    • b.改变处理器模式
    • c.根据需要禁止中断
  • 3.保存pc到指定模式的lr
  • 4.设置pc为响应异常
从异常返回:
  • 从spsr恢复到cpsr
  • 从lr恢复到pc
B指令 简单的跳转 范围+—32M
BL带链接的跳转指令
  • 跳转之前将pc保存到lr 跳转之后将lr恢复到pc
MCU 微控制器
SOC 片上系统

相关文章

  • 1-ARM处理器_大小端

    ARM ARM支持的数据格式: byte:8bit char hw:16bit short word:32b...

  • Netty实现聊天功能

    客户端首先编写我们的服务端处理器 handler 服务端的初始化类 服务端 服务端服务端处理器 服务端初始化类 服...

  • HBaseAPI应用与优化

    HBase API 客户端操作 HBaseAPI 客户端操作 代码: Hbase协处理器 协处理器概述 官方地址[...

  • 网络编程-NIO 手动写一个框架

    一、服务端 1、服务端处理器 首先我们下一个服务端部分的处理器 2、服务端启用函数 二、客户端代码的编写 1、客户...

  • 拦截器原理

    实现模型: 业务组件 业务处理器 代理 客户端业务组件: 业务处理器 代理: 客户端: todo:执行busine...

  • 大小端

    大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数...

  • 大小端

    我还是弄不清,记不住到底哪个大,哪个小,所以我暂时先不管了 bool IsLittleEndian() { i...

  • 大小端

    大小端是指大于一个字节的变量在内存中的存储顺序,在内存中,通常来说,是以字节为单位存储数据的,以c++为例,一个c...

  • IT(大小端)

    计算机内存由低地址向高地址分配 小端(低尾端):低序字节放在低地址:数:1234 -> 内存:4321 大端(高尾...

  • 大小端

    Java与平台无关默认是大端,网络上传输数据普遍采用大端C语言默认是小端数据在计算机中存储的大小端两种,以十进制数...

网友评论

      本文标题:1-ARM处理器_大小端

      本文链接:https://www.haomeiwen.com/subject/kkydittx.html