[英]In assembler AMD64, I call fprintf but it keeps looping infinitely
我在fprintf上遇到了一個我無法理解的問題。 也許您可以找到解決此問題的方法。
您會看到,當我調用fprintf時,它會無緣無故地開始無限循環。 我不知道這是怎么回事,所以也許您可以幫我一下。
String_int:
db 91; "["
db 37; "%"
db 115;"i"
db 93; "]"
db 0; "end_string"
w_IN_ASCII:
db 119; "w"
db 0; "end_string"
<SOME CODE>
mov rdi, FILE_LOCATION;
mov rsi, w_IN_ASCII;
call fopen;
mov r15, rax;
cmp r15, 0; (with this I can be sure it is not a NULL)
je .endProgram;
mov rdi, r15;
mov rsi, String_int;
mov rdx, TO_PRINT_LOCATION;
call fprintf; this is where my code dies
mov rdi, r15;
call fclose;
.endProgram:
ret
在System V AMD64 ABI中,可變參數函數期望al
中可變參數的實際數量。 我看不到您設置它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.