当前位置: 首页 > news >正文

指令系统1(数据传输指令)

一.ARM 指令基本格式opcode{<cond>}{S}<Rd>,<Rn>{,operand2}

  • opcode:即操作码,是指令助记符,像MOV(数据传送)、ADD(加法运算)等,用于明确指令要执行的操作类型。

  • cond:为可选条件码,决定指令在何种条件下执行。例如EQ(相等,Z标志位置位时)、NE(不相等,Z标志位清零时)等,通过对标志位的判断来确定指令是否执行。

  • S:是可选后缀,若指令中指定了S,那么指令执行结果会用于更新 APSR(应用程序状态寄存器)中的条件码,影响后续条件指令的执行。

  • Rd:代表目标寄存器,指令执行结果将存储在该寄存器中。

  • Rn:存放第 1 操作数的寄存器,为指令运算提供一个操作数来源。

  • operand2:表示第 2 个操作数,它的形式多样,能够是立即数、寄存器值或经过移位等操作后的结果。

二.条件码

  1. 条件码标志

    含义

    条件码标志

    含义

    EQ

    Z置位,相等 / 等于 0

    VC

    V清零,未溢出

    NE

    Z清零,不相等

    LS

    C清零且N置位,无符号数小于等于

    CS

    C置位,无符号数大于等于

    GE

    N等于V,带符号数大于等于

    CC

    C清零,无符号数小于

    LT

    N不等于V,带符号数小于

    MI

    N置位,负数

    GT

    Z清零且N等于V,带符号数大于

    PL

    N清零,正数或零

    LE

    Z置位或者N不等于V,带符号数小于等于

    VS

    V置位,溢出

    AL

    忽略,无条件执行

三.第 2 操作数的表示形式:包含多种移位操作,这些操作可用于对操作数进行变换,以满足不同的运算需求。

  • 逻辑移位LSL(逻辑左移)、LSR(逻辑右移) 。

  • 算术移位ASL(算术左移,与逻辑左移在某些情况下效果相同)、ASR(算术右移)。

  • 循环移位ROR(循环右移)、RRX(带扩展的循环右移)。例如ADDEQS R3,R2,R1,LSR#5,表示在相等条件下,将R1逻辑右移 5 位后与R2相加,结果存入R3

四.数据传送指令

  • 立即数加载到寄存器

    • 指令格式

      • MOV Rd,#<immed_8>(8 位立即数加载寄存器Rd);

      • MOVS.W Rd,#<immed_16>(16 位立即数加载寄存器Rd且影响标志);

      • MOVT.W Rd,#<immed_16>(16 位立即数加载寄存器Rd的高半字);

      • MOVW.W Rd,#<immed_16>(16 位立即数加载寄存器Rd的低半字,高 16 位清 0 )。

    • 示例

      • MOV R0,#0X80R0 = 0X00000080

      • MOVS.W R1,#0X1200R1 = 0X00001200且影响标志;

      • MOVT.W R2,#0X1234R2 = 0X12340000

      • MOVW.W R2,#0X1234 ,R2 = 0X00001234

  • 两个寄存器之间的传送

    • 指令格式MOV Rd,Rm

    • 示例MOV R3,R2MOV R2,#0X10MOVS.W R3,R2,LSR2R3结果为 4。

  • 寄存器与特殊功能寄存器之间的传送

    • 指令格式MRS <Rn>,<SReg>(加载特殊功能寄存器的值到Rn);MSR <Sreg>,<Rn>(传送Rn的值到特殊功能寄存器) 。

    • 示例MRS R0,IPSRMSR IPSR,R0 。

    • 特殊功能寄存器:如IPSR(当前服务中断号寄存器)、EPSR(执行状态寄存器)、APSR(上条指令结果的标志寄存器)等,MRS/MSR用于特权级别条件下访问这些特殊功能寄存器。

相关文章:

  • 电子工程师转战汽车OEM主机厂之路
  • (保姆级教程)CAN总线—如何使用CANoe(VN1640)的Scaner功能测量样件的波特率
  • 用于 RGB-D 显著目标检测的点感知交互和 CNN 诱导的细化网络(问题)
  • Metasploit Framework(MSF)使用教程与命令详解
  • bluetooth与hciconfig的区别
  • 使用bat批量获取WORD中包含对应字符的段落,段落使用回车换行
  • 1221. 四平方和 -蓝桥杯真题-哈希函数思想
  • 在 React 中使用 Hooks 从服务端获取数据的完整指南
  • 网络安全之前端学习(HTML属性篇)
  • 力扣刷题46. 全排列
  • HTML5前端第四章节
  • RG-S3760应用协议配置
  • 动静态库的使用和原理(下)
  • 区块链(Blockchain)
  • GED-VIZ部署解决方案
  • Java学习打卡-Day19-Set、HashSet、LinkedHashSet
  • Deepseek+扣子实现xhs内容自动采集
  • 云原生服务网格:微服务通讯的量子纠缠革命
  • ICLR 2025 机器人智能灵巧操作更进一步DexTrack
  • 线上课程小程序开发制作助力机构高效运营
  • 习近平会见智利总统博里奇
  • 习近平同巴西总统卢拉共同出席合作文件签字仪式
  • 为证明我爸是我爸,我将奶奶告上法庭
  • 上海工匠学院首届学历班56人毕业,新一届拟招生200人
  • 国际足联女子世界杯再次扩军,2031年起增至48支球队
  • 遇冰雹天气,西安机场新航站楼成“水帘洞”