好不容易筹了20分,问个函数调用的细节问题,有汇编的。
//:test.cpp
#include <iostream>
using namespace std;
struct Big{
char buf[100];
long d;
int i;
int a;
float c;
}B,B2;
Big f(Big b)
{
b.i = 100;
return b;
}
int main()
{
B2 = f(B);
system("pause");
}
///:~
--------------------------------------------
如下为B2 = f(B)这句代码的汇编表示:
23: B2 = f(B);
0041B2B4 sub esp,74h
0041B2B7 mov ecx,1Dh
0041B2BC mov esi,offset B (458600h)
0041B2C1 mov edi,esp
0041B2C3 rep movs dword ptr [edi],dword ptr [esi]
0041B2C5 lea eax,[ebp-138h]
0041B2CB push eax
0041B2CC call f (419F19h)
0041B2D1 add esp,78h
0041B2D4 mov ecx,1Dh
0041B2D9 mov esi,eax
0041B2DB lea edi,[ebp-1B4h]
0041B2E1 rep movs dword ptr [edi],dword ptr [esi]
0041B2E3 mov ecx,1Dh
0041B2E8 lea esi,[ebp-1B4h]
0041B2EE mov edi,offset B2 (458678h)
0041B2F3 rep movs dword ptr [edi],dword ptr [esi]
哪位大虾帮忙说明一下上面的汇编的作用好么??注释一下。
等啊!
相关推荐
Ubuntu系统空间清理:5种有效方法与自动化方案
Linux系统磁盘空间管理是系统运维的基础技能,Ubuntu等基于Debian的发行版会随时间积累大量临时文件、缓存数据和废弃软件包。这些数字垃圾不仅占用宝贵存储空间,当根分区使用率超过90%时还会导致系统性能下降甚至服务崩溃。通过APT缓存清理、老旧内核删除、日志轮转等标准化操作,可以安全回收数十GB空间。结合ncdu磁盘分析工具和BleachBit等专业清理软件,还能深度优化存储使用。对于服务器环境,建议配置cron定时任务实现自动化维护,将磁盘空间管理纳入DevOps常规流程。本文以Ubuntu系统为
Ubuntu 18.04 安装 Anaconda/Miniconda 避坑指南:shell、PATH 与镜像源三大核心问题
Anaconda 是 Python 科学计算环境的事实标准,其核心是 conda 包管理器与隔离的 Python 运行时。在 Linux 系统中,conda 的正确运行高度依赖 shell 解析能力、PATH 环境变量加载顺序及远程仓库连通性。Ubuntu 18.04 因默认使用 dash 作为 /bin/sh、系统级 PATH 初始化机制特殊、以及国内直连官方源严重受限,成为 conda 部署故障高发平台。本文聚焦 Ubuntu 18.04 这一经典 LTS 版本,深入解析 bash 与 dash 兼容性
保姆级教程:在Ubuntu 18.04上为Qt 5.12.9编译安装MQTT库(附常见错误排查)
本文提供在Ubuntu 18.04上为Qt 5.12.9编译安装MQTT库的详细教程,涵盖环境准备、源码获取、编译配置、常见错误排查及ARM交叉编译等关键步骤。特别针对物联网开发中的实际需求,帮助开发者高效集成Qt MQTT模块,解决编译过程中的典型问题。
Ubuntu18.04磁盘爆满?5分钟用GParted搞定分区扩容(附永久挂载配置)
本文详细介绍了在Ubuntu18.04系统中使用GParted工具快速解决磁盘爆满问题的方法,包括分区创建、ext4文件系统配置及永久挂载设置。通过可视化操作和fstab配置指南,帮助用户安全高效地完成磁盘扩容,避免数据丢失和系统启动问题。
Ubuntu18.04虚拟机安装全流程:从镜像下载到快照备份(附避坑指南)
本文详细介绍了在VMware Workstation中安装Ubuntu18.04虚拟机的完整流程,包括镜像下载、虚拟机配置、系统安装及优化设置。特别提供了避坑指南和实用技巧,帮助开发者高效搭建Linux开发环境,并推荐了生产力工具和系统维护策略。


