MASM中的Push / Pop vs Mov

时间:2013-03-26 23:28:16

标签: assembly x86 mov

一个简单的问题,但我不知道答案。

原因是什么:

push wParam
pop char

其中wParam定义为WPARAM类型,char定义为WPARAM类型。

为什么我不能简单地

mov char, wParam

我觉得它与地址有关,但我无法证明这一点。当我尝试使用mov语句时,MASM会发出非描述性错误。

1 个答案:

答案 0 :(得分:5)

因为两者都是内存地址,所以在x86程序集中没有mov mem,mem(在这种情况下为mov char,wParam)这样的指令。

因此,要做到这一点,您需要使用push& pop,或先将值移至mov reg,mem的某个寄存器中,然后将该值移至mov mem,reg的内存中。