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 指令系统 『本文转载自网络,版权归原作者所有,如有侵权请联系删除』