1.mov指令中目标操作数和源操作数不能同时为内存单元
(下图报错的大致意思就是:指令不支持被给的操作数)
2.LEA语法:
LEA 目标操作数,ptr ds:某内存单元
作用:将此内存单元的编号拷贝到目标操作数
3.压入数据
三种方式:
(1)mov dword ptr ds:[esp-4],0x12124545
sub esp,4
(2)SUB ESP,4
MOV DWORD PTR DS:[ESP],56562323
(3)MOV DWORD PTR DS:[ESP-4],78784545
LEA ESP,DWORD PTR SS:[ESP-4]
上述三种方式只不过把push的作用分解成两步
就比如 push eax
就是让ESP对应的内存编号减4,然后将eax对应的内存编号拷进到ESP对应的内存
4.弹出数据
mov eax,dword ptr ds:[esp]//将esp对应的内存编号里面的值赋给eax
add esp,4
如果用pop的话应该就是:pop eax