x86架构下64位的ubuntu环境下汇编(O2优化)及函数调用栈的理解

1.引言

在我的另一篇博客(链接:x86 64位的ubuntu环境下汇编(无优化)及函数调用栈的详解-CSDN博客)中详细分析了没有优化的情况下汇编的详解。在这篇文章中,尝试差分解析使用O2编译优化后生成的汇编代码,看看有啥不同。

2.源码

和链接中的源码是一样的。

#include<stdio.h>
 
typedef unsigned char uint8;
 
uint8 a = 0U;
uint8 b = 0U;
 
int main(int argn, char* argv[])
{
    a = b + 1;
    b = 1;
    return 0;
}

汇编命令

g++ -S -O2 reorder_demo.cpp

3.汇编代码

如下:

	.file	"reorder_demo.cpp"
	.text
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB30:
	.cfi_startproc
	endbr64
	movzbl	b(%rip), %eax
	movb	$1, b(%rip)
	addl	$1, %eax
	movb	%al, a(%rip)
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE30:
	.size	main, .-main
	.globl	b
	.bss
	.type	b, @object
	.size	b, 1
b:
	.zero	1
	.globl	a
	.type	a, @object
	.size	a, 1
a:
	.zero	1
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.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:

4.差分详解

首先看起来就比上篇文章中汇编简洁不少,结构上也有不同,

全局变量a和b的汇编内容放在了main函数内容之后。

剩余部分下回分解 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 15:24:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 15:24:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 15:24:04       82 阅读
  4. Python语言-面向对象

    2024-04-26 15:24:04       91 阅读

热门阅读

  1. MyBatis笔记——一对多参映射问题解决

    2024-04-26 15:24:04       34 阅读
  2. 成为程序员后你都明白了什么?

    2024-04-26 15:24:04       33 阅读
  3. 微信小程序监听App中的globalData——全局数据监听

    2024-04-26 15:24:04       32 阅读
  4. 【Mysql】使用binlog日志进行数据库迁移和数据恢复

    2024-04-26 15:24:04       120 阅读
  5. js中onchange的使用场景及如何使用

    2024-04-26 15:24:04       88 阅读
  6. 子组件使用this.$emit向父组件传递信息

    2024-04-26 15:24:04       93 阅读
  7. Gradle的安装配置及使用

    2024-04-26 15:24:04       39 阅读
  8. 安装OceanBase的机器如果出现故障,应该如何处理

    2024-04-26 15:24:04       36 阅读
  9. kotlin根据文件的filePath转化为uri

    2024-04-26 15:24:04       112 阅读
  10. WordPress外贸独立站如何提高询盘转化率

    2024-04-26 15:24:04       39 阅读