gpt4 book ai didi

linux - 在汇编中读取带有数组的文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:59:04 24 4
gpt4 key购买 nike

我想编写函数(Linux、汇编、x86),从文件中读取并返回值( double )。我需要这是我对牛顿-拉夫森反演算法的初步猜测(我在 Excel 中检查了这一点,对于随机值,这些值在最多 8 次迭代中给出了正确的结果)。我的文件是这样的:

10
0,1
100
0,01
1000
0,001
...
1E+307
1E-307

我的算法应该是这样的:

0. Load value x
1. Check if x > 1 ? (if equal, return 1)
Yes: jump 2A
No: jump 2B

2A. i = 0
3A. Check if x <= column(i) ?
No: i=i+2 jump 3A
Yes: return column(i+1) jump 4

2B. i = 1
3B. Check if x >= column(i) ?
No: i=i+2 jump 3B
Yes: return column(i+1) jump 4

4. End

这是我到目前为止所得到的:

.text
.global read
read:
pushl %ebp
movl %esp, %ebp
fldl 8(%ebp)

fld1
fcom %st(1)
fstsw %ax
sahf
fstp %st(0)

ja more
jb less
je end

more:

less:

end:
leave
ret

我有一些问题:

  1. 可以实现吗?
  2. 使用这样的文件会更好吗:

    10 0,1

    100 0,01

    1000 0,001

    ...

    1E+307 1E-307

  3. 在汇编中读取 double 值是否合适(例如 1E+75 将被正确读取)?

  4. 我不知道如何实现此功能,因此需要您的帮助。

最佳答案

  1. 这是一个愚蠢的问题。当然有可能。
  2. 分隔符是空格、换行符还是其他任何内容都无关紧要。
  3. 加载数字的最简单方法是二进制格式。当然,创建文件会更加困难。没有任何说明可以直接为您解析这样的数字,您需要自己完成。除非您被迫从头开始实现这一切,否则您可以调用 C 库函数。
  4. 您需要提出比这更具体的问题。

关于linux - 在汇编中读取带有数组的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com