push,pop指令

简介: push,pop指令

push,pop指令

push,pop格式可以是如下的:

1.push 寄存器

2.pop 寄存器

3.push 段寄存器

4.pop 段寄存器

5.push 内存单元

6.pop 内存单元

当push,pop指令中只能给出内存单元的偏移地址,段地址在执行指令时,CPU从ds中取得

push,pop指令同mov指令不同,CPU执行mov指令只需一步操作,就是传送,而执行push,pop指令却需要两步操作。执行push时,CPU的两步操作是:先改变SP,后向SS:SP处传送。执行POP时,CPU的两步操作是:先读取SS:SP处的数据,后改变SP


段的综述

段我们可以分为数据段,代码段,栈段。

对于数据段,将它的段地址放在DS中,用mov,add,sub,等访问内存单元的时候,CPU就将我们定义的数据段中的内容当做数据来访问。

对于代码段,将他的段地址放在CS中,将段中第一条指令的偏移地址放在IP中,这样CPU就将执行我们定义的代码段的指令。

对于栈段,将它的段地址放在SS中,将栈顶单元的偏移地址放在SP中,这样CPU在需要进行栈操作的时候,比如执行push,pop指令等,就将我们定义的栈段当做栈空间来使用。


目录
相关文章
汇编(五)栈、CPU提供的栈机制、push、pop指令
汇编、栈、CPU提供的栈机制、push、pop指令、编程、汇编语言
30159 2
|
29天前
|
编译器 程序员 C++
【C/C++ 容器操作】C++高效编程:掌握emplace_back与push_back的使用和机制
【C/C++ 容器操作】C++高效编程:掌握emplace_back与push_back的使用和机制
64 0
|
7月前
|
容器
push_back还是emplace_back?
emplace_back() 是 C++11 之后,vector容器中添加的新方法,和 push_back()一样,都是在容器末尾添加一个新的元素,相对于push_back函数,它减少了一次类的构造。不同的是emplace_back() 在效率上相比较于 push_back() 有了一定的提升。
|
8月前
pop() push() shift() unshift()作用
pop() push() shift() unshift()作用
|
存储 前端开发 JavaScript
JavaScript总结:关于堆栈、队列中push()、pop()、shift()、unshift()使用方法的理解
JavaScript总结:关于堆栈、队列中push()、pop()、shift()、unshift()使用方法的理解
188 0
JavaScript总结:关于堆栈、队列中push()、pop()、shift()、unshift()使用方法的理解
POP3邮局协议的一些命令
  POP3全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来邮件服务器取得邮件。POP3采用的也是C/S通信 模型,对应的RFC文 档为RFC1939。
1179 0
|
Android开发
【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
298 0
|
存储 C++ 容器
C++中push_back和emplace_back的区别
在 `C++11` 之后,`vector` 容器中添加了新的方法:`emplace_back()` ,和 `push_back()` 一样的是都是在容器末尾添加一个新的元素进去,不同的是 `emplace_back()` 在效率上相比较于 `push_back()` 有了一定的提升。
788 0
C++中push_back和emplace_back的区别