这个问题已经在这里有一个答案:
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
字节。
英特尔架构的处理器一般不能在一个指令从存储器传输数据到存储器。你需要写类似:
mov byte al, [char]
mov byte [str1+2], al