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指令总结(未完待续)相关推荐

  1. 数据分析 互联网 常用缩写大全(未完待续)

    数据分析指标 英文名 含义 PV(Page View,浏览量) 一个统计周期内,浏览页面的数之和 UV(Unique Visitor,访客数) 一个统计周期内,访问网站的人数之和 CPO( Cost ...

  2. 常用的思维模型(未完待续)

    常用的模型方法 5W2H AARRR 生命周期(Life Cycle) 五力模型 SWOT分析 战略地位与行动评价矩阵 SCP分析模型 战略钟 GROW模型 波士顿分析矩阵 GE行业吸引力矩阵 三四矩 ...

  3. (未完待续)浅谈微服务以及 常用中间件( zookeeper redis rabbitmq)

    传统的单体框架,已经不满足目前公司战略规划要求,近几年"微服务" 这个字眼,出现的越来越频繁,虽然有过一年多微服务项目经验,也很难把微服务解释清楚,到底何为微服务? Martin ...

  4. 软件开发者的常用工具(含Visual Studio必备插件)【未完待续】

    目录 编程工具 Visual_Assist(小番茄) Resharper ImageWatch GDB_ImageWatch qt-vsaddin-msvc2013-2.3.2 AnkhSvn-2.5 ...

  5. 《图解 HTTP》读书笔记(未完待续)

    ARP 协议(Address Resolution Protocol)一种以解析地址的协议,根据通信双方的 IP 地址就可以查出对应的 MAC 地址. MAC( Media Access Contro ...

  6. 程序人生(创)一个新手程序员的两三事(未完待续...)

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/53375654 本篇博文同时在论坛连载:http://bbs.csdn.net/topi ...

  7. linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要

    Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...

  8. CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)

    目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...

  9. javascript有用小功能总结(未完待续)

    1)javascript让页面标题滚动效果 代码如下: <title>您好,欢迎访问我的博客</title> <script type="text/javasc ...

  10. Ubuntu1804和2004高版本,右键无法创建TXT文档的解决办法【未完待续】

    Ubuntu1804和2004高版本,右键无法创建TXT文档的解决办法[未完待续] 问题: Ubuntu1804和2004高版本,右键无法创建TXT文档 解决办法1:[常用] 1.打开终端 2.输入: ...

最新文章

  1. 程序员论坛炫耀公司福利:一线互联网公司的下午茶,什么水平?
  2. 南通工学院计算机系97顾月,南通大学电气工程学院
  3. 2016 Multi-University Training Contest 1 1004 GCD(ST表+二分)
  4. 网络编程-Socket介绍
  5. 分类数据转换为树形结构
  6. Vue-动态绑定属性
  7. android屏蔽电话号码,手机屏蔽骚扰电话的方法【推荐方法】
  8. Oracle数据库经典50题(附答案),写完不理解的来打我
  9. 三笔输入法 开发过程记录
  10. AIC、BIC、QAIC及HQ准则
  11. windows常见电脑蓝屏的解决办法
  12. artdialog v6强大的模态对话框v6版api
  13. 谈谈CANopen协议的机制
  14. 平面机构创意组合及分析实验QY-JX09
  15. java使用bks双向认证_GitHub - wanglijun93/RxHttpUtils: Rxjava+Retrofit封装,便捷使用
  16. 众里寻他千百度-百度发展的秘密
  17. 华为胖瘦AP切换方法
  18. Pico Neo3 通过unity实现VR手柄瞬移功能
  19. python贴吧顶贴_Python Selenium使用——豆瓣顶贴(帖?)
  20. JDBC连接数据库(详细步骤)

热门文章

  1. python 面试题 博客园_python面试题
  2. ML:MLOps系列讲解之《基于ML的软件的三个层次之01 Data: Data Engineering Pipelines》解读
  3. 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
  4. 成功解决AttributeError: module ‘tornado.web‘ has no attribute ‘asynchronous‘
  5. 3D数学 ---- 矩阵和线性变换
  6. 导数,微积分,牛顿运动学制作创意地图
  7. 素数计算之埃氏筛法、欧拉筛法
  8. Linux mount挂载umount卸载
  9. myeclipse同时部署两个项目-permgen space
  10. CentOS 7安装 ifconfig 管理命令