12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # MACRO: exit
- .macro exit nr
- movi r2, \nr
- # The exit utility function.
- .byte 0x00
- # The debug insn class.
- .byte 0x50
- .endm
- # MACRO: pass
- # Write 'pass' to stdout and quit
- .macro pass
- # Trap function 4: write().
- movi r1, 4;
- # Use stdout.
- movi r2, 1;
- # Point to the string.
- lrw r3, 1f;
- # Number of bytes to write.
- movi r4, 5;
- # Trigger OS trap.
- trap 1;
- exit 0
- .data
- 1: .asciz "pass\n"
- .endm
- # MACRO: fail
- # Write 'fail' to stdout and quit
- .macro fail
- # Trap function 4: write().
- movi r1, 4;
- # Use stdout.
- movi r2, 1;
- # Point to the string.
- lrw r3, 1f;
- # Number of bytes to write.
- movi r4, 5;
- # Trigger OS trap.
- trap 1;
- exit 1
- .data
- 1: .asciz "fail\n"
- .endm
- # MACRO: start
- # All assembler tests should start with a call to "start"
- .macro start
- .text
- .global _start
- _start:
- .endm
|