1、练习一:立即寻址方式
AREA TEST1,CODE,READONLY ;声明代码段TEST1
ENTRY ;标识程序入口
CODE32 ;声明32位ARM指令
;立即寻址
MOV R0,#0X01 ;对R0赋值
ADD R0,R0,#01 ;R0=R0+0x01
ADD R0,R0,#0X2a ;R0=R0+0x2a
END
练习二:寄存器寻址
AREA TEST1,CODE,READONLY ;声明代码段TEST1
ENTRY ;标识程序入口
CODE32 ;声明32位ARM指令
2、
;寄存器寻址
START MOV R0,#0X02
MOV R1,#0X03
MOV R2,#0X04
ADD R0,R1,R2
END
练习三:寄存器移位寻址
AREA TEST1,CODE,READONLY ;声明代码段TEST1
ENTRY ;标识程序入口
CODE32 ;声明32位ARM指令
;寄存器移位寻址
START
MOV R0,#2
MOV R1,#2
MOV R2,#2
MOV R3,#2
MOV R0,R2,LSL #3
3、 ADDS R0,R1,R2,LSL #R3
B START
END
练习四:寄存器间接寻址
AREA TEST1,CODE,READONLY ;声明代码段TEST1
ENTRY ;标识程序入口
CODE32 ;声明32位ARM指令
;寄存器间接寻址
START MOV R0,#3
MOV R0,R0,LSL #3
LDR R1,[R0]
SWP R1,R1,[R0]
B START
END
练习五:基址变址寻址
AREA TEST1,CODE,READONLY ;声明代码段TEST1
EN
4、TRY ;标识程序入口
CODE32 ;声明32位ARM指令
;基址变址寻址
START
MOV R0,#0X00
MOV R3,#0X03
MOV R4,#0X04
MOV R5,#0X05
MOV R10,#0X10
LDMIA R0!,{R1-R3,R12}
MOV R1,#0X10
STMIA R1!,{R3-R5,R10}
B START
END
练习六:堆栈寻址
AREA TEST1,CODE,READONLY
ENTRY
CODE32
START MO
5、V R0,#0X01
MOV R1,#0X02
MOV R2,#0X03
MOV R3,#0X04
MOV R4,#0X05
MOV LR,#0X06
MOV SP,#0X20
STMFD SP!,{R0-R4,LR}
LDMFD SP!,{R0-R4,LR}
B START
END
练习七 汇编加法练习
AREA TEST1,CODE,READONLY
ENTRY
CODE32
START MOV R0,#05
MOV R1,#09
LOOP BL ADD_SUB
B LOOP
ADD_SUB ADDS R0,R0,R1
MOV PC,LR
END