我正在嘗試在x86_64程序集中打印浮點數,但它只會將值打印為零。已經有一些問題了。通過確保您在%al中設置要使用的向量寄存器數,似乎可以解決該問題。另一個表明您需要16個字節的堆棧對齊。但是,我同時做這些事情,仍然沒有得到正確的輸出。這是我的程序:# prints a floating point value.section .rodata.fmt: .string "num: %f\n".num: .float 123.4.section .text.global main.type main, @functionmain: subq $8, %rsp # 16-byte alignment # print my number movss .num, %xmm0 # load float value movq $.fmt, %rdi # load format string movb $1, %al # use 1 vector register call printf # exit addq $8, %rsp # undo alignment movq $0, %rax # return 0 ret
添加回答
舉報
0/150
提交
取消