C++之生成详细汇编代码(二百一十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之生成详细汇编程序。

2.应用实例

<1>.代码示例

#include <stdio.h>int main(void){int i;int a = 10;i  = a + 10;printf("i = %d\n",i);return 0;
}

编译: g++ -S -fverbose-asm test.cpp

<2>.生成详细的汇编代码

cat test.s

	.file	"test.cpp"
# GNU C++17 (Ubuntu 11.2.0-19ubuntu1) version 11.2.0 (x86_64-linux-gnu)
#	compiled by GNU C version 11.2.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.24-GMP# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed: -mtune=generic -march=x86-64 -fasynchronous-unwind-tables -fstack-protector-strong -fstack-clash-protection -fcf-protection.text.section	.rodata
.LC0:.string	"i = %d\n".text.globl	main.type	main, @function
main:
.LFB0:.cfi_startprocendbr64	pushq	%rbp	#.cfi_def_cfa_offset 16.cfi_offset 6, -16movq	%rsp, %rbp	#,.cfi_def_cfa_register 6subq	$16, %rsp	#,
# test.cpp:5:   int a = 10;movl	$10, -8(%rbp)	#, a
# test.cpp:7:   i  = a + 10;movl	-8(%rbp), %eax	# a, tmp87addl	$10, %eax	#, tmp86movl	%eax, -4(%rbp)	# tmp86, i
# test.cpp:9:   printf("i = %d\n",i);movl	-4(%rbp), %eax	# i, tmp88movl	%eax, %esi	# tmp88,leaq	.LC0(%rip), %rax	#, tmp89movq	%rax, %rdi	# tmp89,movl	$0, %eax	#,call	printf@PLT	#
# test.cpp:11:   return 0;movl	$0, %eax	#, _5
# test.cpp:12: }leave	.cfi_def_cfa 7, 8ret	.cfi_endproc
.LFE0:.size	main, .-main.ident	"GCC: (Ubuntu 11.2.0-19ubuntu1) 11.2.0".section	.note.GNU-stack,"",@progbits.section	.note.gnu.property,"a".align 8.long	1f - 0f.long	4f - 1f.long	5
0:.string	"GNU"
1:.align 8.long	0xc0000002.long	3f - 2f
2:.long	0x3
3:.align 8
4:

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

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

相关文章

Android HAL - hidl-gen

1.hidl-gen的使用 hidl-gen 编译器会将 .hal 文件编译成一组 .h 和 .cpp 文件,这些 自动生成的文件用于编译客户端 / 服务端实现链接到的共享库,同 时也可以生成 Android.bp 编译文件。 1.1 生成的文件 HIDL 软件包中自动生成的文件会关联到与该软件…

218. 扑克牌 - 记忆化概率dp

Admin 生日那天&#xff0c;Rainbow 来找 Admin 玩扑克牌。 玩着玩着 Rainbow 觉得太没意思了&#xff0c;于是决定给 Admin 一个考验。 Rainbow 把一副扑克牌(54 张)随机洗开&#xff0c;倒扣着放成一摞。 然后 Admin 从上往下依次翻开每张牌&#xff0c;每翻开一张黑桃、红…

留资机器人助你有效提高营销成功率

我们都知道&#xff0c;当客户产生留资行为&#xff0c;就要抓住机会&#xff0c;让工作人员及时地对客户进行回访&#xff0c;然后将留资线索跟踪、维系。而如何准确有效地提高客户保留率和转化率是营销成功的关键。所以对于企业来说&#xff0c;留资机器人正是引导客户留资&a…

Nebula Graph图数据库教程介绍

Nebula Graph图数据库教程介绍 ​ Nebula Graph&#xff08;星云图&#xff09;是一个开源的分布式图数据库系统&#xff0c;最初由中国的石墨烯数据库团队开发。它专门设计用于处理大规模图数据&#xff0c;并提供了高度可扩展性和性能。Nebula Graph支持多种图数据库的核心特…

Android笔记(二十九):利用python自动生成多语言

背景 项目需要支持十几种多语言&#xff0c;而且每个版本的新功能ui都有很多地方需要多语言&#xff0c;如果手动添加非常耗时&#xff0c;于是设计了一个python脚本&#xff0c;通过excel表格转化多语言到项目values/strings文件内 步骤 android工程项目结构 脚本位于langu…

Android官方推荐 无需向应用授予的照片选择器工具

官网链接 Photo picker | Android Developers 不能跳转链接看这 Photo picker 照片选择器对话框会显示在您的设备上的媒体文件中。选择一张照片与应用程序分享。 图1. 照片选择器提供了一个直观的用户界面&#xff0c;用于与您的应用程序分享照片。 照片选择器提供了一个可…

Excel数学、工程和科学计算插件:FORMULADESK Studio

如果 Excel 是您的武器 - 让我们磨砺您的剑&#xff01;为整天使用 Excel 的人们提供创新的 Excel 加载项&#xff0c;你需要这个 FORMULADESK Studio。。。 Excel 插件为任何使用 Excel 执行数学、工程和科学计算的人提供了必备工具。 * 将公式视为真正的数学方程 * 为您的公…

供应商整合对企业有哪些好处?

企业采购总是希望降低成本&#xff0c;赢得更多的利润。实现这目标的其中一种方法就是供应商整合。 究竟什么是供应商整合&#xff1f;整合供应商有哪些好处&#xff1f;本文为你详细解答。 什么是供应商整合&#xff1f; 供应商整合是减少特定产品或服务的供应商数量的过程。…

[当人工智能遇上安全] 9.基于API序列和深度学习的恶意家族分类实例详解

您或许知道&#xff0c;作者后续分享网络安全的文章会越来越少。但如果您想学习人工智能和安全结合的应用&#xff0c;您就有福利了&#xff0c;作者将重新打造一个《当人工智能遇上安全》系列博客&#xff0c;详细介绍人工智能与安全相关的论文、实践&#xff0c;并分享各种案…

混合项目管理:如何成功地整合传统与敏捷方法?

若你尚未涉足于混合项目管理这一领域&#xff0c;且暗自以为其难以捉摸、令人费解&#xff0c;我们向你承诺&#xff0c;实则并非如此。 在深入探究混合项目管理这一主题之前&#xff0c;我们先澄清几项基础但关键的专业术语。在当今这个商业竞争愈发激烈的环境中&#xff0c;项…

如何将一个字符串转换为驼峰命名法(camel case)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 思路⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领…

面试算法3:前n个数字二进制形式中1的个数

题目 输入一个非负数n&#xff0c;请计算0到n之间每个数字的二进制形式中1的个数&#xff0c;并输出一个数组。例如&#xff0c;输入的n为4&#xff0c;由于0、1、2、3、4的二进制形式中1的个数分别为0、1、1、2、1&#xff0c;因此输出数组[0&#xff0c;1&#xff0c;1&…

Linux运维基础知识大全

一. Linux组成 1. 内核 内核&#xff1a;系统空间的代码和数据的集合称为内核&#xff08;Kernel&#xff09;&#xff1b;kernel是操作系统内部最核心的软件&#xff0c;和硬件打交道的 1.对cpu进行管理&#xff0c;进程调度到cpu里进行管理 2.对内存进行空间的分配&#xff0…

nginx 配置反向代理

一、首先进入/usr/local/nginx/conf中&#xff0c;修改nginx.conf文件 二、配置信息 在server{}中 location ^~/api {proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_http_version 1.1;proxy_set_header Host $host;proxy_se…

算法通关村-----系列文章整理

第一关 原来链表这么有用 链表青铜关卡 链表增删改查 链表白银关卡 两个链表第一个公共子节点问题 判断链表是否为回文序列 合并有序链表 链表经典问题之双指针 链表黄金关卡 待更新。。。 第二关 两天写了三次的链表反转 链表反转青铜挑战 三种方式实现手写链表反…

递归学习——记忆化搜索

目录 ​编辑 一&#xff0c;概念和效果 二&#xff0c;题目 1.斐波那契数 1.题目 2.题目接口 3.解题思路 2.不同的路径 1.题目 2.题目接口 3.解题思路 3.最长增长子序列 1.题目 2.题目接口 3.解题思路 4.猜数字游戏II 1.题目 2.题目接口 3.解题思路 总结&a…

私域流量的优势与变现方式

私域流量是指通过建立自己的粉丝群体&#xff0c;实现粉丝运营和内容输出&#xff0c;从而获得更高价值的流量资源。那么&#xff0c;相较于传统营销模式私域流量究竟有哪些优势&#xff1f;如何通过私域流量实现变现呢&#xff1f;本文将为你一一解答。 私域流量的优势在于&a…

使用 Sealos 一键部署高可用 MinIO,开启对象存储之旅

大家好&#xff01;今天这篇文章主要向大家介绍如何通过 Sealos 一键部署高可用 MinIO 集群。 MinIO 对象存储是什么&#xff1f; 对象是二进制数据&#xff0c;例如图像、音频文件、电子表格甚至二进制可执行代码。对象的大小可以从几 B 到几 TB 不等。像 MinIO 这样的对象存储…

解决 Axios 跨域问题,轻松实现接口调用

跨域是指访问另外一个域的资源&#xff0c;由于浏览器的同源策略&#xff0c;默认情况下使用 XMLHttpRequest 和 Fetch 请求时是不允许跨域的。跨域的根本原因是浏览器的同源策略&#xff0c;这是由浏览器对 JavaScript 施加的安全限制。 Axios 跨域常见报错 跨域请求被阻止 (…

vue中 字体图标引入 - iconfont阿里字体图标库

官网&#xff1a;iconfont-阿里巴巴矢量图标库 代码应用中&#xff0c;有许多方法&#xff0c;如何使用该图标库。如&#xff0c;icon单个使用、unicode引用、或 font-class引用&#xff08;推&#xff09;、symbol&#xff08;svg合集&#xff09;。本文主讲 font-class 方法…