IMPORT关键字

IMPORT伪操作告诉编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符号,而且不论本源文件是否实际引用该符号,该符号都将被加入到本源文件的符号表中。

LDR指令

LDR指令的作用:将 存储器地址 所指地址处连续的4个字节(1个字)的数据传送到目的寄存器中。

LDR指令的格式:

LDR{条件} 目的寄存器 <存储器地址>

LDR指令的寻址方式比较灵活,只描述需要使用的格式:
LDR R0,=0xE000ED04
将立即数0xE000ED04设置到R0寄存器中去
LDR R0, =label
将label的绝对地址地址写入R0寄存器

STR指令

STR指令的作用:STR指令用于从源寄存器中将一个32位的字数据传送到存储器中.

STR指令的格式为:

STR{条件} 源寄存器,<存储器地址>

STR R0,[R1]
将寄存器R0中的字节数据写入以R1为地址的存储器中。

MRS指令

(Move to Register from State register)

MRS指令的作用:将特殊寄存器(状态寄存器CPSR和SPSR)的内容传送至通用寄存器。

MRS指令的格式为:

MRS{<条件码>}Rd,CPSR}SPSR

MRS R0, PSP
将PSP寄存器的值读取到R0寄存器中去

MSR指令

MSR指令的作用:将通用寄存器的内容传送至特殊寄存器。

MSR指令的格式为:

MSR{<条件码>}Rd,CPSR}SPSR

MSR PSP,R0
将R0寄存器的值读取到PSP寄存器中去

CBZ指令

CBZ指令的作用是: 比较(Compare),如果结果为零(Zero)就转移(只能跳到后面的指令)

CBZ指令的格式为

CBZ Rn, label

CBZ R0, label
如果R0寄存器的值为0 ,那就跳转到label位置执行,如果不为0就继续执行下一句代码

ORR指令

ORR指令的作用: ORR指令用于在两个操作数上进行逻辑或运算,并把结果放置到目的寄存器中。

ORR指令的格式为:

ORR{条件}{S} 目的寄存器,操作数1,操作数2

ORR LR, LR, #0x04
将LR寄存器的值或上0x04,再将获得的值写入LR寄存器,

BX指令

BX指令的作用:BX指令是ARM指令系统中的带状态切换跳转指令。BX指令跳转到指令中所指定的目标地址,若目标地址的bit[0]为0,则跳转时自动将CPSR中的标志位T复位,即把目标地址的代码解释为ARM代码;若目标地址的bit[0]为1,则跳转时自动将CPSR中的标志位T置位,即把目标地址的代码解释为Thumb代码。

BX 指令的格式为:

BX{条件} 目标地址

BX LR
跳转至LR寄存器所在地址执行。

STMDB指令

stm: (store much)多数据存储,将寄存器的值存到地址上
stmdb(地址先减而后完成操作) stmfd(满递减堆栈);
STMDB R0!, {R4-R11}
将依次压入R4-R11的值存入R0所存地址处的数据, 先减地址,再压入数据。

LDMIA指令

ldm: (load much)多数据加载,将地址上的值加载到寄存器上
ldmia 完成操作而后地址递增
LDMIA R0!, {R4-R11}
将R0所在地址的数据依次恢复到R4-R11中,先赋值,在加地址

stmdb和ldmia指令一般配对使用,stmdb用于将寄存器存到某个地址上(一般是栈地址),ldmia用于将地址上

Cortex-M3 RTOS常用汇编指令相关推荐

  1. 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码...

    浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...

  2. RISC-V 常用汇编指令

    RISCV 常用汇编指令 相关寄存器 寄存器 ABI 名 用途 Saver x0 zero 读取时总为 0, 写入时不起任何效果 - x1 ra 存放函数返回地址 (return address) C ...

  3. Cortex-A7 常用汇编指令

    Cortex-A7 常用汇编指令 一.处理器内部数据传输指令 1.mov 将数据从一个寄存器拷贝到另外一个寄存器,或者将一个立即数传递到寄存器里面 MOV R0,R1 @将寄存器 R1 中的数据传递给 ...

  4. 常用汇编指令(七大类)

    常用汇编指令 汇编语言指令大致分为以下几类 一.传送类指令 二.算数运算类指令 三.位操作指令 四.串操作指令 五.控制转移类指令 六.处理器控制类指令 七.汇编指令伪指令 一.传送类指令 1.数据传 ...

  5. 逆向中常见寄存器及常用汇编指令

    寄存器 通用寄存器 (前八个) 32位 16位 作用 EAX(累加器) AX 作用于操作数和结果的数据 EBX(基址寄存器) BX DS段中的数据指针 ECX(计数器) CX 用于字符串和循环操作 E ...

  6. x64 ASM 常用汇编指令

    语法习惯 这里主要说AT&T风格的汇编语言风格.因为gdb看反汇编默认的风格就是AT&T风格的,Intel风格的这里就不做介绍. 立即数,$ 开头 寄存器,% 开头 取地址里面的值,偏 ...

  7. 常用汇编指令对标志位的影响

    加法指令 ADD (addition) 指令对标志位的影响:CF=1 最高有效位向高位有进位CF=0 最高有效位向高位无进位OF=1 两个同符号数相加(正数+正数 或 负数+负数),结果符号与其相反. ...

  8. Linux常用汇编指令

    一. 数据传输指令 1. 通用数据传输指令 mov 传送字或字节 ( movb 传送字节 movw 传送字 movl 传送双字 movq 传送四字 movabsq 传送绝对的四字 ) movsx 先符 ...

  9. Linux学习笔记---Cortex-A7 常用汇编指令

    MOV指令 MOV R0,R1         @将寄存器R1中的数据传递给R0 MOV R0,#0X12   @将立即数0X12传递给R0寄存器 MRS指令 MRS R0,CPSR     @将特殊 ...

  10. MCS-51单片机常用汇编指令大全

    1.数据传送指令 寄存器寻址: MOV R0,30H :把30H单元内容赋给寄存器R0 直接寻址: MOV ACC,30H ;把30H单元内容赋给累加器A 立即寻址: MOV R0,#30H ;把立即 ...

最新文章

  1. GDAL库简介以及在Windows下编译过程
  2. 中国唯一的“国际数字化转型专家”,阿里云获Forrester认可
  3. Xamarin Essentials教程实现数据的传输功能实例
  4. 【Python-ML】最小二乘法
  5. IIS6中配置PHP
  6. RT2870 5370等移植(ARM,X86)
  7. 日志库 winston 的学习笔记 - logger.info 打印到控制台上的实现原理
  8. css --- [学习笔记]背景图片小结 css三大特性
  9. OpecCV颜色分割
  10. CrackMe022
  11. TX2Ubuntu16.04上安装 kinectV2
  12. Java中RMI远程调用demo
  13. 使用WUCDCreator将SCSI、RAID、SATA、SAS驱动程序集成到光盘中
  14. 6.6 RTC Dev Meetup|开发者硬核个人成长指南——如何领先于80% 的同行?
  15. TPT中脚本评估的正确打开方式 (上):强大的内置函数库
  16. C++利用opencv 按顺序遍历文件夹图片
  17. 【量子学习笔记】纯态、混合态、直积态及纠缠态的概念区分及理解
  18. 基于51单片机红外热释电人体感应蓝牙防盗报警器系统设计
  19. B站课代表神器--一键获取B站视频的完整字幕
  20. swiper插件的使用(快速实现轮播图)

热门文章

  1. 有趣的算法(1)-买等量香蕉最大化
  2. c语言ab赋值互换fun,C语言程序设计A问卷.doc
  3. android-锁屏、关闭屏幕
  4. Qt 实现3D字体,并字体始终朝向屏幕
  5. 【2024美赛】数据智能引领未来:解读美赛预测模型
  6. 【Python笔记】urljoin() 解析
  7. vuex actions里方法互相调用
  8. 2018-2019赛季多校联合新生训练赛第一场
  9. 摄影师的必备神器:这三款炙手可热的人像修图工具了解一下!
  10. php去掉首尾第一个字符,php怎样去除首尾字符