📄 tick.s
字号:
.globl _start # # NOTE: Registers r10-r11 are reserved for the interrupt handler # while the others can be used by the main loop/start code._start: # patch the external interrupt handlers entry add r1, r0, handler ldw r2, @(r1, 0) ldw r3, @(r1, 4) add r1, r0, 0xfffff138 stw r2, @(r1, 0) stw r3, @(r1, 4) # enable external interrupts - cr0 == PSW mvfsys r2, cr0 or r2, r0, 0x04000000 mvtsys cr0, r2 # wait for flag to be setloop: add r2, r0, flag ldw r3, @(r2, 0) bratzr r3, loop # clear the flag stw r0, @(r2, 0) add r2, r0, tick # putstr .long 0x0e000001, 0x00f00000 bra loop # finished add r2, r0, r0 || nop .long 0x0e000004, 0x00f00000 handler: jmp real_handlerreal_handler: add r10, r0, 1 add r11, r0, flag stb r10, @(r11,0) reitflag: .long 0tick: .ascii "Tick\r\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -