上下文中不允许内存操作数,将变量复制到数组时数组大小有问题

memory operand not allowed in context, Problem with array size while copying variable to array

我正在尝试将 al 的值复制到数组 (var) 中,但出现错误:

"memory operand not allowed in context"

我不知道为什么它不起作用,我正在使用 movsx 将小尺寸复制到大尺寸..

.data

var word 1000h, 2000h, 3000h

.code

mov al, 60h ;mov 60h to al
movsx var, al ;mov value of al to var

movsx 仅以 movsx reg, r/m 形式存在,具有针对不同尺寸的几种不同组合,但没有 "reverse" 形式。所以它不能用来直接写入内存,虽然它可以用来从内存中读取。

所以在一般情况下,您可以将符号扩展到寄存器中,然后存储该值。

在这种情况下,您可以使用带有 16 位立即数的普通 mov