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指令、编程、汇编语言
31084 2
|
7月前
|
存储 程序员 开发者
深入理解汇编:push、pop、add、sub、lea 指令详解
深入理解汇编:push、pop、add、sub、lea 指令详解
950 1
|
容器
push_back还是emplace_back?
emplace_back() 是 C++11 之后,vector容器中添加的新方法,和 push_back()一样,都是在容器末尾添加一个新的元素,相对于push_back函数,它减少了一次类的构造。不同的是emplace_back() 在效率上相比较于 push_back() 有了一定的提升。
|
存储 前端开发 JavaScript
JavaScript总结:关于堆栈、队列中push()、pop()、shift()、unshift()使用方法的理解
JavaScript总结:关于堆栈、队列中push()、pop()、shift()、unshift()使用方法的理解
261 0
JavaScript总结:关于堆栈、队列中push()、pop()、shift()、unshift()使用方法的理解
POP3邮局协议的一些命令
  POP3全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来邮件服务器取得邮件。POP3采用的也是C/S通信 模型,对应的RFC文 档为RFC1939。
1252 0
ScrollView push之后再pop回来,contentOffset变成了0
ScrollView push之后再pop回来,contentOffset变成了0
191 0
|
Android开发
【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
【Android 逆向】x86 汇编 ( push / pop 入栈 / 出栈 指令 | ret / retn 函数调用返回指令 | set 设置目标值指令 )
350 0
|
存储 C++ 容器
C++中push_back和emplace_back的区别
在 `C++11` 之后,`vector` 容器中添加了新的方法:`emplace_back()` ,和 `push_back()` 一样的是都是在容器末尾添加一个新的元素进去,不同的是 `emplace_back()` 在效率上相比较于 `push_back()` 有了一定的提升。
904 0
C++中push_back和emplace_back的区别
下一篇
DataWorks