0

所以我正在尝试编写一个汇编程序,显示命令行参数的十六进制地址,然后是命令行参数本身,例如

0x01234567: command line argument 1

我已将字符串的地址加载到寄存器中,并尝试将其放入缓冲区以将其从十六进制转换为文本,以便在终端中正确显示。

如果我执行以下操作将第一个字符串的地址加载到 ebx 中,

lea ebx,[ArgPtrs+edi*4]

有没有办法将该值移动到缓冲区中?

4

1 回答 1

3

想通了,这只是一些组装成长的痛苦和糟糕的语法。

我最初的想法是——

lea ebx,[ArgPtrs+edi*4]
mov [AddrBuff+edi*4],ebx

只需在 mov 指令中添加 dword 即可使其成为合法指令。

mov dword [AddrBuff+edi*4],ebx
于 2012-05-14T17:04:31.447 回答