keil_arm 大端小端 寄存器 栈

.text
.global _start
_start:
/*	@单寄存器
	ldr r0,=0x40000800
	ldr r1,=0x12345678
	@将r1寄存器中的值,写到r0指向的地址空间中[0x40000800]=0x12345678
	str r1,[r0]
	@将r0指向地址空间中的内容,读到目标寄存器r2中,r2=0x12345678 
	ldr r2,[r0]
*/
/*
	ldr r0,=0x40000800
	ldr r1,=0x11111111
	ldr r2,=0x22222222
	ldr r3,=0x33333333
	str r1,[r0,#4]
	@将r1寄存器中的值,写到0x40000804地址中,r0=0x40000800
	str r2,[r0],#4
	@将r2寄存器中的值,写到0x40000800地址中,r0=0x40000804
	str r3,[r0,#4]! 
	@将r3寄存器中的值,写到0x40000808地址中,r0=0x40000808
*/
/*
	@判断大端存储还是小端存储
	ldr r0,=0x40000800
	ldr r1,=0x12345678
	str r1,[r0]
	ldrb r2,[r0]
*/
/*
@判断大端存储还是小端存储
	ldr r0,=0x40000800
	ldr r1,=0x12345678
	str r1,[r0]
	ldrb r2,[r0]
	ldrb r3,[r0,#1]!
	ldrb r4,[r0,#1]!
	ldrb r5,[r0,#1]!
*/
/*
@多位寄存器
	ldr r0,=0x40000800
	ldr r1,=0x11111111
	ldr r2,=0x22222222
	ldr r3,=0x33333333
	ldr r4,=0x44444444
	ldr r5,=0x55555555
	@ 将r1-r5寄存器列表中的数据,写到r0指向的连续地址空间中
	stm r0,{r1-r5}
	@ 将r0指向的连续地址空间中的内容,读到目标寄存器列表r6-r10
	ldm r0,{r6-r10}
*/

@栈
	ldr sp,=0x40000800
	ldr r1,=0x11111111
	ldr r2,=0x22222222
	ldr r3,=0x33333333
	ldr r4,=0x44444444
	ldr r5,=0x55555555
	@ 将r1-r5寄存器列表中的数据,写到sp指向的连续地址空间中
	stmfd sp!,{r1-r5}
	@ 将sp指向的连续地址空间中的内容,读到目标寄存器列表r6-r10
	ldmfd sp!,{r6-r10}
	

stop:
	b stop
.end

@栈result 

猜你喜欢

转载自blog.csdn.net/lsw2604190117/article/details/131474255