str r1, [r0] ;将r1寄存器的值,传送到地址值为r0的(存储器)内
mrs r0, cpsr ;读cpsr寄存器到r0
bicr0, r0, #0x1 ;位清除 clear bit 1
orrr0, r0, #0xd3 ;逻辑或
msrcpsr,r0 ;写cpsr寄存器
mrc p15, 0, r0, c1, c0, 4 ;可参见《ARM体系结构与编程》第五章
/*<4>提供附加信息,用于区别同一个编号的不同物理寄存器。
MRC指令将协处理器的寄存器中数值传送到ARM处理器的寄存器中。
MCR指令将ARM处理器的寄存器中的数据传送到协处理器的寄存器中。*/
LDR R1,=COUNT ;是将COUNT这个变量的地址,也就是0x40003100放到R1中。
MOV PC, LR ;如果在子程序中LR没有改变,则等同于 RET
;程序在 调用子程序时,会把 BL SUB_XXXXX 处的
;下一条指令送入LR, 这样,当所调用的子程序没有改变LR的值时(注意这里我说说的是在整个子程序中LR没有被改变),返回父程序时,你就可以使用
bne label ;不等跳转
strb r0, [r1] ;从源寄存器中将一个8位的字节数据存储到存储器中,该字节数据为源寄存器的低8位
adrr0, _start ;指令将基于PC相对偏移的地址值读取到寄存器中。
ldmiar0!, {r9-r10}/* copy from source address [r0]