我正在尝试在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
提交
取消