汇编知识点汇总

汇编的组成

  • 汇编指令
    • 数据处理指令
      • 数据搬移指令
      • 数据位移指令
      • 位运算指令
      • 算术运算指令
      • 比较指令
    • 跳转指令
    • 内存读写指令
    • 状态寄存器传送指令
    • 异常产生指令
    • 协处理器指令
  • 伪操作
    • 在程序编译过程中起到编译引导作用的内容
    • .text .global .if .else .endif
  • 伪指令
    • 不是汇编指令,但是可以起到指令的作用,会占用一定内存空间
  • 注释
    • 单行注释:@ ;
    • 多行注释:/* */
    • 条件注释:.if .else .endif

立即数

循环左移偶数位,取反(或不取)能得到0-255之间的数(8位以内)就是立即数

数据搬移指令

mov{条件码} 目标寄存器 操作数

功能:将操作数搬移到目标寄存器中,相当于赋值

mvn{条件码} 目标寄存器 操作数

功能:将操作数按位取反后结果搬移到目标寄存器中

注意:操作数可以是一个寄存器,也可以是一个立即数

数据移位指令

逻辑左移

lsl{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能:将第一操作寄存器中的数左移第二操作数位数,将结果保存到目标寄存器中

逻辑右移

lsr{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能:将第一操作寄存器中的数右移第二操作数位数,将结果保存到目标寄存器中

循环右移

ror{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能:将第一操作寄存器中的数循环右移第二操作数位数,将结果保存到目标寄存器中

补充:汇编中对操作数书写的形式可以写成c语言风格的移位运算形式

ex:LSL R1,R0,#(0X1<<2)

位运算指令

与运算(and),与0清零,与1不变

and{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能: 将第一操作寄存器中的数和第二操作数进行与运算,将结果保存到目标寄存器中

或运算(orr),有1位1,全0为0

orr{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能: 将第一操作寄存器中的数和第二操作数进行或运算,将结果保存到目标寄存器中

异或运算(eor),相同为0,不同为1

eor{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能: 将第一操作寄存器中的数和第二操作数进行异或运算,将结果保存到目标寄存器中

按位取反(mvn),0为1,1为0

mvn{条件码} 目标寄存器,第一操作寄存器,第二操作数

功能: 将第一操作寄存器中的数和第二操作数进行按位取反运算,将结果保存到目标寄存器中

按位清零(bic),指定位和1运算零

算术运算指令

加法指令

add{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

功能: 目标寄存器=第一操作寄存器+第二操作数

包含cpsr条件位的加法指令

adc{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

功能: 目标寄存器=第一操作寄存器+第二操作数+cpsr寄存器c位的值

减法指令

sub{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

功能: 目标寄存器=第一操作寄存器-第二操作数

包含cpsr条件位的减法指令

sbc{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

功能: 目标寄存器=第一操作寄存器+-第二操作数-cpsr寄存器c位的取反值

乘法指令

mul{条件码}{s} 目标寄存器,第一操作寄存器,第二操作数

功能: 目标寄存器=第一操作寄存器*第二操作数

模拟32位处理器进行64位数据运算

32位处理器一条指令最大能进行32位数据运算,想要进行64位运算,需要多条指令

第一个64位数据:

0x00000003 FFFFFFFE

第二个64位数据

0X00000005 00000006

运算原则:

低32位先运算,结果会影响cpsr条件位

高32位后运算,运算过程包含cpsr条件位

相关推荐
small_wh1te_coder3 小时前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
Ronin-Lotus12 天前
微处理器原理与应用篇---ARM常见汇编指令
汇编·arm开发·微处理原理与应用
永夜的黎明15 天前
【二进制安全作业】250616课上作业1-栈溢出漏洞利用
c语言·汇编·安全
Geometry Fu17 天前
物联网控制技术 知识点总结 第三章 汇编语言 第四章 C51语言
汇编·物联网·51单片机
半桔17 天前
【Linux手册】进程的状态:从创建到消亡的“生命百态”
linux·运维·服务器·汇编·深度学习·面试
一条叫做nemo的鱼21 天前
从汇编的角度揭开C++ this指针的神秘面纱(下)
java·汇编·c++·函数调用·参数传递
一条叫做nemo的鱼21 天前
从汇编的角度揭开C++ this指针的神秘面纱(上)
汇编·c++·算法·函数调用·this指针·参数传递
qwertyuiop_i23 天前
汇编(函数调用)
汇编·windows·函数调用
不忘不弃23 天前
由汇编代码确定switch语句
汇编
南玖yy23 天前
深入理解 x86 汇编中的符号扩展指令:从 CBW 到 CDQ 的全解析
开发语言·汇编·arm开发·后端·架构·策略模式