尝试在其他位置复制字节时,有效地址无效

时间:2018-05-02 21:56:55

标签: string assembly memory nasm x86-16

我正在编写一些在x86架构上运行的NASM代码。

作为编写程序以将数字打印为十六进制的练习的一部分(据我所知,我的实现的确切细节是无关紧要的),我需要将一个字节从一个字符串复制到另一个字符串。

这是我的字符串:

hex_digits:
    db '0123456789abcdef'
hex_out:
    db '0000'

假设我hex_digits索引的ax中的字节,hex_out中的第三个索引。

在C中,这看起来像这样:

hex_out[3] = hex_digits[ax]

这是我的集会:

mov cx, [hex_digits+ax]
mov [hex_out+3], cx

不应该这样吗?好吧 - 显然不是,但我已经读过有效的地址有效,here。读完之后,我确信我理解了有效的地址,但似乎并非如此。

我确信它显然是明显的,但我对nasm来说还是个新手。

谢谢!

0 个答案:

没有答案