操作码和操作数的组合无效? (86 DOS)[重复]

问题描述 投票:1回答:1

这个问题已经在这里有一个答案:

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"

为什么NA​​SM给我这个错误信息:

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

mov byte [str1+2], [char] 

在此行中我试图移动存储在*char到地址*str1+2字节。

assembly x86 nasm dos x86-16
1个回答
7
投票

英特尔架构的处理器一般不能在一个指令从存储器传输数据到存储器。你需要写类似:

mov byte al, [char]
mov byte [str1+2], al
© www.soinside.com 2019 - 2024. All rights reserved.