printf: Shorten code; MOV RDX, R13 instead of bunch of checks (originally I intended to use NOT R12 if padding with zeroes)
This commit is contained in:
@@ -195,9 +195,6 @@ printf:
|
|||||||
loop .getPaddingLoop
|
loop .getPaddingLoop
|
||||||
pop rax
|
pop rax
|
||||||
pop rdi
|
pop rdi
|
||||||
test r13, r13
|
|
||||||
jz .noPadding
|
|
||||||
not r12
|
|
||||||
.noPadding:
|
.noPadding:
|
||||||
cmp byte [rdi + 1], 'c'
|
cmp byte [rdi + 1], 'c'
|
||||||
je .rep_c
|
je .rep_c
|
||||||
@@ -278,20 +275,8 @@ printf:
|
|||||||
load_arg rsi
|
load_arg rsi
|
||||||
push_regs
|
push_regs
|
||||||
mov rdi, rsi
|
mov rdi, rsi
|
||||||
;
|
|
||||||
mov rdx, 0
|
|
||||||
test r12, r12
|
|
||||||
jz .callB2S
|
|
||||||
test r12, r12
|
|
||||||
js .notB2S
|
|
||||||
jmp .callB2S
|
|
||||||
.notB2S:
|
|
||||||
not r12
|
|
||||||
mov rdx, 1
|
|
||||||
jmp .callB2S
|
|
||||||
;
|
|
||||||
.callB2S:
|
|
||||||
mov rsi, r12
|
mov rsi, r12
|
||||||
|
mov rdx, r13
|
||||||
call bin2str
|
call bin2str
|
||||||
mov rsi, rax
|
mov rsi, rax
|
||||||
pop_regs
|
pop_regs
|
||||||
|
@@ -75,7 +75,7 @@ section .rodata
|
|||||||
printf2Str db "Are %s doing %s?",NL,EOS
|
printf2Str db "Are %s doing %s?",NL,EOS
|
||||||
printf2Str1 db "you",EOS
|
printf2Str1 db "you",EOS
|
||||||
printf2Str2 db "okay",EOS
|
printf2Str2 db "okay",EOS
|
||||||
printf3 db TAB,"printf(",DQUO,"%c%c%c%c%c there %c%c %s%c\n",DQUO,"): ",NL,TAB,TAB,EOS
|
printf3 db TAB,"printf(",DQUO,"%c%c%c%c%c there %c%c %s%c\n",DQUO,", 'H', 'e', 'l', 'l', 'o', 'm', 'y', ",DQUO,"friend",DQUO,", '!'): ",NL,TAB,TAB,EOS
|
||||||
printf3Str db "%c%c%c%c%c there %c%c %s%c",NL,EOS
|
printf3Str db "%c%c%c%c%c there %c%c %s%c",NL,EOS
|
||||||
printf3C1 equ 'H'
|
printf3C1 equ 'H'
|
||||||
printf3C2 equ 'e'
|
printf3C2 equ 'e'
|
||||||
|
Reference in New Issue
Block a user