gpt4 book ai didi

linux - 汇编 - 将字符数组转换为整数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:44 24 4
gpt4 key购买 nike

RAX 指向一串以感叹号结尾的数字(例如“1234!”)。我一直在尝试将这串数字转换为实际数字,但它正在做同样非常奇怪的事情......这是代码:

CHARINT:                ; convert ASCII encoded numbers to an actual number
XOR RCX,RCX ; clear RCX for use - running total
.LOOP: ; set loopback point
CMP BYTE [RAX],33 ; if we're on our terminating character, end
JE .DONE

PUSH RAX ; multiply our previous number by ten to make room for the next digit
MOV RAX,RCX
MOV RCX,10
MUL RCX
MOV RCX,RAX
POP RAX

SUB BYTE [RAX],0x30 ; convert from ASCII
ADD RCX,[RAX] ; add our most recent digit

INC RAX ; next digit

JMP .LOOP
.DONE:
MOV RAX,RCX
RET

出于某种原因,当我要求它在每次迭代期间打印 RAX 的值时,数字遵循一个有趣的序列 Wolfram Alpha has quite a bit to say about ...

无论如何,我知道我可能遗漏了一些非常简单的东西,如果有人能向我指出,我将不胜感激。谢谢!

-凯尔

最佳答案

我会伸出我的脖子并认为

ADD RCX,[RAX]

没有将 [RAX} 处的 BYTE 添加到 RCX,但可能从该内存地址添加了超过 8 位。

关于linux - 汇编 - 将字符数组转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26947639/

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