Add printf() comment, return length of printed message

This commit is contained in:
2025-06-25 13:56:30 +02:00
parent d0769f6ffc
commit 1e095bec77
2 changed files with 8 additions and 0 deletions

View File

@ -46,6 +46,8 @@ puts:
leave
ret
;----- printf(const char* string, ...) -----;
; Currently only supports specifiers: %d, %c, %s
; Return value: Amount of printed characters
printf:
push rbp
mov rbp, rsp
@ -213,6 +215,8 @@ printf:
mov byte [r11], 0x0
lea rdi, [rel printfBuff]
call print
lea rdi, [rel printfBuff]
call strlen
pop r13
pop r12

View File

@ -83,6 +83,7 @@ section .rodata
msgPrintf db NL,"# printf()",EOS
msgPrintf1 db "TEST printf()",NL,EOS
msgPrintf2 db "TEST printf(testStr, tS1, tS2, tS3, tS4, tS5, tS6, tS7, tS8, num1, tS9)",NL,EOS
msgPrintf2b db "Return value: %d",NL,EOS
; min() / minu()
msgMin db NL,"# min() / minu()",EOS
msgMin1 db "TEST min(num1, num2): %d",NL,EOS
@ -239,6 +240,9 @@ main:
push tS6
call printf
add rsp, 40 ;cleanup stack, 8*5
mov rsi, rax
lea rdi, [msgPrintf2b]
call printf
%ENDIF
%IF TEST_min
lea rdi, [rel msgMin]