当前位置: 首页 > news >正文

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.lryc.cn/news/166900.html

相关文章:

  • AIGC|当一个程序员学会用AI来辅助编程实践
  • 9.14号作业
  • 【面试题】C/C++ 中指针和引用的区别
  • spring boot 整合多数据源
  • 数据集成:数据挖掘的准备工作之一
  • xml配置文件密码特殊字符处理
  • 遥感数据与作物模型同化
  • UI库DHTMLX Suite v8.2发布全新表单组件,让Web表单实现高度可定制!
  • 河北省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著
  • 什么是卷积002
  • 黑马JVM总结(八)
  • 开源网安入选广东省网络空间安全标准化技术委员会新技术及应用安全技术工作组成员单位
  • Nginx配置指南:如何定位、解读与优化Linux上的Nginx设置
  • 辉瑞与吉利德科学:制药巨头的新冠病毒之战
  • x86架构基础汇编知识
  • ThreadLocal的原理
  • Chrome 108版(64-bit 108.0.5359.125)网盘下载
  • Mars3d插件参考开发教程并在相关页面引入
  • Windows 性能突然打鸡血,靠 Bug 修复了多年顽疾
  • 亚马逊封买家账号的原因有哪些
  • 1.0零基础尝试DCM通讯(c-store)
  • vue之封装tab类组件
  • 固定资产管理中净值怎么算
  • SQlite操作后如何正确退出
  • phpcmsV9.6.0sql注入漏洞分析
  • 深入理解正则表达式:高效处理文本数据的利器
  • 张雪峰说网络空间安全专业
  • day11-ArrayList学生管理系统
  • java springboot 如何实现小程序支付
  • 题目:2839.判断通过操作能否让字符串相等 I