43得票3回答
为什么Linux不使用通过TSS进行硬件上下文切换的方式?

我读到了以下陈述: x86架构包括一种特定的段类型,称为任务状态段(TSS),用于存储硬件上下文。尽管Linux不使用硬件上下文切换,但它仍然被迫为系统中每个不同的CPU设置一个TSS。 我想知道: 为什么Linux不使用硬件支持来进行上下文切换? 硬件方法难道不比软件方法快得多吗...

41得票8回答
3D数组在C语言中是如何存储的?

我知道在C语言中,数组是按行主序分配的。因此,对于一个2 x 3的数组:0 1 2 3 4 5 存储在内存中的形式为0 1 2 3 4 5 然而,如果我有一个 2 x 3 x 2 的数组:0 1 2 3 4 5 并且6 7 8 9 10 11 这些是如何在内存中存储的?只是按顺...

40得票3回答
CheatEngine的加速作弊是如何工作的?

Cheat Engine提供了一个名为速度提升的功能,可以加速或减慢游戏运行速度。实际上不仅仅是游戏,如果有计时器的软件也可以被加速。这是如何实现的呢?我可以想象这些程序内部会有一些时钟来运行,但不确定在低层次上是如何实现的。 虽然这个功能在我试过的大多数游戏上都有效,但在许多游戏中也失败了...

38得票4回答
电脑如何计算平方根?

计算机如何计算平方根?它是如何进行处理的! 它是否使用像牛顿法这样的数学方法? 三角函数呢?以及几乎所有这些数学函数。 如果每种编程语言都有自己的方式,那么让我们来谈谈C++。

35得票2回答
汇编语言 - .data、.code 和寄存器是什么?

今早我发了一个有关汇编的困惑问题,并得到了一些真正非常好的帮助,我真的很感激。现在我开始涉及汇编,开始理解它的工作原理。我觉得我理解得还可以的包括堆栈、中断、二进制/十六进制以及大多数基本操作的含义(jmp、push、mov等)。我现在正在努力理解的概念并希望得到帮助的是:1.数据段(data...

34得票26回答
不使用+运算符,最好的方法是什么来实现两个数字相加?

我的朋友和我正在互相出谜题,我不知道该如何解决这个问题。 我的假设是可能需要使用一些位运算符,但我不确定。

34得票11回答
是否有一种方法可以强制指定C或C++结构体的特定字节顺序?

我看到了一些关于结构体字节序的问题和答案,但它们都是关于检测系统的字节序或在两种不同字节序之间转换数据。 然而,我想知道是否有一种方法可以强制规定给定结构体的特定字节序。除了使用很多宏操作位域重写整个结构体外,是否有一些好的编译器指令或其他简单的解决方案? 一个通用的解决方案很好,但我也很...

31得票4回答
使用C++或汇编从头开始创建一个图形用户界面(GUI)

我在使用GUI库方面遇到了许多糟糕的经历,所以我想知道如何在C++中从零开始创建一个窗口。我不是指Win32,我是指完全自己创建,不使用任何外部库。 也许有办法使用图片或其他方式来创建一个窗口,我知道这将非常困难。 我还在某处读到过可以用汇编语言为C++创建库的方法。 是否有办法在汇编或...

30得票14回答
迁移代码库时,下一代低级语言哪种最好?

假设你的公司正在大量使用C/C++,并且你想开始规划迁移到新技术,以免像15年前的COBOL公司一样遭受灾难。 目前,C/C++ 运行得非常好,并且市场上有很多相关开发人员。 但是你想现在开始考虑这个问题,因为由于巨大的代码基础和数据敏感性,你觉得在不过度使用预算和开发团队的情况下,可能需...

27得票7回答
CPU仿真和锁定到特定的时钟速度

如果您阅读过我其他的问题,就会知道这个周末我花了很多时间编写了一个6502 CPU模拟器作为一个编程练习。CPU模拟器大部分完成,根据我的有限测试来看,它似乎相当准确,但是其运行速度非常快,我想将其降到实际机器的时钟速度。我当前的测试循环是这样的: // Just loop infini...