编译原理—栈式存储分配、有参函数的活动记录、参数传递与x86汇编

news2024/11/27 19:50:39

编译原理—参数传递与x86汇编

    • -1.栈式存储分配
    • 0.有参函数的活动记录
    • 1. swap1(int p , int q)
    • 2. swap2(int *p,int *q)
    • 3. swap3(int *p, int *q)
    • 4. swap4(int &p, int &q)

-1.栈式存储分配

在这里插入图片描述
在这里插入图片描述

0.有参函数的活动记录

在这里插入图片描述

参数分别是整型、指针、引用时的参数传递及其汇编代码

1. swap1(int p , int q)

在这里插入图片描述

2. swap2(int *p,int *q)

8(%ebp)是*p,放入%eax,再取(%eax)即
*p指向的地址,-4(%ebp)是temp,将%eax放入temp,
再把*p放在%edx,*q放在%eax,再取q指向的地址(%eax)赋给*p即(%edx),
12(%ebp)是*q,放在%edx,随后temp的值赋给他

在这里插入图片描述

3. swap3(int *p, int *q)

在这里插入图片描述

4. swap4(int &p, int &q)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/331706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenResty(4):OpenResty快速入门

1 hello world openresty1.9.3.1及以下版本,请使用content_by_lua命令;在 openresty1.9.3.2以上,content_by_lua 改成了 content_by_lua_block。可使用 nginx -V 命令查看版本号 方法一: 修改openresty中nginx配置文件nginx.con…

【Django】云笔记项目

一、介绍 用户可在系统中记录自己的笔记,用户的数据被存储在云笔记平台;用户和用户之间的数据为隔离存储(登陆后才能使用相关笔记功能,且只能查阅自己的笔记) 二、功能拆解 1、用户模块 注册:成为平台…

Python学习------起步7(字符串的连接、删除、修改、查询与统计、类型判断及字符串字母大小写转换)

目录 前言: 1.字符串的连接 join() 函数 2.字符串的删除&取代 replace()函数 3.字符串的修改&切割 (1)strip() 函数 (2)lstrip()函数 和 rstrip()函数 (3)split()函数-->…

Dubbo3简单使用

Dubbo3简单使用 👉 使用Spring Boot实现Dubbo3,请参见以下地址。 # Dubbo3官网地址 https://cn.dubbo.apache.org/zh/# 使用SpringBoot实现Dubbo3的地址 https://cn.dubbo.apache.org/zh/docs3-v2/java-sdk/quick-start/spring-boot/# 该项目的git地址…

C语言位域(位段)详解

有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。在结构体定义…

在CANoeCANalyzer中“在线回放”CAN Log.asc/blf文件

案例背景(共11页精讲): 该篇博文将告诉您,在CANoe/CANalyzer中,“Online在线”模式下,回放一个CAN Log.asc/blf文件,重现那时CAN网络中CAM Message/报文的收发过程,让ECU在该环境下…

面试题:Redis常用数据结构

1 string基本编码方式,基于简单动态字符串(SDS)实现,存储上线为512mb.如果存储的SDS长度小于44字节,则会采用EMBSTR编码,此时object head与SDS是一段连续空间。申请内存时只需要调用一次内存分配函数,效率更高。如果存…

【官方 | 计算机二级Python教程】第九章:Python标准库概览

【官方 | 计算机二级Python教程】第九章:Python标准库概览参考书目第九章:Python标准库概览本章知识导图10.1 turtle库10.2 random库10.3 time库习题本文代码编译环境及版本更新日志参考书目 拜读的是计算机等级考试官方推荐教程 《全国计算机等级考试二…

JavaScript入门

介绍:JavaScript(通常缩写为JS)是一门基于原型和头等函数的多范式高级解释型编程语言, 它支持面向对象程序设计、指令式编程和函数式编程。它提供方法来操控文本、数组、日期和正则表达式等。不支持I/O, 比如网络、存储和图形等, 但这些都可以由它的宿主环境提供支持。目前它被…

以太网知识-GMII / RGMII接口

今天和海翎光电的小编一起分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时小编也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的连接方法。GMII 接口分析GMII接口提供了8位数据通道&#xff…

“青春树儿童摄影网”首页制作

“青春树儿童摄影网”首页制作一、实验名称:二、实验日期:三、实验目的:四、实验内容:五、实验步骤:六、实验结果:七、源程序:八、心得体会:一、实验名称: “青春树儿童…

Nginx转发http到https和开机自动启动

场景: 以下都是基于windows系统(ip为虚构) 1.ip:172.16.54.55需要访问172.16.54.57的接口服务,来查看机械臂的运行状况 2.存在网络隔离,172.16.54.55无法直接访问172.16.54.57 3.172.16.54.56与172.16.54.57是机械…

reac面试题

1.React有什么特点?(react的主要功能有哪些?) 它用于虚拟DOM,组件化设计模式,声明式代码,单向数据流,使用jsx描述信息等特点 2.什么是组件化设计模式 复用的代码可以抽成组件共同…

VS Code 1.75 发布!

欢迎使用 2023 年 1 月版的 Visual Studio Code。希望您喜欢此版本中的许多更新,其中一些主要亮点包括:配置文件、VS Marketplace 签名、辅助功能改进、更轻松地调整多视图大小、树视图搜索历史、新的 Git 命令等等。让我们一起看看吧! 配置文…

真实还原项目案例

真实模拟项目案例: 核心和出口用ospf,出口ospf路由用 default-route-advertise always 解决默认路由。 其它的都是常规的就不说了,都在配置里看配置。 出口路由配置: [H3C]dis current-configuration version 7.1.064, Release 04…

中国大学mooc 机器人操作系统讲义以及部分笔记

这里写目录标题二进制与源码包1.7 安装RoboWare Studio新的连接配套代码 官方看了一下课程官方的讲义连接,似乎很多页面已经丢失?或者是未授权?二进制与源码包 https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/chapter…

Web3中文|太心急!谷歌匆忙上线自家“ChatGPT”导致市值蒸发逾千亿美元

谷歌想证明它可以在AI竞赛中与微软抗衡,创建一个新的人工智能搜索引擎,但一个错误回答最终导致母公司 Alphabet 的市场损失超过千亿美元。 低开低走的美股市场 周三,美股三大指数低开低走。道琼斯指数收盘下跌207.68点,跌幅0.61%…

设计模式之单例模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、单例模式是什么? 单例模式是一种创建型的软件设计模式,在工程项目中非常常见。通过单例模式的设计&am…

具有大部分相似的项目之间的项目整合

1.将多个项目文件合并,如:c2文件夹和c3文件夹不同,其余文件都是可以一起用的 2. router/index.js (1) 声明 公用路由,如 const common [{// :xxxx 代表任意匹配(输啥都可以匹配)path: /:channel/login,c…

html 浏览器存储方式

浏览器有三种本地存储方式: 1、localstorage 2、sessionStorage 3、cookie 浏览器 F12 打开调试模式,可以看到: 点击对应域名,可以看到当前域名下存储的数据,是以key,value形式存储的。 三种方式的共同…