ARM汇编指令

跳转指令

B:跳转指令
BL:带返回的跳转指令
BLX:带返回和状态切换的跳转指令
BX:带状态切换的跳转指令
B loc_地址
BEQBNE

存储器与寄存器交换数据指令

存储器:主存和内存
寄存器放的数据:字符串,数,地址…
存储地址单元:地址与地址种存在的值

LDR:从存储器中加载数据到寄存器《--Load
LDR R8,[R9,#4]:R8为待加载数据的寄存器,加载值为R9+0x4所指向的存储单元
STR:将寄存器的数据存储到存储器---》Store
STR R0,[R1],#8 :将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1。
STR R0,[R1,#8] :将R0中的字数据写入以R1+8为地址的存储器中。
LDM:将存储器的数据加载到一个寄存器列表---》
LDM R0,{R1-R3}:将R0指向的存储单元的数据依次加载到R1,R2,R3寄存器
STM:将一个寄存器列表的数据存储到指定的存储器《---
PUSH:将寄存器的值放入堆栈
POP:将堆栈值放入寄存器
SWP:将寄存器与存储器之间的数据进行交换
SWP R1,R1 {R0}:将R1寄存器与R0指向的存储单元的内容进行交换

逻辑运算

AND:与
ORR:或
EOR:异或
LSL:逻辑右移
LSR:逻辑左移
LSL R0,R1 #2 R0=R1*4

寻址方式

立即寻址:

MOV R0,#1234  	R0=0x1234

寄存器寻址:

MOV R0,R1		R0=R1

寄存器移位寻址:

MOV R0,R1,LSL #2	R0=R1*4

寄存器间接寻址:

LDR	R0,[R1]		将R1寄存器的值作为地址,取出地址中的值赋值给R0

寄存器间接基址偏移寻址:

LDR R0,[R1,#-4]	将R1寄存器的值-0x4的值作为地址,取出地址中的值给R0

你可能感兴趣的:(汇编)