使用fasm汇编程序将汇编语言中的寄存器值移动到内存地址时出现问题?

时间:2015-06-25 13:36:34

标签: assembly fasm

我真的很困惑这件事。我正在关注x86处理器的书籍汇编编程,我正在阅读关于mov指令及其工作原理。因此,作者说以下说明是有效的 mov mem,reg .....基本上将寄存器值移动到存储器地址。

现在这是我试过的,我不断得到这个错误称为无效操作数。有人可以解释一下究竟是什么错误。

#fasm#

 mov ax,[var] ;the value 67 is moved to the ax register works perfect
 mov myvar,ax ; my aim is to move the value 67 to the memory location of ;myvar but then i keep getting this error - Invalid operand? why is that?

var: dw 67   
myvar: dw ?

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

mov [myvar], ax
  • myvar是一个常量,包含为变量分配的内存地址。
  • [myvar]指示在myvar指向的地址的内存中获取/存储值

所以:

mov ax, myvar  ; load the address of myvar in ax
mov ax, [myvar]; load the value stored at address myvar
mov [myvar], ax; store the value of ax at address myvar