第三章、汇编3

ops/2024/10/15 18:10:53/

过程

运行时栈

首先看看运行时栈的布局:
在这里插入图片描述
解释一波:

  • 当函数P调用Q的时候,首先为要为Q准备参数,6个参数的时候可以放在寄存器里,当多于6个参数的时候可以暂存在栈里。这里注意,实际Q的第七个参数是从rsp的位置开始往上加, para7=rsp+8, para8=rsp+16(注意,不管参数数据大小,都是8字节往上加,即使不够空着也不用), 这里的参数构造区就是Q函数的参数位置,图里的参数7是P的参数构造区,这里不要误会。
  • 当执行call的时候,会把pc寄存器中的下一条的指令地址暂存在栈中,也就是上图中的返回地址,而ret就是把栈里值pop出去pc寄存器中。
  • 如果Q中要用一些寄存器,但是这个寄存器被P占用了,这个时候需要把寄存器中的值暂存在被保存的寄存器<这个应该放在P桢中,是P的责任>,但是这里要注意了,图中的被保存寄存器是Q要调用其他函数时,提前把一些寄存器值存好,这个责任是调用者的责任,而不是被调用者的责任。
  • 接下来函数Q中的局部变量有些需要放在栈上,1.放一些寄存器不足时的local数据 2.函数中&运算符的变量,毕竟需要拿到地址,不能放在寄存器 3.数组或者数据结构

http://www.ppmy.cn/ops/42632.html

相关文章

【热门话题】CentOS 常见命令指南

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 CentOS 常见命令指南一、文件与目录操作1. 切换目录2. 查看当前目录3. 列出目录…

C++容器之无序多集(std::unordered_multiset)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 assigns3.3 iterators3.4 capacity3.5 find3.6 count3.7 equal_range3.8 emplace3.9 emplace_hint3.10 insert3.11 erase3.12 clear3.13 swap3.14 bucket_count3.15 max_bucket_count3.16 bucket_size3.17 bucket3.18 load_fa…

数据库(vb.net+OleDB+Access)简易学生信息管理系统

在我们日常生活当中&#xff0c;数据库一词往往离不开我们的编程界&#xff0c;在学校、仓库等方面起着存储数据及数据关系作用的文件。相较于Excel&#xff0c;Access可以存储无限多的记录&#xff0c;内容也十分丰富&#xff0c;例如文本、数字、日期、T&F等。而且不需要…

截图工具PixPin(比Snipaste更强大)

PixPin官网链接&#xff1a;https://pixpinapp.com/ 最近新出的一款截图工具PixPin&#xff0c;比Snipaste功能多一些。在Snipaste功能基础上&#xff0c;还支持长截图&#xff0c;截动图&#xff0c;文本识别。

【React】Ant Design 5.x版本table scroll滚动条样式自定义

新版里table的滚动条样式由:scrollbar-width、scrollbar-color接管&#xff0c;导致之前的伪类方式失效&#xff01; 环境 antd: ^5.14.1react: ^18 解决方案&#xff1a; 若想延续伪类方式修改滚动条样式&#xff0c;可以在定义伪类样式文件里加入以下片段&#xff1a; .a…

KubeKey 安装 K8s

官网教程 在 Linux 上以 All-in-One 模式安装 KubeSphere 步骤 1&#xff1a;准备 Linux 机器 若要以 All-in-One 模式进行安装&#xff0c;您仅需参考以下对机器硬件和操作系统的要求准备一台主机。 硬件推荐配置 操作系统最低配置Ubuntu 16.04, 18.04, 20.04, 22.042 核 …

Mac启用三指拖移

1. 简介 在使用mac的用户中大部分都会开启三指拖移功能&#xff0c;它能大大简化选中文字、修改窗口大小、拖动窗口等操作。 什么是三指拖移&#xff1f; 三指拖移是macOS触控板的一种手势功能&#xff0c;允许用户用三根手指在触控板上进行拖动操作&#xff0c;而无需按住触…

Tower在深度学习中的概念,tower没有确切定义

在论文UniTS中&#xff0c;来自Havard的工作。 tower更像是针对一个task的组件 tower这个概念貌似在REC&#xff08;recommendation&#xff09;推荐系统中使用较多 deep learning - What is a tower? - Data Science Stack Exchange https://developers.google.com/machin…