汇编

时间:2016-10-06 22:18:43

标签: assembly

我正致力于实现一个将ASCII字符串转换为相应的64位二进制补码值的函数。

像%rdi这样的寄存器将包含参数char * s,它是要转换的字符串的第一个字节的地址

该字符串将以空值终止。像%rsi这样的寄存器将包含参数long * x,这是您放置转换结果的地址。

我甚至不知道从哪里开始。如何将ASCII转换为2的补码?我一直在寻找,我发现我应该利用0x0F,我该如何使用它?我应该从哪里开始?

1 个答案:

答案 0 :(得分:0)

要将ASCII字符转换为2的补码,您需要0x0F带有7的ASCII数字。 例如:您将ASCII字符%rsi读入%rdi。注册0x0F保留7

0011 0111相当于:0x0F

0000 1111相当于:AND

0000 0111两者结果导致:7二进制为{{1}}。

希望这有帮助!