汇编代码似乎没有返回存储在rbx中的内存地址

问题描述 投票:0回答:1

我写了这个简单的汇编代码(在Linux上是nasm),并且期望让rbx存储用于保存浮点数乘法的内存空间的地址:

section .data
real1:  dq 25.665544
real2:  dq 10.000

section .text
global _start
_start:
fld qword [real1]       ; load real1 in the float stack, st0
fld qword [real2]       ; st0 now holds real2, real1 in st1
fmul st0, st1           ; st0 *= st1
fstp qword [real1]      ; save st0 in real1 and pop, real1 has the result
fstp qword [real2]      ; save st1 in real2 and pop, float stack is empty
mov rbx, qword real1    ; store the address of real1 in rbx

mov rax, 1
int 80h

编译程序并运行后,我执行了“ echo $?”查看其返回值。嗯,它在我的终端上显示224,但是我希望看到类似内存地址的内容,我相信它最后会保存在rbx中。也许我的期望是错误的。您能说明发生了什么吗?

assembly x86-64 nasm
1个回答
0
投票
Linux出口代码只有8位长,因​​此您要返回的数字将从64位截断为8。
© www.soinside.com 2019 - 2024. All rights reserved.