Fix some cases with 0, and fix a label name
This commit is contained in:
parent
b9a752f17e
commit
28c47b79d8
@ -84,7 +84,7 @@ good_height:
|
|||||||
syscall
|
syscall
|
||||||
|
|
||||||
cmp r14,0
|
cmp r14,0
|
||||||
je print_zero_bmi
|
je print_inf_bmi
|
||||||
|
|
||||||
; calculate bmi (kg/(m^2))
|
; calculate bmi (kg/(m^2))
|
||||||
movq xmm1,r14 ; height
|
movq xmm1,r14 ; height
|
||||||
@ -118,7 +118,7 @@ exit:
|
|||||||
mov rax,SYS_exit
|
mov rax,SYS_exit
|
||||||
syscall
|
syscall
|
||||||
|
|
||||||
print_zero_bmi:
|
print_inf_bmi:
|
||||||
mov rax,SYS_write
|
mov rax,SYS_write
|
||||||
mov rdi,FD_stdout
|
mov rdi,FD_stdout
|
||||||
mov rsi,bmi_notice_text
|
mov rsi,bmi_notice_text
|
||||||
@ -127,8 +127,8 @@ print_zero_bmi:
|
|||||||
|
|
||||||
mov rax,SYS_write
|
mov rax,SYS_write
|
||||||
mov rdi,FD_stdout
|
mov rdi,FD_stdout
|
||||||
mov rsi,zero_float_text
|
mov rsi,inf_float_text
|
||||||
mov rdx,zero_float_length
|
mov rdx,inf_float_length
|
||||||
syscall
|
syscall
|
||||||
|
|
||||||
mov rax,SYS_write
|
mov rax,SYS_write
|
||||||
@ -185,7 +185,7 @@ print_float_scale_loop:
|
|||||||
cvtss2si rax,xmm0
|
cvtss2si rax,xmm0
|
||||||
mov rcx,23
|
mov rcx,23
|
||||||
mov rbx,10
|
mov rbx,10
|
||||||
print_float_reverse_loop:
|
print_float_mem_loop:
|
||||||
xor rdx,rdx
|
xor rdx,rdx
|
||||||
div rbx
|
div rbx
|
||||||
add rdx,'0'
|
add rdx,'0'
|
||||||
@ -193,7 +193,7 @@ print_float_reverse_loop:
|
|||||||
dec rcx
|
dec rcx
|
||||||
|
|
||||||
cmp rax,0
|
cmp rax,0
|
||||||
jne print_float_reverse_loop
|
jne print_float_mem_loop
|
||||||
|
|
||||||
push rcx
|
push rcx
|
||||||
push rdi
|
push rdi
|
||||||
@ -398,6 +398,8 @@ period_char: db "."
|
|||||||
newline_char: db 0xA
|
newline_char: db 0xA
|
||||||
zero_float_text: db ".000"
|
zero_float_text: db ".000"
|
||||||
zero_float_length: equ $ - zero_float_text
|
zero_float_length: equ $ - zero_float_text
|
||||||
|
inf_float_text: db "Infinity"
|
||||||
|
inf_float_length: equ $ - inf_float_text
|
||||||
_10f: dd 10.0
|
_10f: dd 10.0
|
||||||
_0.1f: dd 0.1
|
_0.1f: dd 0.1
|
||||||
_100f: dd 100.0
|
_100f: dd 100.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user