为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用printf打印单精度浮点数

如何使用printf打印单精度浮点数

我正在尝试在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
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 854 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信