操作码和操作数的组合无效? (x86 DOS)

发布于 2024-12-22 12:23:33 字数 364 浏览 3 评论 0原文

org 100h

mov ah, 9
mov dx, str1
mov byte [str1+2], [char]
int 21h

mov ah, 4Ch
int 21h

str1 db 'String$'
char db "o"

为什么 NASM 给我这个错误消息:

第 5 行错误:操作码和操作数的组合无效

mov byte [str1+2], [char] 

此行中的操作码和操作数组合无效 我试图将存储在 *char 上的字节移动到地址 *str1+2

org 100h

mov ah, 9
mov dx, str1
mov byte [str1+2], [char]
int 21h

mov ah, 4Ch
int 21h

str1 db 'String

Why does NASM give me this error message:

Error on line 5: Invalid combination of opcode and operands

mov byte [str1+2], [char] 

in this line I'm trying to move the byte stored on *char to the address *str1+2.

char db "o"

Why does NASM give me this error message:

Error on line 5: Invalid combination of opcode and operands

in this line I'm trying to move the byte stored on *char to the address *str1+2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

美羊羊 2024-12-29 12:23:33

Intel 架构处理器通常无法通过一条指令将数据从内存传输到内存。你需要写一些类似的东西:

mov byte al, [char]
mov byte [str1+2], al

Intel architecture processors generally can't transfer data from memory to memory in one instruction. You need to write something like:

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