单片机 > 单片机程序设计 > 详情

ARM指令系统的几点见解(二)

发布时间:2020-09-03 发布时间:
|

1.有效立即数

      ARM指令集编码中,立即数的只分配了12位空间。==>有效立即数

      【有效立即数】 = immed_8【8位常数】循环右移(rotate_imm【4位循环右移值】 * 2)

      例:immed_8 = 0x3f, rotate_imm = 0xe; ==> immediate = 0x3f0【immed_8循环右移[e(14) * 2]28位】

2.跳转指令 B

      B{}   <== 得到目标地址 target_address

          a. 取有符号的24位偏移量

          b. 用符号位扩展为32位【符号是1就补1,是0就补0】

          c. 左移2位,形成字偏移【这是在ARM体系中,32位】

          d. 加到PC寄存器中,得到有效偏移量26位

3.指令比较【前者不保留结果,后者保留结果】

      CMP *** SUBS         CMN *** ADDS        

      TST *** ANDS         TEQ *** EORS

 

指令虽然食之无味,但用之则多多益善。

关键字:ARM 指令系统 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C8051F020的UART