C++之生成详细汇编代码(二百一十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

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:相关文章:
C++之生成详细汇编代码(二百一十六)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
AIGC|当一个程序员学会用AI来辅助编程实践
一、辅助编程 作为主要以 JAVA 语言为核心的后端开发者,其实,早些时间我也用过比如 Codota、Tabnine、Github 的 Copilot、阿里的 AI Coding Assistant 等 IDEA 插件,但是我并没有觉得很惊奇,感觉就是生成一些代码片段罢了&#x…...
9.14号作业
仿照vector手动实现自己的myVector,最主要实现二倍扩容功能 有些功能,不会 #include <iostream>using namespace std; //创建vector类 class Vector { private:int *data;int size;int capacity; public://无参构造Vector(){}//拷贝构造Vector(c…...
【面试题】C/C++ 中指针和引用的区别
指针是一个独立的对象,它可以指向不同的变量或对象,可以重新赋值给其他变量。而引用是已存在的变量的别名,它必须在定义时初始化,并且不能重新绑定到另一个变量。指针可以是空指针(nullptr),它不…...
spring boot 整合多数据源
多数据源产生的场景 一般情况下,不会有多数据源这样的场景出现,但老项目或者特殊需求的项目,可能会有这样的场景 同一个应用需要访问两个数据库不用数据库中间件的读写分离 注入数据源选择的时机 声明两个数据源实例,在getConnect…...
数据集成:数据挖掘的准备工作之一
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…...
xml配置文件密码特殊字符处理
错误姿势: 正确姿势:采取转义符的方式 常用转义符:...
遥感数据与作物模型同化
基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具,可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系,为不同条件下作物生长发育及产量预测、栽培管理、环境评价以及未来气候变化评估等提供了…...
UI库DHTMLX Suite v8.2发布全新表单组件,让Web表单实现高度可定制!
DHTMLX Suite v8.2日前已正式发布,此版本的核心是DHTMLX Form,这个小部件接收了4个备受期待的新控件,如Fieldset、Avatar、Toggle和ToggleGroup。官方技术团队还为Grid和TreeGrid小部件中的页眉/页脚工具提示提供了一系列新的配置选项等。 在…...
河北省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著
河北省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著...
什么是卷积002
文章目录 前言1.卷积网络和传统网络区别2.卷积神经网络整体架构1.输入层2. 卷积层3.池化层4.全连接层 5.神经网络6.经典网络1.Alexnet2. Vgg3.Resnet 残差网络-特征提取 7.感受野 前言 大纲目录 首先链接图像颜色通道 1.卷积网络和传统网络区别 右边的就是CNN,卷…...
黑马JVM总结(八)
(1)StringTable面试题 1.8 1.6时 (2)StringTable的位置 jvm1.6时StringTable是常量池的一部分,它随着常量池存储在永久代当中,在1.7、1.8中从永久代变成了堆中,为什么做这个更改呢?…...
开源网安入选广东省网络空间安全标准化技术委员会新技术及应用安全技术工作组成员单位
近日,第二届广东省网络空间安全标准化技术委员会(GD/TC 124)(以下简称省网安标委)正式成立。为进一步发挥省网安标委在支撑网络强国建设、推进网络安全产业高质量发展过程中,示范引领核心技术攻关、创新产品…...
Nginx配置指南:如何定位、解读与优化Linux上的Nginx设置
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: 📚…...
辉瑞与吉利德科学:制药巨头的新冠病毒之战
来源:猛兽财经 作者:猛兽财经 总结: (1)猛兽财经认为,华尔街低估了辉瑞(PFE)和吉利德科学(GILD)的前景,因为它们在开发新冠病毒疫苗和药物方面都…...
x86架构基础汇编知识
通用寄存器 EAX 32位 函数返回值 AX 低16位 AH 高八位 AL 低八位 EBX 32位 ECX 32位 循环次数,this指针 EDX 32位 EBP 32位 栈底寄存器 ESP 32位 栈顶寄存器 ESI 源索引寄存器 EDI 目标索引寄存器 EIP 无法直接通过汇编操作 例子 mov al,0xff …...
ThreadLocal的原理
ThreadLocal是Java中的一个类,它提供了线程本地变量的功能。每个线程都可以独立地访问自己的ThreadLocal变量,并且不会受到其他线程的干扰。 public class ThreadLocal<T> { ThreadLocal的原理是通过使用一个ThreadLocalMap来存储每个线程的变量副…...
Chrome 108版(64-bit 108.0.5359.125)网盘下载
还在用Selenium的朋友们注意了,目前Chrome的最新版是116,而官方的Chromedriver只支持到115版。 可惜Google不提供旧版Chrome的下载方式,需要旧版的很难回去了。如果真的想要旧版的Chrome,只能民间自救。 我在2022年12月备份了C盘…...
Mars3d插件参考开发教程并在相关页面引入
问题场景: 1.在使用Mars3d热力图功能时,提示mars3d.layer.HeatLayer is not a constructor 问题原因: 1.mars3d的热力图插件mars3d-heatmap没有安装引用。 解决方案: 1.参考开发教程,找到相关的插件库:Mars3D 三维…...
Windows 性能突然打鸡血,靠 Bug 修复了多年顽疾
要说 的 Bug 集中地,当属资源管理器。 速度缓慢、卡顿、崩溃,不同设备、不同版本的用户都有不同的感受。 严格来说,这其实是 Windows 的传统艺能,要完美修复可不容易。 而作为小老弟的文件资源管理器,时不时来个无响…...
UE4 TCP通信实战:从网络调试助手到Python服务端的跨平台数据交互
1. UE4 TCP通信基础与环境搭建 第一次在UE4里折腾TCP通信的时候,我对着文档研究了整整两天。后来发现其实用对方法,半小时就能跑通第一个Demo。这里分享我最常用的TCPSocketPlugin插件方案,比原生C实现简单十倍。 先到虚幻商城搜索"TCP …...
开源提示词工程平台LynxPrompt:本地化部署与工程化实践指南
1. 项目概述:一个提示词工程的“瑞士军刀”如果你和我一样,长期在AI应用开发、内容创作或者自动化流程构建的一线工作,那么“提示词”这三个字对你来说,绝对不陌生。从简单的聊天对话,到复杂的代码生成、数据分析&…...
Blender 3MF插件:从设计到打印的无缝桥梁 [特殊字符]
Blender 3MF插件:从设计到打印的无缝桥梁 🚀 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 还在为3D模型在不同软件间转换而烦恼吗?B…...
别再只用AES了!手把手教你用Java BouncyCastle库实现SM4国密加密(附完整工具类)
国密算法实战:用Java BouncyCastle实现SM4加密的完整指南 在数据安全领域,国际通用算法长期占据主导地位,但随着技术自主可控需求的提升,国产密码算法正成为企业级应用的新选择。SM4作为我国商用密码标准体系中的重要对称加密算法…...
【实战复盘】Win11 23H2 微信图片拖拽至抖店失效:跨越注册表修复的降级排障SOP
一、 故障描述与初始环境故障现象:用户无法将微信聊天窗口内的图片,直接拖拽至“抖店工作台”聊天输入框中,系统表现为拖拽操作被拦截或无响应。故障环境:Windows 11 23H2 版本。前置历史:该故障电脑此前拖拽功能正常&…...
AI工具导航站Awesome-AITools:社区驱动的资源聚合与高效使用指南
1. 项目概述:为什么我们需要一个AI工具导航站?如果你最近也在关注AI领域,大概率会和我有同样的感受:新工具、新模型、新应用的出现速度,已经快到了让人眼花缭乱的地步。今天刚听说一个能自动剪辑视频的AI,明…...
工业传动避坑:3 个皮带张力调节技巧,杜绝早期失效
工业传动避坑:3 个皮带张力调节技巧,杜绝早期失效在工业传动系统运维中,盖茨同步带、工业皮带的早期失效是高频痛点——不少工程师频繁更换皮带,却始终无法解决根本问题,反而增加运维成本。事实上,90%以上的…...
使用S32 Design Studio(S32DS)常见问题
S32DS常见问题如下:1. 编译器找不到ld文件工程路径不能有中文字符2. 编译器找不到make文件鼠标右键点击工程,在弹出菜单中点击 “Properties” 按钮,弹出属性对话框,点击 Tool Settings 选项卡,在左侧树状框中点击 C/C…...
2026最权威的五大降AI率网站横评
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于当下学术研究的语境里,AI论文工具有着强大功能,可全面涵盖文献梳理…...
Agent-Harness:为AI编码助手套上“缰绳”的工程化框架
1. 项目概述:为什么你的AI编码助手总是“犯傻”?如果你和我一样,已经深度使用过Cursor、Windsurf或者Claude Code这类AI编码助手,那你一定经历过这样的挫败时刻:你满怀期待地让它去修改一个复杂的函数,结果…...
