| |
|
开发:
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】指令集与寻址——第三篇 |
目录 1、指令分类
1.1、指令指令:指令是能够被CPU所识别和执行的32位的机器码 机器码
1.2、mov?mov:把一个数移动到目标寄存器
示例(其中的@表示注释): 立即数:由0-255之间的任意的八位数据通过循环右移偶数位能够的得到的数据 如: ? 1.3、移位操作????????算数移动和逻辑移动:算数左移和逻辑左移作用一致 ????????左移
????????右移
示例: 2、比较指令CMP:把寄存器数据与另一个寄存器(或数值)进行比较,同时会更新CPSR的条件标志值。其实该指令就是执行一个减法,不保存运算结果,只会更新CPSR标志位(表示两个操作数的大小关系)。 2.1、条形码比较指令(CMP)的简单例子: (1)当r1=r2=2时如下
(2)当r1=1,r2=2时如下(与上面对比)
2.2、数据处理指令2.2.1、N Z C V条件码标志????????N : 当两个有符号数〈用补码表示)进行运算时,用N=1表示运算结果为负数,N=0表示运算结果为整数或零 ????????Z : Z=1表示运算结果为0,Z=0表示运算结果为非O ????????C : 运算加法产生进位,减法产生借位,运算加法时,如果产生了进位时C=1,否则C=0,减法运算时,如果产生了借位时C=O,否则C=1。进行包含移位操作的非加法/减法的指令时,C为移出值的最后一位,其他耳加法/减法指令时,C通常不变。 ????????V :进行有符号位(补码表示)运算时,符号位溢出,V=1。 2.3.1、ADD(加法)
数据运算----加法 2.2.2、64位加法
2.3.1、SUB(减法)
2.3.2、64位减法
3、跳转指令????????在程序执行流程中的跳转操作 3.1、使用程序计数器PC进行跳转
?3.2、B(跳转指令)????????B 目标地址
3.3、BL(跳转指令)????????在执行跳转操作前,先会把当前PC的值赋值给LR寄存器
4、伪操作与伪指令4.1、伪操作
4.2、数据操作一般都是为数据分配存储单元(内存中)
4.3、加载存储指令????????寄存器和内存传输 ldr 目标寄存器,存储器地址 ? 从存储器地址对应的存储器空i间读取32bit值,存放到目标寄存器
str 源寄存器,目标存储器地址 ? 从奇存器中把数据存储到存储器地址对应的存储器空间中
5、寻址方式5.1、立即寻址也叫做立即数寻址,操作数就已经存在于指令中,主要操作这个指令就能够的到数据
5.2、寄存器寻址寄存器的值作为操作数
5.3、寄存器间接寻址寄存器内容作为对应操作数的地址,[寄存器]:就是把寄存器内容作为地址,操作对应地址的值
5.4、基址变址寻址将寄存器(该寄存器一般称为基址寄存器,因为是存储地址),与指令中给出的地址偏移量相加得到一个有效地址
5.5、多寄存器寻址—条指令能够指定地址开始传输多个值到多个寄存器
5.6、相对寻址以开始位置作为基址,偏移指令个数的大小地址,基址加上偏移指令个数就是有效地址
5.7、堆栈寻址使用一个专用的称为堆栈指针的寄存存储当前操作的位置,指向栈顶地址 ? 可以操作一连串的多个数据(寄存器与存储器之间数据传输) LDM:从存储器批量取数据到寄存器 STM:从寄存器批量存数据到存储器 ? FD:满递减栈 ---------从结束地址开始(从高地址往低地址) ED:空递减栈 FA:满递增栈 EA:空递增栈 ---------从开始地址开始(从低地址往高地址)
-----------------------------------------------------此篇到此结束了------------------------------------------------------- |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 20:14:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |