一段简单的汇编代码如下:
push MB_OK
lea eax, scCaption
push eax
lea eax, scText
push eax
push 0
call dword ptr [MessageBox]
;在win32汇编中为了结束程序,还要加上 invoke ExitProcess, 0
lea是取操作数2的地址放入操作数1,如果操作数2本来已经是一个地址,那么放入1的就应该是指针的地址,按这样的道理,在masm8.0里面以上的代码结果应该是错误的,可是偏偏运行结果正确;而在vc6里面,这些代码运行结果是乱码。那到底以上关于lea的说法是否正确呢?我开始怀疑自己的知识了。
怎么说,还是要请高手指教一下,确实不懂。