42 lines
537 B
PHP
42 lines
537 B
PHP
# MACRO: outc
|
|
# Write byte to stdout
|
|
.macro outc ch
|
|
ldi r16, \ch
|
|
out 0x32, r16
|
|
.endm
|
|
|
|
# MACRO: exit
|
|
.macro exit nr
|
|
ldi r16, \nr
|
|
out 0x2f, r16
|
|
.endm
|
|
|
|
# MACRO: pass
|
|
# Write 'pass' to stdout and quit
|
|
.macro pass
|
|
outc 'p'
|
|
outc 'a'
|
|
outc 's'
|
|
outc 's'
|
|
outc '\n'
|
|
exit 0
|
|
.endm
|
|
|
|
# MACRO: fail
|
|
# Write 'fail' to stdout and quit
|
|
.macro fail
|
|
outc 'f'
|
|
outc 'a'
|
|
outc 'i'
|
|
outc 'l'
|
|
outc '\n'
|
|
exit 1
|
|
.endm
|
|
|
|
# MACRO: start
|
|
# All assembler tests should start with a call to "start"
|
|
.macro start
|
|
.text
|
|
.global _start
|
|
_start:
|
|
.endm
|