AREA demo, CODE, READONLY
ENTRY
b reset_handler //0x0复位入口
nop
b swi_handler ////0x08 软件中断入口
nop
nop
nop
nop //0x18 TRQ(硬件中断)入口
nop
swi_handler ///0x08 软件中断程序
sub r0,lr,#4 //lr(r14)中存的是中断之前程序的下一条程序地址
减去4之后就是中断时的地址
ldr r1,[r0] //从地址中取出地址放到r1 里 ldr r2,[r13] 为出栈
str r2,[r13] 为入栈 ,str往内存中写,ldr从内存中读
bic r1,r1,#0xff000000 // 将r1的高八位清零 类似的
orr r1,r1,#0xff000000将高八位置1;
cmp r1,#0x01 //比较之后会置状态位
beq call1 //判断,相等跳转,不等执行下一条
cmp r1,#0x02
beq call2
movs pc, lr
ARM 第一个汇编程序(跳转,循环,reset_handler,swi_handler 软件中断)
最新推荐文章于 2025-04-22 19:14:57 发布