Adds basic printf() (currently only support '%%')

This commit is contained in:
2025-07-06 20:09:21 +02:00
parent a47ab3cdc6
commit cc214ed5e5
2 changed files with 137 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ extern exit
; console.asm
extern print
extern puts
extern printf
; string.asm
extern strlen
extern strcpy
@@ -14,6 +15,7 @@ extern strcat
section .rodata
TEST_print equ 1
TEST_puts equ 1
TEST_printf equ 1
TEST_strlen equ 1
TEST_strcpy equ 1
TEST_strcat equ 1
@@ -30,6 +32,11 @@ section .rodata
; puts()
msgPuts db "TEST puts()",EOS
; printf()
msgPrintf db "TEST printf()",NL,EOS
printf1 db TAB,"printf(",DQUO,"He%ll%o there%%%%%!%s%!%\n",DQUO,"): ",NL,TAB,TAB,EOS
printf1Str db "He%ll%o there%%%%%!%s%!%",NL,EOS
; strlen()
strlenStr1 db "Hello",EOS
strlenStr2 db "Hello, world!",NL,EOS
@@ -75,6 +82,20 @@ _start:
call puts
%endif
;---
;--- printf()
;---
%if TEST_printf
lea rdi, [rel msgPrintf]
call printf
; TEST 1
lea rdi, [rel printf1]
call print
lea rdi, [rel printf1Str]
call printf
%endif
;---
;--- strlen()
;---