printf(): Add support for %s, fix buffer flushing (length given was r11, not r10)

This commit is contained in:
2025-07-06 20:50:07 +02:00
parent cc214ed5e5
commit 3ccad56d76
2 changed files with 70 additions and 20 deletions

View File

@@ -34,8 +34,12 @@ section .rodata
; 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
printf1 db TAB,"printf(",DQUO,"He%ll%o there%%%%%!%!%\n",DQUO,"): ",NL,TAB,TAB,EOS
printf1Str db "He%ll%o there%%%%%!%!%",NL,EOS
printf2 db TAB,"printf(",DQUO,"Are %s doing %s?\n",DQUO,", printf2Str1, printf2Str2): ",NL,TAB,TAB,EOS
printf2Str db "Are %s doing %s?",NL,EOS
printf2Str1 db "you",EOS
printf2Str2 db "okay",EOS
; strlen()
strlenStr1 db "Hello",EOS
@@ -94,6 +98,14 @@ _start:
call print
lea rdi, [rel printf1Str]
call printf
; TEST 2
lea rdi, [rel printf2]
call print
lea rdi, [rel printf2Str]
lea rsi, [rel printf2Str1]
lea rdx, [rel printf2Str2]
call printf
%endif
;---