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

时间:2018-10-08 10:55:36

标签: assembly x86 masm

我正在尝试将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

1 个答案:

答案 0 :(得分:4)

movsx仅以movsx reg, r/m的形式存在,并具有针对不同大小的几个不同组合,但没有“反向”形式。因此,尽管它可以用于从内存中读取,但它不能用于直接写入内存。

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

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