Fix some cases with 0, and fix a label name

This commit is contained in:
Alexander Rosenberg 2022-10-07 00:00:23 -07:00
parent b9a752f17e
commit 5e7fe0db85
Signed by: Zander671
GPG Key ID: 5FD0394ADBD72730

View File

@ -84,7 +84,7 @@ good_height:
syscall
cmp r14,0
je print_zero_bmi
je print_inf_bmi
; calculate bmi (kg/(m^2))
movq xmm1,r14 ; height
@ -118,7 +118,7 @@ exit:
mov rax,SYS_exit
syscall
print_zero_bmi:
print_inf_bmi:
mov rax,SYS_write
mov rdi,FD_stdout
mov rsi,bmi_notice_text
@ -127,8 +127,8 @@ print_zero_bmi:
mov rax,SYS_write
mov rdi,FD_stdout
mov rsi,zero_float_text
mov rdx,zero_float_length
mov rsi,inf_float_text
mov rdx,inf_float_length
syscall
mov rax,SYS_write
@ -185,7 +185,7 @@ print_float_scale_loop:
cvtss2si rax,xmm0
mov rcx,23
mov rbx,10
print_float_reverse_loop:
print_float_mem_loop:
xor rdx,rdx
div rbx
add rdx,'0'
@ -193,7 +193,7 @@ print_float_reverse_loop:
dec rcx
cmp rax,0
jne print_float_reverse_loop
jne print_float_mem_loop
push rcx
push rdi
@ -398,6 +398,8 @@ period_char: db "."
newline_char: db 0xA
zero_float_text: db ".000"
zero_float_length: equ $ - zero_float_text
inf_float_text: db "Infinity"
inf_float_length: equ $ - inf_float_text
_10f: dd 10.0
_0.1f: dd 0.1
_100f: dd 100.0