diff options
Diffstat (limited to 'boot/asm-boot.s')
| -rw-r--r-- | boot/asm-boot.s | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/boot/asm-boot.s b/boot/asm-boot.s new file mode 100644 index 0000000..594c624 --- /dev/null +++ b/boot/asm-boot.s @@ -0,0 +1,29 @@ +# s1 - Contains the current position in the source text. + +.data + +.equ SYS_EXIT, 93 +.equ SOURCE_BUFFER_SIZE, 2048 + +.bss +.global source_code +.type source_code, @object +.size source_code, SOURCE_BUFFER_SIZE +source_code: .zero SOURCE_BUFFER_SIZE + +.text +.global _start # Program entry point. + +_start: + # Read the source from the standard input. + la a0, source_code + li a1, SOURCE_BUFFER_SIZE # Buffer size. + call read_file + + la s1, source_code # s1 = Source code position. + call compile + + # Call exit. + addi a0, zero, 0 # Use 0 return code. + addi a7, zero, SYS_EXIT + ecall |
