8得票2回答
为什么只有在链接crt1.o、crti.o和crtn.o后,汇编程序才能正常工作?

我喜欢了解程序的工作原理,所以为了让它尽可能简洁,我会使用汇编语言进行实验。 我最近发现了如何使用wprintf函数汇编代码,用于x86_64处理器(发现宽字符是32位的)。只需要链接到libc (-lc)即可。 现在我正在尝试着对32位处理器进行相似的汇编,但是我遇到了很多问题。最终我使...

13得票5回答
32位Windows系统上C++应用程序可用的最大内存是多少?

请问C++应用程序使用的最大内存是否受限制? 我了解到这个限制是2GB-这是否正确? 如果C++应用程序尝试请求超过2GB的内存,是否会导致内存崩溃? 最后一个问题-如果运行C++应用程序的机器已经内存不足,并且C++应用程序请求100MB的数组(即连续的内存),操作系统是否会使用虚拟内存来容纳它?

10得票7回答
64位/32位的低级优缺点是什么?

我相信我们都听说过64位和32位这些术语,但它们实际上是什么意思呢? 我相当确定它们与内存地址的大小有关。在64位机器上,对象的引用为64位。但是我想深入一点... 常常听到“64位机器”这个说法,究竟哪个部件与位数有关?是处理器?操作系统? 具有更大内存地址的优势是什么? 我可以添...

9得票1回答
为什么64位的MSBuild加载32位扩展?

我将尝试在一台64位机器上使用MSBuild(v4.0)构建项目。但是出现了一个问题,MSBuild正在尝试加载32位扩展,我无法找出原因。为了演示这个问题,我已经将问题缩小到最小的范围。 以下是MSBuild项目文件: <Project xmlns="http://schemas....

9得票2回答
在32位Linux上,是使用Syscall还是sysenter?

自从 MS-DOS 时代开始,我就知道可以使用中断来调用系统。在早期的文献中,我看到过在 Linux 上调用系统函数需要使用“int 80h”的参考资料。现在已经有相当长一段时间了,我知道“int 80h”已被“syscall”指令取代了。但是我在我的32位机器上无法让它工作。 问题是,是否...

26得票3回答
嵌入式Linux(32位)的2038年解决方案是什么?

如何在32位嵌入式Linux(ARMLinux)的C代码中处理时间,以确保代码在2038年1月19日03:14:07 UTC之后(即有符号32位time_t溢出时)仍能正常工作?考虑到系统上的time_t是有符号32位的,那么有哪些替代方案呢? 大量的搜索未发现实用的解决方法。每个人似乎都假...

9得票2回答
为什么SetupDiCallClassInstaller函数只限于64位程序?

试图从一个在32位模式下编译的程序调用SetupDiCallClassInstaller,在64位的Windows系统上会失败。 显然,这是有意设计成这样的,但我想知道原因。

53得票4回答
在32位系统上使用int64_t代替int32_t会对性能产生什么影响?

我们的C++库目前使用time_t来存储时间值。我开始需要一些亚秒精度,因此在某些地方将需要更大的数据类型。此外,为了解决2038年问题,在某些地方切换到具有基础int64_t值的单个Time类可能会很有用,以替换所有位置的time_t值。 现在我在想,在32位操作系统或32位CPU上运行此...

27得票3回答
深入探究 D 语言嵌入式编程

我很喜欢我所读的关于 D 语言的许多内容。 统一的文档(这将使我的工作更加容易。) 内置测试能力。 语言中带有调试代码支持。 向前声明。(我总是认为声明相同的函数两次很愚蠢。) 内置替换预处理器的功能。 模块化 使用 Typedef 进行正确的类型检查而不是别名。 嵌套函数。(咳咳 PAS...

24得票4回答
在32位平台上编译64位二进制文件的gcc命令

在32位Linux平台上使用gcc,能否编译64位二进制文件?