34 lines
532 B
NASM
34 lines
532 B
NASM
%define cr 0x0a
|
|
%define lf 0x0d
|
|
%define endl 0x0
|
|
|
|
; Reads a character
|
|
; out:
|
|
; al = asci character
|
|
; ah = scan code
|
|
read_char:
|
|
mov ah, 0
|
|
int 0x16
|
|
ret
|
|
|
|
; Prints a character
|
|
; in:
|
|
; al = asci character to print
|
|
print_char:
|
|
mov ah, 0x0e
|
|
int 0x10
|
|
ret
|
|
|
|
; Prints a null terminated string
|
|
; in:
|
|
; si = null terminated string pointer
|
|
print_line:
|
|
.loop:
|
|
cmp byte [si], 0
|
|
je .done
|
|
mov al, [si]
|
|
call print_char
|
|
inc si
|
|
jmp .loop
|
|
.done:
|
|
ret |