您的位置:首页 > 运维架构

[置顶] 4000 2017-11-15 深刻理解堆栈及PUSH POP指令

2017-11-15 19:09 204 查看
1、使用3种方式实现:pushecx

mov ebx,0012ffc4 //栈顶

mov edx,0012ffe4  //栈底

sub ebx,4 

mov dword ptr ds:[ebx],ecx 

 

 

mov dword ptr ds:[ebx-4],ecx

sub ebx,4

 

lea ebx,dword ptr ds:[ebx-4]

mov dword ptr ds:[ebx],ecx

2、使用3种方式实现:pop ecx

mov ecx,dword ptr ds:[ebx]

add ebx,4

 

lea ebx,dword ptr ds:[ebx+4]

mov ecx,dword ptr ds:[ebx-4]

 

mov ecx,dword ptr ds:[ebx]

lea ebx,dword ptr ds:[ebx+4]

3、用两种方式实现 push esp

 

Mov ebx,esp

Mov dword ptr ds:[ebx],esp

Sub ebx,4

Mov esp,ebx

 

Mov ebx,esp

Mov dword ptr ds:[ebx-4],ebx

Sub esp,4

 

4、用两种方式实现 pop esp

 

Mov ebx,esp

mov esp,dword ptr ds:[ebx]

5、  使用EBX存储栈底地址,EDX存储栈顶地址,连续存储5个不同的数

 

 

MOV EBX,ESP

MOV EDX,EBP

MOV DWORD PTR DS:[EBX-4],111111>

SUB EBX,4

MOV DWORD PTR DS:[EBX-4],222222>

SUB EBX,4

MOV DWORD PTR DS:[EBX-4],333333>

SUB EBX,4

MOV DWORD PTR DS:[EBX-4],444444>

SUB EBX,4

MOV DWORD PTR DS:[EBX-4],555555>

SUB EBX,4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: