Dump current state of printf() (adding %d support), adds itoa()

This commit is contained in:
2025-06-25 13:07:18 +02:00
parent 1de7731139
commit 4438abda11
3 changed files with 116 additions and 24 deletions

View File

@ -12,6 +12,7 @@ extern islower
extern isupper
extern tolower
extern toupper
extern itoa
;console.asm
extern print
extern puts
@ -29,25 +30,25 @@ extern fclose
extern fwrite
section .rodata
PRINT_nums equ 0
PRINT_nums equ 1
PRINT_strs equ 1
TEST_print equ 0
TEST_puts equ 0
TEST_print equ 1
TEST_puts equ 1
TEST_printf equ 1
TEST_min equ 0 ;includes minu
TEST_max equ 0 ;includes maxu
TEST_strlen equ 0
TEST_islower equ 0
TEST_isupper equ 0
TEST_strcpy equ 0
TEST_strlcpy equ 0
TEST_strclr equ 0
TEST_strlclr equ 0
TEST_strcat equ 0
TEST_tolower equ 0
TEST_toupper equ 0
TEST_strcmp equ 0
TEST_file1 equ 0
TEST_min equ 1 ;includes minu
TEST_max equ 1 ;includes maxu
TEST_strlen equ 1
TEST_islower equ 1
TEST_isupper equ 1
TEST_strcpy equ 1
TEST_strlcpy equ 1
TEST_strclr equ 1
TEST_strlclr equ 1
TEST_strcat equ 1
TEST_tolower equ 1
TEST_toupper equ 1
TEST_strcmp equ 1
TEST_file1 equ 1
num1 dq 69
num2 dq 0xFFFFFF
@ -68,7 +69,7 @@ section .rodata
msgPuts db NL,NL,"# puts()",NL,EOS
msgPuts1 db "puts() test",EOS
; printf()
testStr db "Testing: %s, %s, %s, %s, %s, %s, %s, %s, %s",NL,EOS
testStr db "Testing: %s, %s, %s, %s, %s, %s, %s, %s, %d, %s",NL,EOS
tS1 db "one",EOS
tS2 db "two",EOS
tS3 db "three",EOS
@ -80,7 +81,7 @@ section .rodata
tS9 db "noin",EOS
msgPrintf db NL,"# printf()",EOS
msgPrintf1 db "TEST printf()",NL,EOS
msgPrintf2 db "TEST printf(testStr, tS1, tS2, tS3, tS4, tS5, tS6, tS7, tS8, tS9)",NL,EOS
msgPrintf2 db "TEST printf(testStr, tS1, tS2, tS3, tS4, tS5, tS6, tS7, tS8, num1, tS9)",NL,EOS
; min() / minu()
msgMin db NL,"# min() / minu()",EOS
msgMin1 db "TEST min(num1, num2): %d",NL,EOS
@ -220,7 +221,7 @@ main:
lea rdi, [rel msgPrintf1]
call printf
; TEST: printf(testStr, tS1, tS2, tS3, tS4, tS5, tS6, tS7, tS8, tS9)
; TEST: printf(testStr, tS1, tS2, tS3, tS4, tS5, tS6, tS7, tS8, num1, tS9)
lea rdi, [rel msgPrintf2]
call printf
@ -231,11 +232,12 @@ main:
lea r8, [rel tS4]
lea r9, [rel tS5]
push tS9
push qword [num1]
push tS8
push tS7
push tS6
call printf
add rsp, 32 ;cleanup stack, 8*4
add rsp, 40 ;cleanup stack, 8*5
%ENDIF
%IF TEST_min
lea rdi, [rel msgMin]