MASM间接寻址模式,我已经试过以下几种形式和MASM不喜欢任何人:为MOV命令
mov byte [myVariable], al
mov byte ptr [myVariable], al
mov [byte myVariable], al
我缺少什么?为什么我似乎不能使用间接寻址。
我从MASM得到的错误是在表达“缺少操作员”上的一些线路,有的人说‘结构领域有望’
MASM间接寻址模式,我已经试过以下几种形式和MASM不喜欢任何人:为MOV命令
mov byte [myVariable], al
mov byte ptr [myVariable], al
mov [byte myVariable], al
我缺少什么?为什么我似乎不能使用间接寻址。
我从MASM得到的错误是在表达“缺少操作员”上的一些线路,有的人说‘结构领域有望’
mov [myVariable], al
应该是足够的,甚至只是:
mov myVariable, al
但话又说回来 MOV字节的PTR [MYVARIABLE],人 应该也工作,这让我不知道 “什么是 'MYVARIABLE'?”
myVariable equ 0404h
不声明变量,它声明一个常量。汇编程序只是用对象文件中的值替换所有常量。因此,
mov [myVariable], al
变得
mov [0404h], al
这是无效的。
你得值分配到寄存器,就像这样:
mov di,0404h
mov byte ptr [di],al
您可以使用立即作为基准值。你可以这样做:'mov [ds:myVariable],al'(指定基地相对的任何部分) – 2018-02-21 15:20:56
它是宣布在顶部如 MYVARIABLE EQU 0404h的地址。 然后一些呼叫正在使用的寄存器与偏移如 BP + 10 – 2009-12-07 16:53:04
间接寻址心不是工作和任一: 和[BP + 22H],77H的结果为“无效指令操作数” – 2009-12-07 16:57:33
改成了MOV ds:[myvariable],al 并得到:“无效的指令操作数” – 2009-12-07 16:59:57