123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # MACRO: exit
- .macro exit nr
- mov \nr, d1;
- # Trap function 1: exit().
- mov 1, d0;
- syscall;
- .endm
- # MACRO: pass
- # Write 'pass' to stdout and quit
- .macro pass
- # Trap function 5: write().
- mov 5, d0;
- # Use stdout.
- mov 1, d1;
- # Point to the string.
- mov 1f, a0;
- mov a0, (12, sp);
- # Number of bytes to write.
- mov 5, d3;
- mov d3, (16, sp);
- # Trigger OS trap.
- syscall;
- exit 0
- .data
- 1: .asciz "pass\n"
- .endm
- # MACRO: fail
- # Write 'fail' to stdout and quit
- .macro fail
- # Trap function 5: write().
- mov 5, d0;
- # Use stdout.
- mov 1, d1;
- # Point to the string.
- mov 1f, a0;
- mov a0, (12, sp);
- # Number of bytes to write.
- mov 5, d3;
- mov d3, (16, sp);
- # Trigger OS trap.
- syscall;
- exit 0
- .data
- 1: .asciz "fail\n"
- .endm
- # MACRO: start
- # All assembler tests should start with a call to "start"
- .macro start
- .data
- .global _stack
- _stack:
- .rept 8
- .long 0
- .endr
- .text
- .global _start
- _start:
- mov _stack, a0;
- mov a0, sp;
- .endm
|