常用ARM指令总结(未完待续)
ARM指令集介绍
7种工作模式,2种工作状态
ARM指令的种类,共有7类指令,可以完成存储器访问,数据运算,程序跳转,处理器控制,以及帮助编程的伪指令等。
数据处理指令大致分为三类:
a.数据传送指令
b.算数逻辑运算指令
c.比较指令
数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作。所有的ARM数据处理指令均可以选择使用S后缀,并影响状态标志。
数据传送指令
MOV 指令可将8位图立即数或寄存器传送到目标寄存器,可用移位运算等操作
同类型的指令还有MVN,它可以实现数据的 非传递 ,即把操作数取反后送至目标寄存器
MOV指令与LDR指令都是往目标寄存器中传送数据,但是它们有什么区别吗?
MOV指令用于将数据从一个寄存器传送到另一个寄存器中,或者将一个常数传送到一个寄存器中,但是不能访问内存。LDR指令用于从内存在洪读取数据放入寄存器中。
算术逻辑指令
部分算数运算符
ADD 加法运算
ADC 带进位的加法运算
SUB 减法运算
RSB 逆向减法运算
SBC 带进位的减法运算
RSC 带进位逆向减法运算
部分逻辑运算符
AND 逻辑与运算
ORR 逻辑或运算
EOR 逻辑异或运算
BIC 位清除运算
比较运算符:
CMP: 数值比较
CMN: 负数比较
TST: 位测试
TEQ: 相等测试
乘法指令:
32 * 32 位乘法指令; MUL
32 * 32 位乘加指令; MLA
32 * 32 位结果为64位的乘/乘加指令。
MUL R3,R2,R1 ;
R3=R1 * R2
MLA R3,R2,R1,R0 ;
R3=R2 *R1 +R0
跳转指令:
B: 分支指令
BL :带链接的分支指令
BX:带状态切换的分支指令
ARM伪指令有四条
a.小范围地址读取指令:ADR
b.中等范围地址读取指令:ADRL
c.大等范围地址读取指令:LDR
d.空操作指令:NOP
地址表达式
常用ARM指令总结(未完待续)相关推荐
- 数据分析 互联网 常用缩写大全(未完待续)
数据分析指标 英文名 含义 PV(Page View,浏览量) 一个统计周期内,浏览页面的数之和 UV(Unique Visitor,访客数) 一个统计周期内,访问网站的人数之和 CPO( Cost ...
- 常用的思维模型(未完待续)
常用的模型方法 5W2H AARRR 生命周期(Life Cycle) 五力模型 SWOT分析 战略地位与行动评价矩阵 SCP分析模型 战略钟 GROW模型 波士顿分析矩阵 GE行业吸引力矩阵 三四矩 ...
- (未完待续)浅谈微服务以及 常用中间件( zookeeper redis rabbitmq)
传统的单体框架,已经不满足目前公司战略规划要求,近几年"微服务" 这个字眼,出现的越来越频繁,虽然有过一年多微服务项目经验,也很难把微服务解释清楚,到底何为微服务? Martin ...
- 软件开发者的常用工具(含Visual Studio必备插件)【未完待续】
目录 编程工具 Visual_Assist(小番茄) Resharper ImageWatch GDB_ImageWatch qt-vsaddin-msvc2013-2.3.2 AnkhSvn-2.5 ...
- 《图解 HTTP》读书笔记(未完待续)
ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...
- 程序人生(创)一个新手程序员的两三事(未完待续...)
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53375654 本篇博文同时在论坛连载:http://bbs.csdn.net/topi ...
- linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要
Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...
- CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)
目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...
- javascript有用小功能总结(未完待续)
1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...
- Ubuntu1804和2004高版本,右键无法创建TXT文档的解决办法【未完待续】
Ubuntu1804和2004高版本,右键无法创建TXT文档的解决办法[未完待续] 问题: Ubuntu1804和2004高版本,右键无法创建TXT文档 解决办法1:[常用] 1.打开终端 2.输入: ...
最新文章
- 程序员论坛炫耀公司福利:一线互联网公司的下午茶,什么水平?
- 南通工学院计算机系97顾月,南通大学电气工程学院
- 2016 Multi-University Training Contest 1 1004 GCD(ST表+二分)
- 网络编程-Socket介绍
- 分类数据转换为树形结构
- Vue-动态绑定属性
- android屏蔽电话号码,手机屏蔽骚扰电话的方法【推荐方法】
- Oracle数据库经典50题(附答案),写完不理解的来打我
- 三笔输入法 开发过程记录
- AIC、BIC、QAIC及HQ准则
- windows常见电脑蓝屏的解决办法
- artdialog v6强大的模态对话框v6版api
- 谈谈CANopen协议的机制
- 平面机构创意组合及分析实验QY-JX09
- java使用bks双向认证_GitHub - wanglijun93/RxHttpUtils: Rxjava+Retrofit封装,便捷使用
- 众里寻他千百度-百度发展的秘密
- 华为胖瘦AP切换方法
- Pico Neo3 通过unity实现VR手柄瞬移功能
- python贴吧顶贴_Python Selenium使用——豆瓣顶贴(帖?)
- JDBC连接数据库(详细步骤)
热门文章
- python 面试题 博客园_python面试题
- ML:MLOps系列讲解之《基于ML的软件的三个层次之01 Data: Data Engineering Pipelines》解读
- 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
- 成功解决AttributeError: module ‘tornado.web‘ has no attribute ‘asynchronous‘
- 3D数学 ---- 矩阵和线性变换
- 导数,微积分,牛顿运动学制作创意地图
- 素数计算之埃氏筛法、欧拉筛法
- Linux mount挂载umount卸载
- myeclipse同时部署两个项目-permgen space
- CentOS 7安装 ifconfig 管理命令