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.hqwc.cn/news/109351.html

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

相关文章

前端JavaScript修饰器:简化代码,增强功能

​ &#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 引言 1. 修饰器简介 2. 修饰器语法 3. 类修饰器 应用场景 示例代码 4. 方法修饰器 应用场景 示例代码 5. 属性…

webpack实战:最新QQ音乐sign参数加密分析

文章目录 1. 写在前面2. 接口抓包分析3. 扣webpack代码4. 补浏览器环境5. 验证加密结果 1. 写在前面 现在&#xff01;很多的网站使用Webpack加载和处理JS文件。所以对于使用了Webpack加载的JS代码&#xff0c;一旦它们被打包并在浏览器中执行&#xff0c;通常是难以直接阅读和…

CSS预编译:提升样式开发效率与可维护性的关键工具

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 引言 CSS预编译是一项前…

AMEYA360详解芯力特SIT1145AQ收发器芯片CAN FD Passive功能详解

01CAN FD Passive功能说明 芯力特在SIT1145AQ/FD版本中加入了CAN FD Passive功能&#xff0c;CAN FD Passive功能简单来说就是SIT1145AQ/FD在休眠或待机模式下屏蔽总线上的CAN FD报文。 为什么需要CAN FD Passive功能呢? SIT1145AQ的特定帧唤醒只支持CAN报文&#xff0c;当SIT…

跨域问题解决方案(三种)

Same Origin Policy同源策略&#xff08;SOP&#xff09; 具有相同的Origin&#xff0c;也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同&#xff0c;那么该资源就将被认为是从不同的Origin得来的&#xff0c;进而不被允许访问。 Cross-origin resource…

合宙Air724UG LuatOS-Air LVGL API控件-开关 (Switch)

开关 (Switch) 示例代码 function event_handler(obj, event)if event lvgl.EVENT_VALUE_CHANGED thenprint("State", lvgl.switch_get_state(obj))end endsw1 lvgl.switch_create(lvgl.scr_act(), nil) lvgl.obj_align(sw1, nil, lvgl.ALIGN_CENTER, 0, -50) lvg…

【数据结构初阶】三、 线性表里的链表(无头+单向+非循环链表)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【数据结构初阶】二、 线性表里的顺序表_高高的胖子的博客-CSDN博客 引言 通过上期对顺序表的介绍和使用 我们可以知道顺序表有以下优点和缺点&#xff1a; 顺序表优点 尾插 和 尾…

LeetCode(力扣)406. 根据身高重建队列Python

LeetCode406. 根据身高重建队列 题目链接代码 题目链接 https://leetcode.cn/problems/queue-reconstruction-by-height/ 代码 class Solution:def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:people.sort(key lambda x: (-x[0], x[1]))que […

恒运资本:沪指震荡涨0.28%,医药板块强势拉升,金融等板块上扬

15日早盘&#xff0c;沪指盘中震荡上扬&#xff0c;科创50指数表现强势&#xff1b;北向资金小幅净流入。 到午间收盘&#xff0c;沪指涨0.28%报3135.31点&#xff0c;深成指、创业板指涨均0.11%&#xff0c;科创50指数涨1.04%&#xff1b;两市合计成交4357亿元&#xff0c;北…

Mybatis系列之核心分析

文章目录 一、Mybatis的前世1、简述&#xff1a;2、什么是JDBC&#xff1a;3、什么是驱动&#xff1a;4、JDBC的开发步骤&#xff1a;《1》注册和加载数据库驱动《2》获得数据库连接《3》获得语句执行对象&#xff0c;然后执行SQL语句&#xff0c;获取执行结果&#xff0c;最后…

BUG:阿里巴巴图标库引入链接后,icon有时候会不显示的话svg下载到本地使用

忽然icon图标就不显示&#xff0c;但是代码、icon链接地址都没有发生变化 解决办法&#xff1a;将icon图标下载到本地&#xff0c;记住前后引用本地的名字要保持一致

汇川PLC学习Day2:编写检测IO端口状态程序

汇川PLC学习Day2&#xff1a;编写检测IO端口状态程序 一、 新增IO和模拟量模块 IO组态界面 模块参数设置 程序编写 想法是将DA模块的通道0接到AD模块的通道0&#xff0c;将DA模块的通道1接到AD模块的通道1&#xff0c;PLC本身发模拟量给自己PLC收模拟量转换&#xff0c;…