指令格式
操作指令 目的操作数 源操作数
1、MOV指令
MOV R0, R1 //@表示寄存器R1的数据拷贝给R0寄存器
MOV R0, #0x10 //@表示将立即数0x10赋值给寄存器R0
//注: 立即数指的是在立即寻址方式指令中给出的源操作数(言外之意就是可以直接使用的),类似于常量,不能作为被赋值的量使用。
//立即数的优点:取指的时候可以直接访问,不用单独去内存读取,速度快
//立即数的缺点:不能是任意的32位数字,具有局限性
2、LDR(寄存器访问指令)
LDR Rd, [Rn,#offset] //将存储器Rn+offset中的数据读出存放到Rd中
LDR R0, =0x0209C004 //@将寄存器地址0x0209C004赋值给R0,即R0 = 0x0209C004;0x0209C004 为立即数此处不用#,而是=
STR Rd, [Rn,#offset] //将Rd中的数据写入到存储器中Rn+offset中
3、PUSH POP(压栈 出栈)
push R0 //@寄存器R0入栈
pop R0 //@寄存起R0出栈
4、sub(减法指令)
sub dest, source //@将dest减去source操作数
5、xorl(异或指令)
xorl %ebp, %ebp //@表示目的操作数与源操作数做异或操作,并将结果保存在目标操作数中
'%' 作用是将源操作数与目的操作数反过来操作。
6、str
指令格式与上面不太一样:
str 源寄存器 目的存储器
表示:将源地址中一个32位的字数据传送到目的存储器中去
str R0, [R1], #8 ;将R0中的“字数据”写入以R1为地址的存储器中,并将新地址R1+8写入R1
str R0, [R1,#8] ;将R0中的“字数据”写入以R1+8为地址的存储器中。
注:来源于网络自学,不用于商业,若有侵权告知立删!