电工学习网

 找回密码
 立即注册

ARM指令集

2015-3-23 07:58| 编辑:电工学习网| 查看: 23030| 评论: 0

    ARM指令的基本格式如下:

     其中<>号内的项是必须的,{}号内的项是可选的。各项的说明如下:

     ARM指令集——第2个操作数
     ARM指令的基本格式如下:

     灵活的使用第2个操作数“operand2”能够提高代码效率。它有如下的形式:
     (1)#immed_8r——常数表达式;
     (2)Rm——寄存器方式;
     (3)Rm,shift——寄存器移位方式;
     关于“#immed_8r——常数表达式”
     该常数必须对应8位位图,即一个8位的常数通过循环右移偶数位得到。

     关于“Rm——寄存器方式”:
     在寄存器方式下,操作数即为寄存器的数值。
     例如:
     SUB R1,R1,R2
     MOV PC,R0
     关于“Rm,shift——寄存器移位方式”:将寄存器的移位结果作为操作数,但Rm值保持不变,移位方法如下:

     关于“Rm,shift——寄存器移位方式”:
     例如:
     ADD R1,R1,R1,LSL #3 ;R1=R1+R1*8=9R1
     SUB R1,R1,R2,LSR R3 ;R1=R1-(R2/2R3)
     关于“ARM指令集——条件码”;ARM指令的基本格式如下:

     使用条件码“cond”可以实现高效的逻辑操作,提高代码效率。
     所有的ARM指令都可以条件执行,而Thumb指令只有B(跳转)指令具有条件执行 功能。如果指令不标明条件代码,将默认为无条件(AL)执行。

     关于“ARM指令集——条件码”:

     关于“ARM指令集——存储器访问指令”:ARM处理器是典型的RISC处理器,对存储器的访问只能使用加载和存储指令实现。ARM处理器是冯·诺依曼存储结构,程序空间、RAM空间及I/O映射空间统一编址,除对RAM操作以外,对外围IO、程序数据的访问均要通过加载/存储指令进行。
     存储器访问指令分为“单寄存器操作指令”和“多寄存器操作指令”。

     LDR/STR指令用于对内存变量的访问、内存缓冲区数据的访问、查表、外围部件的控制操作等。若使用LDR指令加载数据到PC寄存器,则实现程序跳转功能,这样也就实现了程序散转。
     所有单寄存器加载/存储指令可分为“字和无符号字节加载存储指令”和“半字和有符号字节加载存储指令。
     下面讲讲,LDR和STR——字和无符号字节加载/存储指令:LDR指令用于从内存中读取单一字或字节数据存入寄存器中,STR指令用于将寄存器中的单一字或字节数据保存到内存。指令格式如下:
     LDR{cond}{T} Rd,<地址> ;将指定地址上的字数据读入Rd
     STR{cond}{T} Rd,<地址> ;将Rd中的字数据存入指定地址
     LDR{cond}B{T} Rd,<地址> ;将指定地址上的字节数据读入Rd
     STR{cond}B{T} Rd,<地址> ;将Rd中的字节数据存入指定地址
     其中,T为可选后缀。若指令有T,那么即使处理器是在特权模式下,存储系统也将访问看成  是在用户模式下进行的。T在用户模式下无效,不能与前索引偏移一起使用T。

12345下一页

看过《ARM指令集》的人还看了以下文章:

发表评论

最新评论

  • 嵌入式开发到底是做什么的?
  • FPGA芯片结构
  • FPGA工作原理
  • 嵌入式学习方法与心得
  • 嵌入式软件工程师必须要掌握哪些知识
  • 嵌入式系统开发的可靠性设计

电工学习网 ( )

GMT+8, 2021-12-6 20:44

Powered by © 2011-2021 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部