MOV 命令的 Masm 间接寻址模式

发布于 2024-08-14 00:38:20 字数 227 浏览 5 评论 0原文

我已经尝试过以下形式,但 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

前事休说 2024-08-21 00:38:20
myVariable equ 0404h

不声明变量,它声明一个常量。汇编器只是将所有常量替换为目标文件中的值。因此,

mov [myVariable], al

变为

mov [0404h], al

无效。

您必须将值分配给寄存器,如下所示:

mov di,0404h
mov byte ptr [di],al
myVariable equ 0404h

does not declare a variable, it declares a constant. The assembler simply replaces all constants with their values in the object file. Hence,

mov [myVariable], al

becomes

mov [0404h], al

which is invalid.

You have to assign the value to a register, like so:

mov di,0404h
mov byte ptr [di],al
雾里花 2024-08-21 00:38:20
mov [myVariable], al

应该足够了,甚至只是:

mov myVariable, al

但是话又说回来
mov byte ptr [myVariable], al
应该工作,这让我想知道“什么是'myVariable'”?

mov [myVariable], al

should be sufficient, or even just:

mov myVariable, al

But then again
mov byte ptr [myVariable], al
should also work, which makes me wonder "what is 'myVariable'"?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文