【汇编】学习笔记——第五篇
来源:互联网 发布:linux定时脚本 编辑:程序博客网 时间:2024/05/23 23:33
【3.6主要摘要】
栈:
栈是一种具有特殊的访问方式的存储空间
特殊性:最后进入这个空间的数据,最先出去
栈有两个基本操作:入栈 和 出栈
入栈就是讲一个新的元素放到栈顶
出栈就是从栈顶取出一个元素
栈顶的元素总是最后入栈
栈的这种操作规则被称为:LIFO(last in first out 后进先出)
【3.7主要摘要】
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈) 和 POP(出栈)
8086CPU的入栈和出栈操作都是以字为单位进行的.
字型数据用两个单元存放,高地址单元存放高8位,低地址单元存放低8位.
8086CPU中,有两个寄存器,段寄存器SS和寄存器SP
栈顶的段地址存放在SS中,偏移地址存放在SP中
任意时刻,SS:SP指向栈顶元素
8086CPU中,入栈时,栈顶从高地址向低地址方向增长
栈空,SS:SP指向栈空间最高地址单元的下一个单元
【3.9主要摘要】
栈空间也是内存空间的一部分,它只是一段可以以一种特殊的方式进行访问的内存空间
push 和 pop指令格式:
push 寄存器
pop 寄存器
push 段寄存器
pop 段寄存器
push 内存单元
pop 内存单元
push、pop实质上就是一种内存传送指令,可以在寄存器和内存之间传送数据
栈顶的变化范围最大为:0~FFFFH
【关于段】
对于数据段,将它的段地址放在DS中,用mov、add、sub等访问内存单元的指令时,CPU就将我们定义的数据段中的内容当做数据来访问
对于代码段,将它的段地址放在CS中,将段中第一条指令的偏移地址放在IP中,这样CPU就将执行我们定义的代码段中的指令
对于栈段,将它的段地址放在SS中,将栈顶单元的偏移地址放在SP中,这样CPU在需要进行栈操作的时候,比如执行push、pop指令等,就将我们定义的栈段当做栈空间来使用
栈:
栈是一种具有特殊的访问方式的存储空间
特殊性:最后进入这个空间的数据,最先出去
栈有两个基本操作:入栈 和 出栈
入栈就是讲一个新的元素放到栈顶
出栈就是从栈顶取出一个元素
栈顶的元素总是最后入栈
栈的这种操作规则被称为:LIFO(last in first out 后进先出)
【3.7主要摘要】
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈) 和 POP(出栈)
8086CPU的入栈和出栈操作都是以字为单位进行的.
字型数据用两个单元存放,高地址单元存放高8位,低地址单元存放低8位.
8086CPU中,有两个寄存器,段寄存器SS和寄存器SP
栈顶的段地址存放在SS中,偏移地址存放在SP中
任意时刻,SS:SP指向栈顶元素
8086CPU中,入栈时,栈顶从高地址向低地址方向增长
栈空,SS:SP指向栈空间最高地址单元的下一个单元
【3.9主要摘要】
栈空间也是内存空间的一部分,它只是一段可以以一种特殊的方式进行访问的内存空间
push 和 pop指令格式:
push 寄存器
pop 寄存器
push 段寄存器
pop 段寄存器
push 内存单元
pop 内存单元
push、pop实质上就是一种内存传送指令,可以在寄存器和内存之间传送数据
栈顶的变化范围最大为:0~FFFFH
【关于段】
对于数据段,将它的段地址放在DS中,用mov、add、sub等访问内存单元的指令时,CPU就将我们定义的数据段中的内容当做数据来访问
对于代码段,将它的段地址放在CS中,将段中第一条指令的偏移地址放在IP中,这样CPU就将执行我们定义的代码段中的指令
对于栈段,将它的段地址放在SS中,将栈顶单元的偏移地址放在SP中,这样CPU在需要进行栈操作的时候,比如执行push、pop指令等,就将我们定义的栈段当做栈空间来使用
0 0
- 【汇编】学习笔记——第五篇
- 汇编学习笔记 第五章
- 【汇编】学习笔记——第二篇
- 【汇编】学习笔记——第三篇
- 【汇编】学习笔记——第四篇
- [汇编学习笔记][第五章[BX]和loop指令]
- Arm汇编学习笔记(三)——GCC内联汇编
- 大学学习笔记—单片机第五章
- Java学习笔记—第五章
- ARM9学习笔记之——汇编
- X86学习笔记——汇编基础知识
- 【汇编】学习笔记——第一篇
- 8086汇编学习笔记——0
- 《C++ Primer》学习笔记——第五章语句
- pro bash programming学习笔记——第五章
- 《新日语基础教程》学习笔记——第五课
- 《JavaScript 语言精粹》 学习笔记 —— 第五章 继承
- C++primer第五版【学习笔记】——第一章
- BZOJ 1194 HNOI2006 潘多拉的盒子 BFS+Tarjan+拓扑序DP
- 设备控制小结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- hdu-4521 小明序列
- HTML5创业的另一种可能
- 【汇编】学习笔记——第五篇
- Swift EC资料
- 《Unix/linux编程实践教程》第四章部分习题
- 一些常见的Linux命令与shell语句整理
- (Fragement)Android Fragment 基本介绍
- Android 5037端口被占用,adb起不来
- Javascript数组的常用方法总结二
- Apache Common Pool的使用
- 文件和目录操作的系统函数(整理)