小编use*_*943的帖子

printf float in nasm assembly 64-bit

我想用printf打印浮点值

global main
extern printf

section .data
   string: db `%f\n`, 0

section .bss
   rs: resq 1

[...]

   movq xmm0, [rs]
   mov rdi, string
   mov rax, 0
   call printf
Run Code Online (Sandbox Code Playgroud)

rs包含浮点值1.6

(gdb) x/fg &rs
0x600ad8 <rs>:  1.6000000000000001
Run Code Online (Sandbox Code Playgroud)

但程序打印

[username@localhost folder]$ ./programname
0.000000
Run Code Online (Sandbox Code Playgroud)

谁能让程序打印1.6?我究竟做错了什么?

assembly printf x86-64 nasm calling-convention

1
推荐指数
1
解决办法
4050
查看次数

如何从汇编中的地址加载单个字节

如何从地址加载单个字节?我以为会是这样的:

mov      rax, byte[rdi]
Run Code Online (Sandbox Code Playgroud)

x86 assembly nasm

1
推荐指数
1
解决办法
571
查看次数

标签 统计

assembly ×2

nasm ×2

calling-convention ×1

printf ×1

x86 ×1

x86-64 ×1