[置顶] 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
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
相关文章推荐
- 【iOS开发-21】UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解
- [置顶] ES5 中的面向对象编程前传 之 深刻理解函数
- push、pop指令
- 设a,b,c三个元素的进栈次序是a,b,c,符号PUSH与POP分别表示对堆栈进行一次进栈操作与一次出栈操作
- 使用链表定义堆栈,实现pop,push
- glPushMatrix()和glPopMatrix()以及glLoadIdentity()的理解
- push、pop指令
- iOS开发-21UINavigationController导航控制器初始化 导航控制器栈的push和pop跳转理解
- push、pop指令
- Push, Pop, call, leave 和 Ret 指令图解
- phread_cleanup_push()与phread_cleanup_pop()的理解
- push、pop指令
- PUSHA/PUSHAD POPA/POPAD 指令详解
- pthread_cleanup_push()和pthread_cleanup_pop()的理解
- push、pop指令
- opengl 中glpushmatrix和glpopmatrix函数的个人理解
- [置顶]F#学习之路(2) 深刻理解函数(上)
- push、pop指令
- 《高效学习OpenGL》之 操作矩阵堆栈 glPushMatrix(),glPopMatrix()
- 堆栈的push, pop操作...