rdos/lib/print.asm

33 lines
431 B
NASM

; important functions in this file: kprintf
; print a word
; in: ax
print16:
xchg ah,al
call print8
xchg ah,al
; print a byte
; in: al
print8:
push ax ; avoid destroying ah
push bx
xor bx, bx
aam 16 ; high nibble moved into ah, low nibble into al
add ax, 0x3030
push ax
xchg al, ah
call .nib
pop ax
call .nib
pop bx
pop ax
ret
.nib:
cmp al, 0x3a
jl .out
add al, 0x07
.out:
call putc
ret