汇编 学到哪里写哪里——栈

Posted 左百工

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编 学到哪里写哪里——栈相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

栈的两个操作入栈(PUSH) 出栈(POP)

原谅色

注意:任意时刻SS:SP指向栈定元素 SS和SP定义栈 

PUSH AX的执行, 做了两件事:

(1)SP=SP-2

(2)将AX的内容放到SS:SP指向的内存单元

 

栈空的时候 SP指向什么?

比如这个栈的战地(栈底)是1000FH 那么空战(空栈)的时候指向的是10010H

 

POP AX 执行过程与PUSH相反

(1)将SS:SP指向的内存单元的数据放到AX中

(2)SP=SP+2

 

SS 和 SP只能指向栈的顶 但是存在栈的越界的问题

哼,你以为会有吗?不存在的。

8086CPU不保证我们对栈的操作不会越界,全靠自己。

编程的时候要小心。

原谅色

 

PUSH 和 POP指令的格式

PUSH __

POP   __

可以填:寄存器(AX)、段寄存器(SS)、内存单元(DS:[0000H])

 

PUSH 和 POP 实质上是一种内存传送指令

以上是关于汇编 学到哪里写哪里——栈的主要内容,如果未能解决你的问题,请参考以下文章

汇编学习笔记-序章

汇编中变量的旧值在哪里?

Java HotSpot中内在方法的汇编实现代码在哪里?

64位汇编第二讲——64位汇编中局部变量使用及抬栈方法29171230

CUDA C的代码写在哪里?

《汇编语言》总结03 —— 包含多个段的程序