Implement division
This commit is contained in:
@ -7,6 +7,9 @@
|
||||
.global exit
|
||||
.type exit, @function
|
||||
|
||||
.global _divide_by_zero_error
|
||||
.type _divide_by_zero_error, @function
|
||||
|
||||
.global _start
|
||||
.type _start, @function
|
||||
|
||||
@ -51,7 +54,7 @@ printi:
|
||||
addi a0, zero, 1
|
||||
addi a1, a1, 1
|
||||
sub a2, s0, a1
|
||||
addi a7, zero, 64
|
||||
addi a7, zero, 64 # write
|
||||
ecall
|
||||
|
||||
lw s0, 0(sp)
|
||||
@ -74,7 +77,7 @@ printc:
|
||||
addi a0, zero, 1
|
||||
addi a1, s0, -2
|
||||
addi a2, zero, 2
|
||||
addi a7, zero, 64
|
||||
addi a7, zero, 64 # write
|
||||
ecall
|
||||
|
||||
lw s0, 0(sp)
|
||||
@ -84,10 +87,19 @@ printc:
|
||||
|
||||
exit:
|
||||
addi a0, zero, 0
|
||||
addi a7, zero, 93
|
||||
addi a7, zero, 93 # exit
|
||||
ecall
|
||||
# ret
|
||||
|
||||
_divide_by_zero_error:
|
||||
addi a7, zero, 172 # getpid
|
||||
ecall
|
||||
|
||||
addi a1, zero, 8 # SIGFPE
|
||||
addi a7, zero, 129 # kill
|
||||
ecall
|
||||
ret
|
||||
|
||||
_start:
|
||||
call main
|
||||
call exit
|
||||
|
Reference in New Issue
Block a user