常用ARM指令集及汇编

发布者:beup001最新更新时间:2016-05-10 来源: eefocus关键字:ARM  指令集  汇编 手机看文章 扫描二维码
随时随地手机看文章
一、ARM处理器的寻址方式

二、指令集学习

(一) ARM指令集

1. 指令格式

2. 条件码

3. ARM存储器访问指令

1) LDR/ STR-加载/ 存储指令

2) LDM/ STM-多寄存器加载/ 存储指令

3) SWP-寄存器和存储器交换指令

4. ARM数据处理指令

1) 数据传送指令

a) MOV-数据传送指令

b) MVN-数据非传送指令

2) 算术逻辑运算指令

a) ADD-加法运算指令

b) SUB-减法运算指令

c) RSB-逆向减法指令

d) ADC-带进位加法指令

e) SBC-带进位减法指令

f) RSC-带进位逆向减法指令

g) AND-逻辑“与”

h) ORR-逻辑“或”

i) EOR-逻辑“异或”

j) BIC-位清除指令

3) 比较指令

a) CMP-比较指令

b) CMN-负数比较指令

c) TST-位测试指令

d) TEQ-相等测试指令

4) 乘法指令

a) MUL-32位乘法指令

b) MLA-32位乘加指令

c) UMULL-64位无符号乘法指令

d) UMLAL-64位无符号乘加指令

e) SMULL-64位有符号乘法指令

f) SMLAL-64位有符号乘加指令

5. ARM分支指令

1) B-分支指令

2) BL-带连接的分支指令

3) BX-带状态切换的分支指令

6. ARM协处理器指令

1) CDP-协处理器数据操作指令

2) LDC-协处理器数据读取指令

3) STC-协处理器数据写入指令

4) MCR-ARM处理器到协处理器的数据传送指令

5) MRC-协处理器到ARM处理器的数据传送指令

7. ARM杂项指令

1) SWI-软中断指令

2) MRS-读状态寄存器指令

3) MSR-写状态寄存器指令

8. ARM伪指令

1) ADR-小范围的地址读取伪指令

2) ADRL-中等范围的地址读取伪指令

3) LDR-大范围的地址读取伪指令

4) NOP-空操作伪指令

(二) Thumb指令集

1. Thumb指令集和ARM指令集的区别

2. Thumb存储器访问指令

1) LDR/ STR-加载/ 存储指令

2) PUSH/ POP-寄存器入栈 / 出栈指令

3) LDMIA/ STMIA-多寄存器加载/ 存储指令

3. Thumb数据处理指令

1) 数据传送指令

a) MOV-数据传送指令

b) MVN-数据非传送指令

c) NEG-数据取负指令

2) 算术逻辑运算指令

a) ADD-加法运算指令

b) SUB-减法运算指令

c) ADC-带进位加法指令

d) SBC-带进位减法指令

e) MUL-乘法运算指令

f) AND-逻辑“与”

g) ORR-逻辑“或”

h) EOR-逻辑“异或”

i) BIC-位清除指令

j) ASR-算术右移指令

k) LSL-逻辑左移指令

l) LSR-逻辑右移指令

m) ROR-循环右移指令

3) 比较指令

a) CMP-比较指令

b) CMN-负数比较指令

c) TST-位测试指令

4. Thumb分支指令

1) B-分支指令

2) BL-带连接的分支指令

3) BX-带状态切换的分支指令

5. Thumb杂项指令

1) SWI-软中断指令

6. Thumb伪指令

1) ADR-小范围的地址读取伪指令

2) LDR-大范围的地址读取伪指令

3) NOP-空操作伪指令

7。汇编指令API

MOV(MOVe)   传送指令
PUSH     入栈指令
POP     出栈指令
XCHG(eXCHanG)   交换指令
XLAT(TRANSLATE)   换码指令
LEA (Load Effective Address) 有效地址送寄存器指令
LDS(Load DS with pointer) 指针送寄存器和DS指令
LES(Load ES with pointer) 指针送寄存器和ES指令
LAHF(Load AH with Flags) 标志位送AH指令
SAHF(Store AH into Flgs) AH送标志寄存器指令
PUSHF(PUSH the Flags)   标志进栈指令
POPF(POP the Flags)   标志出栈指令
ADD     加法指令
ADC     带进位加法指令
INC     加1指令
SUB(SUBtract)   不带借位的减法指令
SBB(SuVtrach with borrow) 带借位的减法指令
DEC(DECrement)   减1指领
NEG(NEGate)   求补指令
CMP(CoMPare)   比较指令
MUL(unsinged MULtiple) 无符号数乘法指令
IMUL(sIgned MUL tiple) 有符号数乘法指令
DIV(unsigned DIVide)   无符号数除法指令
IDIV(sIgned DIVide)   有符号数除法指令
CBW(Count Byte to Word) 字节转换为字指令
CWD(Count Word to Doble word) 字转换为双字指令
DAA   压缩的BCD码加法十进制调整指令
DAS   压缩的BCD码减法十进制调整指令
AAA   非压缩的BCD码加法十进制调整指令
AAS   非压缩的BCD码加法十进制调整指令
AND     逻辑与指令
OR     逻辑或指令
XOR     逻辑异或指令
NOT     逻辑非指令
TEST     测试指令
SHL(SHift logical Letf)   逻辑左移指令
SHR(SHift logical Right)   逻辑右移指令
ROL(Rotate Left )   循环左移指令P58
ROR(Rotate Right)   循环右移指令P58
RCL(Rotate Left through Carry) 带进位循环左移
RCR(Rotate Right through Carry) 带进位循环左移
MOVS(MOVe String)   串传送指令
STOS(STOre into String) 存入串指令
LODS(LOad from string) 从串取指令
REP(REPeat)   重复操作前
CLD(CLear Direction flag) 清除方向标志指令
STD(SeT Direction flag)   设置方向标志指令
CMPS(CoMPare String)   串比较指令
SCAS(SCAn String)   串扫描指令
REPE/REPZ(REPeat while Equal/Zero)相等/为零时重复操作前缀
REPNE/REPNZ(REPeat while Not Equal/Zero)不相等/不为零进重复前缀
IN(INput)   输入指令
OUT(OUTput)   输出指令
JMP(JuMP)   无条件转移指令
JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ   条件转移指令
LOOP     循环指令P70
LOOPZ/LOOPE   为零/相等时循环指令
LOOPNZ/LOOPNE   不为零/不相等时循环指令
CALL     子程序调用指令
RET(RETun)   子程序返回指令
CLC(CLear Carry)   进位位置0指令
CMC(CoMplement Carry) 进位位求反指令
SRC(SeT Carry)   进位位置1指令
NOP(No OPeretion)   无操作指令
HLT(HaLT)   停机指令
OFFSET   返回偏移地址
SEG     返回段地址
EQU(=)   等值语句
PURGE   解除语句
DUP     操作数字段用操作符
SEGMENT,ENDS   段定义指令
ASSUME   段地址分配指令
ORG     起始偏移地址设置指令
$     地址计数器的当前值
PROC,ENDP   过程定义语句
NAME,TITLE,END   程序开始结束语句
MACRO,ENDM   宏定义指令

JZ   OPR //结果为零转移 
JNZ   OPR //结果不为零转移 
JS   OPR //结果为负转移 
JNS   OPR //结果为正转移 
JO   OPR //溢出转移
JNO   OPR //不溢出转移 
JP   OPR //结果为偶转移
JNP   OPR //结果为奇转移 
JC   OPR //有进位转移 
JNC   OPR //无进位转移
关键字:ARM  指令集  汇编 引用地址:常用ARM指令集及汇编

上一篇:常用 ARM 指令集及汇编
下一篇:arm指令集 从汇编开始

推荐阅读最新更新时间:2024-03-16 14:53

编译 arm 版的qt
因为项目需要,我们需要在开发板上使用QT开发平台,因此需要编译一个arm版的QT. 在网上找了一些资料,费了几天时间,终于成功了。 第一步,准备源码 先下载QT 源码,在http://qt-project.org/downloads页面,找到Qt libraries 4.8.6 for embedded Linux (230 MB) (Info), down 下来,拷贝到linux系统下。 解压缩,tar -xzvf qt-everywhere-opensource-src-4.8.6.tar.gz qt 源码将被解压到qt-everywhere-opensource-src-4.8.6下。 第二步,准备编译器 然后
[单片机]
STC51单片机SPI接口单主单从模式通信-汇编语言
;============================================ ;STC12C5410 spi 通信 ;单主单从模式 ;============================================ ;MASTER EQU 1 ;主单片机 MASTER EQU 0 ;从机 ;------------------------------------- ;定义COM波特率自动重装常数 ; RELOAD_8BIT_DATA EQU 0F6H; Fosc=18.432 ,4800 ;-------------------------------------
[单片机]
Arm推出首款多线程处理器Arm Cortex-A65AE
新闻摘要: • Arm推出安全就绪计划(Arm Safety Ready program)的最新补充,这是一款新型“汽车增强”处理器,旨在实现下一代安全驾驶体验 • 针对7纳米进行优化:Cortex-A65AE是Arm首款集成功能安全的多线程处理器,可在车载信息娱乐系统(IVI) /驾驶舱系统中处理自动和高处理量的传感器数据 • 同步多线程针对高处理量工作负载进行优化,并提供最佳的性能效率 北京 – 2018年12月21日 – Arm宣布推出首款集成功能安全的多线程处理器Arm Cortex-A65AE,它是Arm汽车增强版IP产品组合的最新补充,旨在更高效地处理下一代车辆中产生的多种传感器数据流,安全地实现创新
[汽车电子]
ARM入门学习指导
一 首先说说ARM的发展 可以用一片大好来形容,翻开各个公司的网站,招聘里面嵌入式占据了大半工程师职位。 广义的嵌入式无非几种:传统的什么51、AVR、PIC称做嵌入式微控制器;ARM是嵌入式微处理器;DSP;FPGA。 客观的讲,工作需求量上DSP的需求比ARM要多,而ARM和FPGA差不多。 DSP因为数字处理与通信领域的空前发展而火暴,小到MP3 射象头,大到我们军品里的控制器,应用面很广。 FPGA的兄弟一般做ANSIC(特殊芯片设计,好象是这么翻译的)。而ARM单纯说来并不比一个单片机强多少,但是它的独特就在于不断下降的价格和提升的性能。这完全依靠于ARM公司的战略,厉害!!很佩服
[单片机]
Arm Neoverse向云到边缘基础设施迈出坚实一步
各个重要的细分市场正在加速采用Arm Neoverse解决方案,包括大型互联网公司/云计算、高性能计算、5G以及边缘计算 。 通过Neoverse V1 和 N2平台的推出,Arm进一步促成基础设施转型。相较于Neoverse N1,这两款新平台的性能分别高出50%和40% 。 Arm持续投资软件生态系统,提供无耗损的开发体验与“装机即用“的软件 。 Neoverse解决方案的推出是Arm跨向基础设施的第一步,该解决方案正驱动着各个领域的创新,从超级计算机,到持续部署的全球最大型的数据中心,一路延展到边缘计算。 为了进一步加速基础设施转型,并打造创新新高度,Arm宣布Neoverse再度进阶,新增两个
[嵌入式]
赛普拉斯提供全系列灵活PSoC ARM Cortex-M0 和 Cortex-M0+解决方案
赛普拉斯半导体公司日前宣布推出PSoC 4可编程片上系统架构的一个新系列产品PSoC 4 S,实现了从8位及16位MCU嵌入式系统到32位ARM 平台的无缝迁移。8位产品易于使用且功能丰富,但此前工程师在将产品升级至32位性能和灵活性时却面临有限的选择。借助全新的PSoC 4 S系列,赛普拉斯可提供业内最为丰富的32位ARM Cortex -M0 和 Cortex -M0+产品组合,以及配套的片上资源,助力工程师完成全新设计。PSoC 4 S系列帮助工程师利用PSoC架构的易用性和灵活性,快速设计各种全新产品,满足最后阶段的规格变更要求,因而是各种工业系统、可穿戴电子产品、家用电器和消费应用的理想之选。 PSoC 4 S系列解决
[嵌入式]
ARM基础知识连载之一(转贴)
ARM处理器共有37个寄存器。其中包括: **31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。 **6个状态寄存器。这些寄存器都是32位寄存器。 ARM处理器共有7种不同的处理器模式,每一种模式中都有一组相应的寄存器组。在任何时刻,可见的寄存器包括15个通用寄存器(R0-R14),一个或两个状态寄存器及程序计数器(PC)。在所有的寄存器中,有些是各模式公用一个物理寄存器,有一些寄存器各模式拥有自己独立的物理寄存器。 **************************************************** 通用寄存器 *************************
[嵌入式]
基于ARM7的远程智能住宅控制装置的研制
  1 总体方案设计   如图l所示。智能家电控制系统由家庭智能控制模块、家庭内部网络系统、以及GPRS模块等几部分构成。   (1)家庭智能控制器:该部分是系统的核心。采用嵌入式系统设计,能够自动运行、处理数据,通过RS485总线管理和控制家庭系统。并且控制器通过GPRS模块,实现家庭系统与外部网络的通讯,使用户可以通过短信和互联网等方式实现家庭系统的远程控制,同时,控制器还通过键盘和显示屏为用户提供人机界面,方便用户实现本地控制。   (2)家庭系统:家庭系统通过单片机组成若干小的控制系统控制各家用设备,并通过统一的控制总线将这些小的控制系统组成网络,连接到家庭智能控制器,受家庭智能控制器控制。   家庭智能控制器系统
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved