我正在尝试将al的值复制到数组(var)中,但这给了我错误:
“上下文中不允许使用内存操作数”
我不知道为什么它不起作用,我正在使用movsx将小尺寸复制到大尺寸。
.data
var word 1000h, 2000h, 3000h
.code
mov al, 60h ;mov 60h to al
movsx var, al ;mov value of al to var
答案 0 :(得分:4)
movsx
仅以movsx reg, r/m
的形式存在,并具有针对不同大小的几个不同组合,但没有“反向”形式。因此,尽管它可以用于从内存中读取,但它不能用于直接写入内存。
因此,在一般情况下,您可以将符号扩展到寄存器中,然后存储该值。
在这种情况下,您可以使用16位立即数的普通mov
。