可执行文件的大小?

发布于 2024-10-29 17:57:56 字数 126 浏览 3 评论 0 原文

我创建了一个非常小的代码来添加两个整数并将结果保存在另一个变量中,无论是汇编语言还是 C 语言。汇编代码花费了我 617 字节,但 C 代码花费了 25k 字节!为什么会有这么大的差别呢? 另外,如何查看我编写的 C 代码的汇编符号指令?

I created a very small code to add two integers and save the result in another variables, both in assembly language and c language. code in assembly cost me 617 bytes but code in C took 25k bytes!! why there is a huge difference?
Also how can I view the assembly symbolic instructions for C code I wrote?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空宴 2024-11-05 17:57:56

高级语言有一定的开销。在组装时,您所拥有的就是您所说的。

在这种情况下,您看到的开销可能是标准组件的静态绑定,例如 printf。可能包含语句添加了这些。

如果你想看看你的输出是什么样的,你将需要一个反汇编器。 此处NASM 反汇编器(如果你想看一下的话)。

您可以通过不包含任何内容来避免部分开销,而是以类似于汇编中的方式实现功能。

High level languages have a certain amount of overhead. While in assembly all you have is exactly what you say.

The overhead you are seeing in this case is likely the static binding of standard components, such as printf. Likely an include statement added these.

If you want to see what your output is like you will need a dissembler. Here is the documentation for the NASM dissembler if you wanted to take a look at one.

You can avoid some of this overhead by not including anything and instead implement the functionality in a fashion similar to how you did in assembly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文