ARM指令浅析1(mov、ldr) | 您所在的位置:网站首页 › 汇编mvk › ARM指令浅析1(mov、ldr) |
1.环境及优化项
采用-O2优化选项,通过arm处理器架构下的gcc编译器编译用例生成汇编码查看其生成的指令。至于为什么用O2选项,是因为在某些用例中,加入-O3选项之后,arm处理器架构下gcc编译器生成的汇编会变得更加复杂(比如一个简单的循环)。 2.ARM指令格式 先简单地介绍一下ARM的指令格式,与x86(Intel)架构和alpha架构下有所不同。 基本格式 { } {S} , , {}
其中,内的项是必须的,{}内的项是可选的,比如是指令助记符,是必须的,而{}为 指令执行条件,是可选的,如果不写则使用默认条件AL(无条件执行)。
格式 含义 Opcode 指令助记符,如LDR,STR 等 Cond 执行条件,如EQ,NE 等 S 是否影响CPSR 寄存器的值,书写时影响CPSR,否则不影响Rd 目标寄存器 Rn 第一个操作数的寄存器 operand2 第二个操作数 指令格式举例如下
LDR R0,[R1] ; 读取R1 地址上的存储器单元内容,执行条件AL(无条件执行)
ADDS R1,R1,#1 ; 加法指令,R1+1=R1 影响CPSR 寄存器,带有S
SUBNES R1,R1,#0xD; 条件执行减法运算(NE),R1-0xD=>R1,影响CPSR 寄存器,带有S
|
CopyRight 2018-2019 实验室设备网 版权所有 |