📄 testutils.inc
字号:
# FIXME: wip, copied from ../testutils.inc# r0-r3 are used as tmps, consider them call clobbered by these macros.# This uses the angel rom monitor calls.# ??? How do we use the \@ facility of .macros ???# @ is the comment char! .macro a_mvi_h_gr reg, val ldr \reg,[pc] b . + 8 .word \val .endm .macro mvaddr_h_gr reg, addr ldr \reg,[pc] b . + 8 .word \val .endm .macro start .datafailmsg: .asciz "fail\n"passmsg: .asciz "pass\n" .textdo_pass: ldr r1, passmsg_addr mov r0, #4 swi #0x123456 exit 0passmsg_addr: .word passmsgdo_fail: ldr r1, failmsg_addr mov r0, #4 swi #0x123456 exit 1failmsg_addr: .word failmsg .global _start_start: .endm# *** Other macros know pass/fail are 4 bytes in size! Yuck. .macro pass b do_pass .endm .macro fail b do_fail .endm .macro exit rc mov r1, #\rc mov r0, #0x2a @ decimal 42 swi #1 # If that returns, punt with a sigill. stc 0,cr0,[r0] .endm# Other macros know this only clobbers r0. .macro test_h_gr reg, val mvaddr_h_gr r0, \val cmp \reg, r0 beq . + 8 fail .endm .macro mvi_h_cc c, n, v, z ldi8 r0, 0 ldi8 r1, 1 .if xxx cmp r0, r1 .else cmp r1, r0 .endif .endm .macro test_h_cc c, n, v, z .if xxx bc . + 8 fail .else bnc . + 8 fail .endif .endm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -