1.
MOV DOWRD PTR SS:[ESP-4], ECX
SUB ESP, 4
2.
LEA EAX, DWORD PTR SS:[ESP-4]
MOV DWORD PTR DS:[EAX], ECX
MOV ESP, EAX
3.
MOV DWORD PTR SS:[ESP-4], ECX
MOV ESP, DWORD PTR SS:[ESP-4]
1.
MOV ECX, DWORD PTR SS:[ESP]
ADD ESP, 4
2.
LEA EAX, DWORD OTR SS:[ESP]
ADD ESP, 4
MOV ECX, DWORD PTR DS:[EAX]
3.
MOV ECX, DWORD PTR SS:[ESP]
MOV ESP, DWORD PTR SS:[ESP+4]
1.
MOV DWORD PTR SS:[ESP-4], ESP
SUB ESP, 4
2.
LEA EAX, DWORD PTR SS:[ESP-4]
MOV DWORD PTR DS:[EAX], ESP
MOV ESP, EAX
3.
MOV EAX, ESP
SUB ESP, 4
MOV DWORD PTR DS:[ESP], EAX
1.
MOV ESP, DWORD PTR SS:[ESP]
2.
LEA EAX, DWORD PTR SS:[ESP]
MOV ESP, DWORD PTR DS:[EAX]
# 最后两种方式比较有趣
3.
MOV EAX, DWORD PTR SS:[ESP]
XOR EAX, DWORD PTR SS:[ESP]
XOR ESP, EAX
4.
MOV EAX, DWORD PTR SS:[ESP]
XOR EAX, DWORD PTR SS:[ESP]
XOR EAX, DWORD PTR SS:[ESP]
MOV ESP, DWORD PTR DS:[EAX]
总结: 一条汇编指令可由其他指令组合实现,不局限于一种表现形式,编译器不同其生成的汇编代码也不尽相同。