Push/Pop vs Mov in MASM



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

原因是什么:

push wParam
pop char

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

为什么我不能简单地

mov char, wParam

我有一种感觉,这与地址有关,但我无法证明它的合理性。当我尝试使用 mov 语句时,MASM 会吐出一个非描述性错误。

因为两者都是内存地址,并且在 x86 汇编中没有像 mov mem,mem 这样的指令(在这种情况下mov char,wParam(。

因此,要做到这一点,你需要使用 push & pop ,或者首先将值移动到具有mov reg,mem的某个寄存器中,然后从该寄存器移动到具有mov mem,reg的内存中。

最新更新