【问题标题】:How can I move address value into parameter on asm? [closed]如何将地址值移动到 asm 的参数中? [关闭]
【发布时间】:2022-11-25 19:25:29
【问题描述】:
tmp db 0
mov tmp, [bx]

将 bx 地址值移动到 tmp 参数中。

我尝试通过引用将值传递给函数。

【问题讨论】:

    标签: assembly x86


    【解决方案1】:

    您可以使用move tmp, bxlea tmp, [bx]

    【讨论】:

    • lea 需要注册目的地。 move 不是 x86 助记符,mov 是。但他们只在该地址保留了一个字节的空间,因此从 BX 存储 2 个字节是不正确的。
    • 此外,根据他们使用的语法,mov tmp, bx 可能是一个有效的指令:在 NASM / FASM 语法中,tmp 是标签地址,你必须使用 mov [tmp], bx 来存储到内存中地址。在 MASM 语法中,db 将暗示与 BX 冲突的大小,因此您需要先将 db 更改为 dw,然后才能汇编 mov tmp, bx。 (您可以使用 mov word ptr [tmp], bx 覆盖,但不要这样做,因为真正的错误是没有为指针保留足够的空间。)
    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    相关资源
    最近更新 更多