MOV 命令的 Masm 间接寻址模式
我已经尝试过以下形式,但 masm 不喜欢其中任何一个:
mov byte [myVariable], al
mov byte ptr [myVariable], al
mov [byte myVariable], al
我缺少什么?为什么我似乎不能使用间接寻址。
我从 masm 得到的错误是某些行上的“表达式中缺少运算符”,其中一些行说“预期结构字段”
I've tried the following forms and masm doesn't like any of them:
mov byte [myVariable], al
mov byte ptr [myVariable], al
mov [byte myVariable], al
What am I missing? Why can't I seem to use indirect addressing.
the error I get from masm is 'Missing operator in expression" on some of the lines, some of them say "Structure field expected"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不声明变量,它声明一个常量。汇编器只是将所有常量替换为目标文件中的值。因此,
变为
无效。
您必须将值分配给寄存器,如下所示:
does not declare a variable, it declares a constant. The assembler simply replaces all constants with their values in the object file. Hence,
becomes
which is invalid.
You have to assign the value to a register, like so:
应该足够了,甚至只是:
但是话又说回来
mov byte ptr [myVariable], al
应该也工作,这让我想知道“什么是'myVariable'”?
should be sufficient, or even just:
But then again
mov byte ptr [myVariable], al
should also work, which makes me wonder "what is 'myVariable'"?