ARM指令系统的几点见解(二) 作者: 时间:2016-11-24 来源:网络 加入技术交流群 扫码加入和技术大咖面对面交流海量资料库查询 收藏 1.有效立即数本文引用地址:https://www.eepw.com.cn/article/201611/320732.htm 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 *** SUBSCMN *** ADDS TST *** ANDS TEQ *** EORS指令虽然食之无味,但用之则多多益善。
评论