美文网首页从汇编到C++
5.汇编-堆栈相关指令

5.汇编-堆栈相关指令

作者: Asura_Luo | 来源:发表于2018-05-04 02:54 被阅读0次

5.汇编-堆栈相关指令

什么是堆栈

程序启动的时候操作系统会给每个程序一块虚拟的4G内存当程序需要使用的时候必须要和操作系统申请内存
堆栈是程序的心脏,程序中需要用到的重要数据,都在堆栈中体现

  1. 就是一块特殊的内存,操作系统在程序启动的时候已经分配好的,供程序执行时使用
  2. 和数据结构的堆栈无关
  3. 查看堆栈

正常内存使用从小地址往大地址使用,堆栈中从大地址往小地址使用
当堆栈用完了就会出现堆栈溢出错误

栈指针寄存器 ESP

ESP中存储了当前的堆栈用到哪里了

手工使用堆栈

  1. 存储数据
  2. 修改栈顶指针地址 (ESP寄存器)

堆栈自动管理

PUSH

将数据压入栈中

功能:

  1. 向堆栈压入数据
  2. 修改栈顶指针 ESP寄存器

指令格式:

PUSH r32
PUSH r16
PUSH m16
PUSH m32
PUSH imm/8/imm16/imm32

POP

将数据弹出堆栈

功能:

  1. 将栈顶数据存储到寄存器/内存
  2. 修改栈顶指针到ESP寄存器

指令格式:

POP r32
POP r16
POP m16
POP m32

相关文章

  • 5.汇编-堆栈相关指令

    5.汇编-堆栈相关指令 什么是堆栈 程序启动的时候操作系统会给每个程序一块虚拟的4G内存当程序需要使用的时候必须要...

  • 堆栈相关指令

    指令注释使用PUSH<1>向堆栈入压入数据<2>修改栈顶指针ESP寄存器的值PUSH r16/32PUSH m16...

  • ARM64 学习

    iOS汇编 真机 arm64汇编,GNU 模拟器 x86, AT&T 汇编 寄存器 指令 堆栈 通用寄存器 64b...

  • ARM64汇编

    一般来说学习汇编可以从寄存器、指令、堆栈入手,下面我们慢慢学习: 生成汇编文件: xcrun --sdk ipho...

  • 关于Java的跨平台性,字节码和汇编码

    我们知道,C和C++是将源代码编译成平台相关的汇编指令(比如x86架构汇编指令,arm架构汇编指令),这就导致了已...

  • olldbg 指令

    左上窗口 :反汇编窗口左下窗口 :数据窗口右下窗口 :堆栈窗口右上窗口 :寄存器窗口 快捷键 指令

  • 逆向笔记(三)-汇编指令

    汇编指令 针对汇编来说,汇编指令是必须了解的,而且汇编中汇编指令比较多,但是每一个汇编指令对应的机器码是固定不变的...

  • arm64汇编篇-01CPU与内存简介

    CPU在汇编中的重要性 在汇编中,硬件相关最为重要是CPU/内存 在汇编中,大部分指令都是和CPU与内存相关的 a...

  • 16位汇编简记

    汇编: 汇编即是机器指令助记符,机器指令让cpu工作。像是mov、jmp、jcxz等汇编指令都有对应的机器指令。有...

  • 学习汇编--写一个完整的汇编(一)

    汇编指令 汇编有两类指令组成汇编指令如move,add,sub等,有对应的机器指令,可以被编译为机器指令最终被CP...

网友评论

    本文标题:5.汇编-堆栈相关指令

    本文链接:https://www.haomeiwen.com/subject/ozyrrftx.html