有一个项目需要分析ARM THUMB指令的机器代码,但是在网上找不到整理的机器代码表,只能整理相关指令的机器代码,与大家分享。
THUMB指令并不多,只有六十多条,这个数字真的是非常了不起,51都一百三十多条呢。
可能这张表对于大多数朋友都用不到,毕竟要深入到机器码这一层的机会还是比较少,我想能到这一步的朋友一定对ARM指令有了足够的理解,所以就不对注释做另外的说明,相信你一看就懂。
呵呵,如果你用上了这张表,记得在内心感谢我一下,这可是我从《Addison Wesley – ARM Architecture Reference Manual (2nd Edition)》中一条一条摘录出来的。
v is immed_value
n is Rn
m is Rm
s is Rs
r is register_list
c is condition
按指令字母升序排列
0100 0001 01mm mddd — ADC Rd,Rm
0001 110v vvnn nddd — ADD Rd,Rn,#immed_3
0011 0ddd vvvv vvvv — ADD Rd,#immed_8
0001 100m mmnn nddd — ADD Rd,Rn,Rm
0100 0100 hhmm mddd — ADD Rd,Rm h1h2,h1 is msb for Rd,h2 is msb for Rm
1010 0ddd vvvv vvvv — ADD Rd,PC,#immed_8*4
1010 1ddd vvvv vvvv — ADD Rd,SP,#immed_8*4
1011 0000 0vvv vvvv — ADD SP,#immed_7*4
0100 0000 00mm mddd — AND Rd,Rm
0001 0vvv vvmm mddd — ASR Rd,Rm,#immed_5
0100 0001 00ss sddd — ASR Rd,Rs
1101 cccc vvvv vvvv — Bcc signed_immed_8
1110 0vvv vvvv vvvv — B signed_immed_11
0100 0011 10mm mddd — BIC Rd,Rm
1011 1110 vvvv vvvv — BKPT immed_8
111h hvvv vvvv vvvv — BL(X) immed_11
0100 0111 1hmm mSBZ — BLX Rm
0100 0111 0Hmm mSBZ — BX Rm
0100 0010 11mm mnnn — CMN Rn,Rm
0010 1nnn vvvv vvvv — CMP Rn,#immed_8
0100 0010 10mm mnnn — CMP Rn,Rm
0100 0101 hhmm mnnn — CMP Rn,Rm
0100 0000 01mm mddd — EOR Rd,Rm
1100 1nnn rrrr rrrr — LDMIA Rn!,reg_list
0110 1vvv vvnn nddd — LDR Rd,[Rn+#immed_5*4]
0101 100m mmnn nddd — LDR Rd,[Rn,Rm]
0100 1ddd vvvv vvvv — LDR Rd,[PC+#immed_5*4]
1001 1ddd vvvv vvvv — LDR Rd,[SP,#immed_8*4]
0111 1vvv vvnn nmmm — LDRB Rd,[Rn,#immed_5*4]
0101 110m mmnn nddd — LDRV Rd,[Rn,Rm]
1000 1vvv vvnn nddd — LDRH Rd,[Rn,#immed_5*2]
0101 101m mmnn nddd — LDRH Rd,[Rn,Rm]
0101 011m mmnn nddd — LDRSB Rd,[Rn,Rm]
0101 111m mmnn nddd — LDRSH Rd,[Rn,Rm]
0000 0vvv vvmm mnnn — LSL Rd,Rm,#immed_5
0100 0000 10ss sddd — LSL Rd,Rs
0000 1vvv vvmm mddd — LSR Rd,Rm,#immed_5
0100 0000 11ss sddd — LSR Rd,Rs
0010 0ddd vvvv vvvv — MOV Rd,#immed_8
0001 1100 00nn nddd — MOV Rd,Rn
0100 0110 hhmm mddd — MOV Rd,Rm
0100 0011 01mm mddd — MUL Rd,Rm
0100 0011 11mm mddd — MVN Rd,Rm
0100 0010 01mm mddd — NEG Rd,Rm
0100 0011 00mm mddd — ORR Rd,Rm
1011 110R rrrr rrrr — POP reg_list
1011 010R rrrr rrrr — PUSH reg_list
0100 0001 11ss sddd — ROR Rd,Rs
0100 0001 10mm mddd — SBC Rd,Rm
1100 0nnn rrrr rrrr — STMIA Rn!,reg_list
0110 0vvv vvnn nddd — STR Rd,[Rn,#immed_5*4]
0101 000m mmnn nddd — STR Rd,[Rn,Rm]
1001 0ddd vvvv vvvv — STR Rd,[SP,#immed_8*4]
0111 0vvv vvnn nddd — STRB Rd,[Rn,#immed_5]
0101 010m mmnn nddd — STRB Rd,[Rn,Rm]
1000 0vvv vvnn nddd — STRH Rd,[Rn,#immed_5*2]
0101 001m mmnn nddd — STRH Rd,[Rn,Rm]
0001 111v vvnn nddd — SUB Rd,Rn,#immed_3
0011 1ddd vvvv vvvv — SUB Rd,#immed_8
0001 101m mmnn nddd — SUB Rd,Rn,Rm
1011 0000 1vvv vvvv — SUB Sp,#immed_7*4
1101 1111 vvvv vvvv — SWI immed_8
0100 0010 00mm mnnn — TST Rn,Rm
0100 0010 00mm mnnn — TST Rn,Rm
直播预告
主题:Altium如何进行快速手工布线方法解析
主讲人:郑振宇
直播简介
本次直播内容详解如何快速进行拉线的技巧及思路,直播当中会用一个实际的案例来进行演示说明,让学员理论和实际结合,彻底掌握快速拉线的方法。
直播内容大纲
1、布线方法讲解
2、常用规则设置及BGA扇孔
3、快速布线方法实战演示
4、你问我答 互动交流10个问题解答
现在凡报名本次直播课程,扫下方二维码进群,并在朋友圈转发本次直播的海报,便可获得:
1、直播期间2轮大转盘抽奖
第一轮抽奖:现金抽奖—78份
第二轮抽奖:名师实战课程抽奖—52份
2、报名直播学员凡亿教育所有课程享9.5折优惠
3、购买平板电脑RK3288课程专属(免单者除外)
福利一:沉金多功能测量直尺一把
福利二:PCB联盟网论坛会员1个月
点“阅读原文”即可报名
1.文章《‘如何获取本机机器码’如何修改本机机器码!》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《‘如何获取本机机器码’如何修改本机机器码!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好