IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ARM指令 -> 正文阅读

[嵌入式]ARM指令

寄存器

ARM总共有37个寄存器,31个通用寄存器,6个状态寄存器
应用程序工作在user模式,内核工作在supervisor svc模式
R13 堆栈指针
R14 LR链接寄存器(函数返回,中断返回)
R15 PC指针
SPSR save保存进入中断后的CPSR,中断退出让其值恢复

在这里插入图片描述
N:代表negtive
Z:代表zero(相等)
I:代表取消中断
F:代表取消快速中断
M:代表模式

在这里插入图片描述

在这里插入图片描述
寻址方式

  1. 立即数寻址
    ADD R0, R0, #0x3f; R0<-R0+0x3f
  2. 寄存器寻址
    ADD R0, R1, R2; R0<-R1+R2
  3. 寄存器间接寻址
    LDR R0, [R2]; R0<-[R2]
  4. 基址变址寻址
    LDR R0, [R1, #4]; R0<-[R1+4]
  5. 相对寻址
    BL NEXT MOV PC, LR跳转链接寄存器

ARM指令

使用@符号来表示注释
{}表示可写可不写的,<>表示一定要写的

MOV

在这里插入图片描述

MVN

在这里插入图片描述
#4 = 0b0100 取反 符号位1后面为0b1011,因为是负数,因此真正的值为符号位不变,其余位置取反加1,0b0100+0b1 = 0b0101也就是5,算上符号位就是-5.

SUB

操作数1必须是寄存器!
在这里插入图片描述

ADD

在这里插入图片描述

AND

在这里插入图片描述

ORR

在这里插入图片描述

BIC

标准ARM汇编%表示二进制,GNU中使用0b
在这里插入图片描述

CMP

比较结果在状态寄存器N表示
在这里插入图片描述

TST

条件

在这里插入图片描述

BL

在这里插入图片描述

LSL

在这里插入图片描述

ROR

在这里插入图片描述

MRS MSR

move register to status register
move status register to register
在这里插入图片描述

在这里插入图片描述

寄存器装载和存储

store register
loader register
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


伪指令

数据伪指令

伪/指令本身并没有所对应的机器码,它只是在编译的时候起作用,或者转
化为其他的实际指令来运行。

  • global(全局符号,后面c语言也可以调用)
  • ascii(字符串)
  • byte(字节)
  • word
  • data(数据段)
  • equ(宏)
  • align(下面的数据对齐)
.data@数据段
hello:
.ascii "helloworld"@定义一个hello数据值为helloworld
.equ DA, 0x89@宏定义

操作类伪指令

mov指令所使用操作数不能超过8位,后面shifter_operand12位不是全部用来装数据,其中还有4位是用来看这个数据是否左移或者右移的!
在这里插入图片描述
使用ldr伪指令就可以达到超过8位数据赋值给寄存器,只不过ldr用伪指令的方式立即数要使用=号表示
ldr r0, =0x1ff

nop 是空操作,其实质是mov r0, r0没有意义,消耗时间

协处理器访问指令

CP15:coproces
提供16组寄存器
在这里插入图片描述

在这里插入图片描述

协处理器访问

使用mcr, mrc
在这里插入图片描述

在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:19:00  更:2021-09-06 11:20:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:44:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码