39 lines
874 B
NASM
39 lines
874 B
NASM
label _scratch_print_var:
|
|
nop
|
|
|
|
label print_addr:
|
|
rload 4 3; Load Arg 1 in 3
|
|
store $3 _scratch_print_var ; preserve rax
|
|
loadi $7 $1C
|
|
|
|
label print_rax_digit:
|
|
loadi $2 8
|
|
add $2 $9 $9; // X = X + 9
|
|
call set_pos
|
|
|
|
load $3 _scratch_print_var
|
|
shift $3 $7 $4
|
|
loadi $2 $00000F
|
|
and $2 $4 $4
|
|
|
|
call num_to_charset;
|
|
call draw_char;
|
|
|
|
loadi $2 4
|
|
sub $7 $2 $7
|
|
tx $2 $7
|
|
loadi $1 0
|
|
jneq print_rax_digit
|
|
|
|
loadi $2 8
|
|
add $2 $9 $9; // X = X + 9
|
|
call set_pos
|
|
|
|
load $3 _scratch_print_var
|
|
shift $3 $7 $4
|
|
loadi $2 $00000F
|
|
and $2 $4 $4
|
|
|
|
call num_to_charset;
|
|
call draw_char;
|
|
ret |