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

时间:2011-12-23 07:30:52

标签: assembly x86 nasm dos x86-16

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

1 个答案:

答案 0 :(得分:7)

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

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