【发布时间】:2014-03-19 18:35:47
【问题描述】:
我试图在 x86 中找到一个浮点数数组的两个少的数字,但我不知道如何存储数组的元素
要访问我使用的整数:
mov eax, 0 ; eax is a counter
mov ecx, vector ; This store the vector on the register ecx
mov esi, [ecx+4*eax] ; Stores the position eax of the vecor on esi
这适用于整数数组,但不适用于浮点数,我不知道该怎么做。我检查了 8 而不是 4 但它不起作用
编辑:当我说它不起作用时,我的意思是没有正确读取值,存储在上的数字
ESI is 1099956224 that is not correct
谢谢!
【问题讨论】:
-
您必须详细说明“它不起作用”。他们来自哪里,你在用他们做什么?请注意,在 x86 中,浮点值通常不存储在通用寄存器中,而是存储在 FPU 寄存器/堆栈中。
-
看看 SSE 指令/寄存器...
-
1099956224 是 18.0f 的 IEEE-754 编码。对我来说,这看起来是一个非常好的浮点数。也许你应该将它加载到 FPU 中,也许你应该使用更好的调试器 watch 表达式,目前还不是很清楚你打算用它做什么。