芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 7557|回复: 1

ARM汇编指令 连载一

[复制链接]
  • TA的每日心情
    开心
    2024-8-8 17:46
  • 19

    主题

    37

    帖子

    548

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    548
    发表于 2018-4-9 21:05:07 | 显示全部楼层 |阅读模式
    本帖最后由 纵情随心 于 2018-4-9 21:06 编辑

            虽然现在很少有程序使用汇编进行编写,但是了解一下还是很有必要的。了解这个有些bug找起来会快很多。我现在看一些执行起来很奇怪的代码,就直接看看对应的汇编部分,很多C语言中不易发现的问题,汇编一目了然。        相信了解过arm汇编的都听说过ARM指令集,Thumb指令集。现在很多处理器还有Thumb-2指令集(如STM32)。我不打算在开头去讲各种指令集有什么区别,一起看看各种指令集下的指令,一切就都清楚了。


          ARM指令在机器中的表示格式是用32位的二进制数表示。计算机根据二进制代码去完成所需的操作。
          ARM指令代码一般分为5个域;
         [31:28]是4位的条件码域(cond),4位条件码共有16种组合;
         [27:20]是指令代码域 (opcode)。
         [19:16]是地址基址(Rn),为R0~R15共16个寄存器编码。
         [15:12]是目标或源寄存器Rd,为R0~R15共16个寄存器编码。
         [11:0]是地址偏移或操作寄存器、操作数区域 Op2


         汇编指令的表示格式
         <opcode>{<cond>}{S}<Rd>,<Rn>{,<OP2>}
         <>中的内容必不可少,{}的内容可省略。
         <opcode>表示操作码,如ADD表示算术加法。
         {<cond>}表示指令的条件域,如EQ\NE等。
         {S}决定指令的执行结果是否影响CPSR的值,使用该指令后缀则指令执行的结果影响CPSR的值,否则不影响。
         <Rd>表示目的寄存器
         <Rn>表示第一个操作数,为寄存器
         <op2>表示第二个操作数,可以是立即数,寄存器或者寄存器移位操作数。
         例子:ADDEQS R0,R1,#8。其中操作码为ADD,条件为EQ,S表示执行结果影响CPSR寄存器。目的寄存器Rd为R0,第一个操作数Rn为R1,第二个操作为OP2为立即数#8。




           小知识:
           程序的执行指令都保存在存储器中。当计算机需要执行一条指令时,首先产生这条指令的地址,并根据地址去打开相应的存储单元,取出指令代码,CPU根据指令代码执行相应操作。
           当处理器工作在ARM状态时,几乎所有的指令都根据CPSR中条件码的状态和指令的条件域有条件的执行。当执行条件满足时,指令被执行,否则,指令被忽略。根据上面所说,每条指令的条件码为[31:28]这4bit,共16种,每种条件码可用两个字母表示,这两个字符可以添加在指令助记符的后面和指令同时使用。在16中条件码中,有15种可以使用,第16种(1111)被系统保留。指令条件码如下表:

    指令的条件码

    指令的条件码

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-6-29 15:57
  • 13

    主题

    246

    帖子

    3625

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    3625
    发表于 2018-4-10 08:20:26 | 显示全部楼层
    666楼主写的很好,很实用,期待连载二
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-11-23 17:48 , Processed in 0.130666 second(s), 33 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表