手机网站公司,自己建的网站能用吗,修改网站默认首页,永州网页设计ARM 32位常用机器码#xff08;指令#xff09;整理
1. 数据处理指令#xff08;运算、逻辑、比较#xff09;
指令含义示例备注MOV赋值#xff08;寄存器传输#xff09;MOV R0, R1直接将 R1 复制到 R0MVN取反MVN R0, R1R0 ~R1ADD加法ADD R0, R1, R2R0 R1 R2ADC带进…ARM 32位常用机器码指令整理
1. 数据处理指令运算、逻辑、比较
指令含义示例备注MOV赋值寄存器传输MOV R0, R1直接将 R1 复制到 R0MVN取反MVN R0, R1R0 ~R1ADD加法ADD R0, R1, R2R0 R1 R2ADC带进位加法ADC R0, R1, R2R0 R1 R2 C进位SUB减法SUB R0, R1, R2R0 R1 - R2SBC带借位减法SBC R0, R1, R2R0 R1 - R2 - !CRSB逆向减法RSB R0, R1, #0R0 0 - R1AND按位与AND R0, R1, R2R0 R1 R2ORR按位或ORR R0, R1, R2R0 R1EOR按位异或EOR R0, R1, R2R0 R1 ^ R2BIC按位清除BIC R0, R1, R2R0 R1 ~R2CMP比较CMP R0, R1计算 R0 - R1 并设置标志TST按位测试TST R0, R1计算 R0 R1 并设置标志
2. 乘法和除法指令
指令含义示例备注MUL无符号乘法MUL R0, R1, R2R0 R1 * R2MLA乘法累加MLA R0, R1, R2, R3R0 (R1 * R2) R3MLS乘法减法MLS R0, R1, R2, R3R0 R3 - (R1 * R2)UMULL无符号长乘法UMULL R0, R1, R2, R3R1:R0 R2 * R3SMULL有符号长乘法SMULL R0, R1, R2, R3R1:R0 R2 * R3UDIV无符号除法UDIV R0, R1, R2R0 R1 / R2ARMv7 以上SDIV有符号除法SDIV R0, R1, R2R0 R1 / R2ARMv7 以上
3. 数据传输指令加载/存储
指令含义示例备注LDR加载数据LDR R0, [R1]R0 *(R1) 读取 R1 指向的内存STR存储数据STR R0, [R1]*(R1) R0LDM批量加载LDMIA R0!, {R1-R3}读取多个寄存器STM批量存储STMDB R0!, {R1-R3}存储多个寄存器PUSH入栈PUSH {R0, R1}ARM 栈向低地址增长POP出栈POP {R0, R1}
4. 分支与跳转指令
指令含义示例备注B无条件跳转B labelBL过程调用BL function进入子程序返回地址存 LRBX返回或跳转BX LR过程返回ARM/Thumb 切换BLX远程跳转BLX R0可能涉及 Thumb 模式
5. 系统控制指令
指令含义示例备注NOP空指令NOP什么都不做SVC软中断SVC #0系统调用MRS读 CPSRMRS R0, CPSR读取状态寄存器MSR写 CPSRMSR CPSR, R0修改状态寄存器WFI进入低功耗WFI等待中断 总结
ARM 32 位指令集中最常用的指令包括
数据处理MOV、ADD、SUB、CMP、AND加载/存储LDR、STR、PUSH、POP分支B、BL、BX系统控制NOP、SVC、MRS、MSR