我正在嘗試在x86_64程序集中打印浮點(diǎn)數(shù),但它只會(huì)將值打印為零。已經(jīng)有一些問題了。通過確保您在%al中設(shè)置要使用的向量寄存器數(shù),似乎可以解決該問題。另一個(gè)表明您需要16個(gè)字節(jié)的堆棧對(duì)齊。但是,我同時(shí)做這些事情,仍然沒有得到正確的輸出。這是我的程序:# 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
如何使用printf打印單精度浮點(diǎn)數(shù)
明月笑刀無情
2019-12-06 15:06:19