请问这句汇编代码什么意思: LEA EAX,DWORD PTR SS:[ESP+4C],另外mov和lea有什么区别?

如题所述

将SS(stack segment堆栈段)中ESP+4C这个“地址”(注意是地址,而非地址中的值)以双字(即4个字节)放入到EAX这个寄存器中(此寄存器可存储4个字节,正好匹配你放进来的4个字节长度的地址)。“DWORD PTR ”就是将内存单元指定为双字(同理,WORD-PTR就是指定为字,BYTE-PTR就是指定为字节)。
另外mov与lea的区别:mov ax,BUFF ;是把BUFF这个内存单元中的数据放入到ax寄存器中
而 lea ax,BUFF ;是把BUFF这个内存单元的地址放入到ax寄存器中
两者区别就是一个传递的是内容,一个传递的是地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-23
把地址为esp加4c的值的存储单元的地址(其实就是esp+4c的值)送给eax.lea重在取地址,如果用mov就是把esp+4c单元里的一个双字送给eax
第2个回答  2011-01-23
就是将 段超越前缀 SS 对应 的寄存器 ESp 指向的内存单元 偏移量位 4 开始 往后的 双字 的段首地址 给 EAX

lEA 和 mov 的区别是 是
LEA EAX,DWORD PTR SS:[ESP+4C],===MOV OFFSET DWORD PTR SS:[ESP+4C],
相似回答