作者:郭嘉

邮箱:allenwells@163.com

博客:http://blog.csdn.net/allenwells

github:https://github.com/AllenWell

【基于Android的ARM汇编语言系列】章节列表

【基于Android的ARM汇编语言系列】之中的一个:ARM汇编语言开篇

【基于Android的ARM汇编语言系列】之二:C/C++程序生成ARM汇编程序的过程分析

【基于Android的ARM汇编语言系列】之三:ARM汇编语言程序结构

【基于Android的ARM汇编语言系列】之四:ARM处理器的寻址方式

【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集

【基于Android的ARM汇编语言系列】之六:NEON指令集与VFP指令集

写在前面:本篇文章旨在大致介绍下ARM指令集的相关内容,这里也同一时候提供一个有详解和用例的待书签的PDF版本号,方便大家查阅。

ARM指令集详解

指令集是处理器的核心。ARM指令的基本格式例如以下所看到的:

opcode {cond}{S}{.W\.N}Rd, Rn{.operand2}
  • S:指定是否影响CPSR寄存器的值,如ADDS。SUBS等。
  • .W.N:指令宽度说明符。
  • Rd:目的寄存器。

  • Rn:第一个操作数寄存器。

  • operand2:第二个操作数,第二个操作数能够是马上数、寄存器或寄存器位操作。
  • cond:运行条件。它的取值例如以下图所看到的:

一 跳转指令

1.1 B

跳转指令。

1.2 BL

带链接的跳转指令。

1.3 BX

带状态切换的跳转指令。

二 存储器訪问指令

2.1 LDR

从存储器中载入数据到寄存器。

2.2 STR

存储数据到指定的存储单元。

2.3 LDM

从指定的存储单元载入多个数据到一个寄存器列表。

2.4 STM

将一个寄存器列表的数据的数据存储到指定的存储单元。

2.5 PUSH

将寄存器推入满递减堆栈。

2.6 POP

从递减堆栈中弹出数据到寄存器。

2.7 SWP

用于寄存器和存储器之间的数据交换。

三 数据处理指令

3.1 MOV

将8位马上数或寄存器里的内容送到目标寄存器中。

3.2 MVN

将8位马上数或寄存器里的内容按位取反后送到目标寄存器中。

3.3 ADD

加法指令。

3.4 ADC

带进位的加法指令。

3.5 SUB

减法指令。

3.6 RSB

逆向减法指令。

3.7 SBC

带进位的减法指令。

3.8 RSC

带进位的逆向减法指令。

3.9 MUL

乘法指令。

3.10 MLS

3.11 MLA

3.12 UMULL

3.13 UMLAL

3.14 SMULL

3.15 SMLAL

3.16 SMLAD

3.17 SMLSD

3.18 SDIV

有符号数除法指令。

3.19 UDIV

无符号数除法指令。

3.20 ASR

算术右移指令。

3.21 AND

逻辑与指令。

3.22 ORR

逻辑或指令。

3.23 EOR

异或指令。

3.24 BIC

位清除指令。

3.25 LSL

逻辑左移指令。

3.26 LSR

逻辑右移指令。

3.27 ROR

循环右移指令。

3.28 RRX

带扩展的循环右移指令。

3.29 CMP

3.30 CMN

3.31 TST

位測试指令。

3.32 TEQ

四 其它指令

4.1 SWI

软中断指令。

4.2 NOP

空操作指令。

4.3 MRS

读状态寄存器指令。

4.4 MSR

写状态寄存器指令。

【基于Android的ARM汇编语言系列】之五:ARM指令集与Thumb指令集的更多相关文章

  1. 【基于Android的ARM汇编语言系列】之三:ARM汇编语言程序结构

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...

  2. ARM指令集、Thumb指令集、Thumb-2指令集

    MCU使用什么指令集主要由内核决定的,比如Cortex-M3使用的是Thumb-2指令集 ARM指令集: 编代码全部是 32bits 的,每条指令能承载更多的信息,因此使用最少的指令完成功能, 所以在 ...

  3. 13 ARM指令集与Thumb指令集

    指令格式 ARM基本格式 <opcode>{<cond>}{S}{.W|.N}<Rd>,<Rn>{,<operand2>} opecode: ...

  4. Android ARM汇编语言

    简介 ARM是Advanced RISC Machine的首字母缩写,它可以称之为一家嵌入式处理器的提供商,也可以理解为一种处理器的架构,还可以将它作为一套完整的处理器指令集. 原生程序与ARM汇编语 ...

  5. ARM版本系列及家族成员梳理

    ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能.廉价.耗能低的RISC (精简指令集)处理器. 1985年第一个AR ...

  6. ARM的体系结构与编程系列博客——ARM处理器系列介绍

    ARM处理器系列介绍 现在到了3月,过年过得过于舒服了.系列博客也停更了近半月,我果然是个慢(lan)性(gui)子,那么趁着到校的第一天晚上,就写一篇博客来继续我的系列博客了!众所周知,ARM处理器 ...

  7. ARM v8-A 系列CPU的MMU隐射分析

    ARM v8-A 系列CPU的MMU隐射分析 摘要:V8-A系列CPU有ELX,X为0~3等4个异常级别,又有AArch64和AArch32两种执行状态,异常级别可以决定执行状态,而对应着执行状态,M ...

  8. 一点理解之 CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库

    @2019-02-14 [小记] CmBacktrace: ARM Cortex-M 系列 MCU 错误追踪库,用来将单片机故障状态寄存器值翻译出来输出至终端上以便排错 CmBacktrace: AR ...

  9. ARM汇编语言

    ---恢复内容开始--- arm汇编语言 汇编语言是一种程序设计语言,arm处理器是一种16/32位的嵌入式RISC微处理器.一开始我把这混为一谈了.ARM汇编的特点:汇编语言,又叫助记符语言. 1) ...

随机推荐

  1. 利用递归分割(Split)字符串

    利用递归分割(Split)字符串 SqlServer 递归 工作需要将表里的某个字段分割之后再插入到另一个表中,其实数据量不大,直接用游标一行一行的取,再利用循环来分割之后再实现数据的插入应该可以直接 ...

  2. 0423-mysql插入语句大全

    /*注意: 1.字段和值要一一对应 2.值的数据类型是字段的数据类型 3.当输入的字段是表中全部字段时,字段可以省略不写: insert into login values ('zhangsan',‘ ...

  3. js返回16位随机数

    public string GetDataRandom()        {            string strData=DateTime.Now.ToString();            ...

  4. codevs1688 求逆序对(权值线段树)

    1688 求逆序对  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 给定一个序列a1,a2,…, ...

  5. 前端布局神器 display:flex

    前端布局神器display:flex 一直使用flex布局,屡试不爽,但是总是记不住一些属性,这里写来记录一下.   2009年,W3C提出了一种新的方案--Flex布局,可以简便.完整.响应式地实现 ...

  6. Stick ------ 剪枝神题

    这个是自己剪得 , 我感觉已经很不错了  但是不知道哪里出了问题  一直  超时 // 根据所给答案 和 题目要求 最直观的就可以有剪枝的地方 而且 剪枝剪得越早 就越省时省力 // 好的思路也可以省 ...

  7. BZOJ 1037 生日聚会 DP

    [ZJOI2008]生日聚会Party Time Limit: 10 Sec Memory Limit: 162 MB Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她 ...

  8. Spring Boot (17) 发送邮件

    添加依赖 <!--发送邮件 --> <dependency> <groupId>org.springframework.boot</groupId> & ...

  9. [hihocoder][Offer收割]编程练习赛60

    hohahola #pragma comment(linker, "/STACK:102400000,102400000") #include<stdio.h> #in ...

  10. P1796 汤姆斯的天堂梦_NOI导刊2010提高(05)

    题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的生活. 有一些航班将人从低等级的星球送上高一级的星球,有时需 ...