ARM指令系統的幾點見解(二) 作者: 時間:2016-11-24 來源:網絡 加入技術交流群 掃碼加入和技術大咖面對面交流海量資料庫查詢 收藏 1.有效立即數本文引用地址:http://cqxgywz.com/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指令雖然食之無味,但用之則多多益善。
評論