From 7d1991f8e6475f774263bdc5a0be15c9c0b79068 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Thu, 7 Dec 2023 14:52:20 +0100 Subject: include 16-bit number printing functions in stage1 --- stage1/print.asm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'stage1') diff --git a/stage1/print.asm b/stage1/print.asm index 3505eb6..5c4b399 100644 --- a/stage1/print.asm +++ b/stage1/print.asm @@ -10,3 +10,50 @@ print_str: jmp .print .return: ret + +; modify eax, ebx, ecx, edx +print_hex: + mov ebx, 0x10 + jmp print_num +print_dec: + mov ebx, 10 +print_num: + xor ecx, ecx +.convert: + inc ecx + xor edx, edx + div ebx + cmp dl, 10 + jb .digit + add dl, 'A'-10 + jmp .next +.digit: + add dl, '0' +.next: + push dx + cmp eax, 0 + jne .convert +.print: + cmp ecx, 0 + je .return + dec ecx + pop ax + mov ah, 0x0E + int 0x10 + jmp .print +.return: + ret + +newline: + mov al, 10 + call print_chr + + mov al, 13 + call print_chr + + ret + +print_chr: + mov ah, 0x0E + int 0x10 + ret -- cgit v1.2.3