printf() optimization: Use syscall and mov r14 to rax rather than calling print and strlen -- r14 used to contain wrong length: mistakenly increased r14 (and performed checks) for printfNBuff

This commit is contained in:
2025-06-25 21:57:01 +02:00
parent 45a62dff93
commit 61a1cb50d1

View File

@ -155,14 +155,8 @@ printf:
.charToStr:
mov [printfNBuff], dil
inc r14
cmp r14, bufferLength-1
je .finish
mov dil, 0
mov [printfNBuff+1], dil
inc r14
cmp r14, bufferLength-1
je .finish
lea rsi, [rel printfNBuff]
jmp .insertLoop
@ -210,10 +204,12 @@ printf:
.finish:
mov byte [r11], 0x0
lea rdi, [rel printfBuff]
call print
lea rdi, [rel printfBuff]
call strlen
mov rax, NR_write
mov rdi, 1
lea rsi, [rel printfBuff]
mov rdx, r14
syscall
mov rax, r14
cmp r14, bufferLength-1
jl .final