【发布时间】:2022-11-25 19:25:29
【问题描述】:
tmp db 0
mov tmp, [bx]
将 bx 地址值移动到 tmp 参数中。
我尝试通过引用将值传递给函数。
【问题讨论】:
tmp db 0
mov tmp, [bx]
将 bx 地址值移动到 tmp 参数中。
我尝试通过引用将值传递给函数。
【问题讨论】:
您可以使用move tmp, bx 或lea 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 覆盖,但不要这样做,因为真正的错误是没有为指针保留足够的空间。)