11得票3回答
计算机如何绘制屏幕?

计算机如何在最底层将任何东西绘制到屏幕上(不涉及像X11这样的外部库)?是否应该有汇编指令来实现这一点?CPU 究竟如何控制屏幕上出现的内容?

10得票3回答
比较不同大小的位域

如果你使用位运算符(&、|等)来比较两个不同大小的位字段会发生什么? 例如,比较 0 1 1 0 和 0 0 1 0 0 0 0 1:0 1 1 0 0 0 0 0 The smaller one is extended with zeros and pushed to the 0 ...

10得票5回答
在Windows系统中是否存在无缓冲的I/O?

我希望能找到类似于 Linux 系统中的 "write" 命令的低级 C/C++ API,且没有缓冲区。请问是否存在这样的 API? fread 和 fwrite 等带有缓冲区的 I/O 并不是我所需要的。

10得票2回答
CPU如何执行像MUL/MULT这样的指令?

MUL(x86)/MULT(mips)在不同的汇编语言中均表示乘法。对于程序员来说,它是一个黑匣子。我对CPU如何实现乘法感兴趣,而不考虑架构。假设我的寄存器中有两个16位值,并且我是CPU,因此必须使用我拥有的其他位操作指令(and、or、xor、not、shl、shr等)来实现MUL。我该...

10得票5回答
Python中的位减运算

这是对昨天我提出的问题 的补充: CMS友好地提供了在C语言中使用位运算符将两个数字相加的示例: #include<stdio.h> int add(int x, int y) { int a, b; do { a = x & y; ...

10得票9回答
一个低级别的程序员应该具备什么技能?

我是一名嵌入式软件工程师,拥有不到3年的经验。我致力于持续“磨炼自己”。我想知道C/C++程序员在低级别编程方面需要精通的具体内容。 我首先想到的是熟悉硬件结构和指令集。了解如何操作位也很重要,资源管理和性能优化是我的工作的一部分,还有其他需要注意的地方吗? 编辑:我使用的是内部定制的RT...

10得票2回答
计算8个AVX单精度浮点向量的8个水平求和

我有8个AVX向量,每个向量包含8个浮点数(总共64个浮点数),我想将每个向量中的元素相加在一起(基本上执行8个水平求和)。 目前,我正在使用以下代码:__m256 HorizontalSums(__m256 v0, __m256 v1, __m256 v2, __m256 v3, __m2...

9得票1回答
我能否从内存地址构建一个环境对象?

我发现我们可以从内存地址构建/重建外部指针,看这个例子,我从数据表对象中获取一个指针并重新构建它: # devtools::install_github("randy3k/xptr") iris_dt <- data.table::as.data.table(iris) ptr1 &l...

9得票5回答
为什么有这么多不同的调用约定?

历史上,为什么似乎每个人和他们的亲戚都定义自己的调用约定?你有C、C ++、Windows、Pascal、Fortran、Fastcall和可能还有无数其他的调用约定我没想到要提到。难道不应该有一个约定对于绝大多数用例来说是最有效的吗?是否有任何好的理由优先考虑其中之一?

9得票6回答
LWARX和STWCX的x86等效指令

我正在寻找类似于PowerPC处理器上的LWARX和STWCX或在x86平台上实现类似功能的方法。另外,哪里可以找到有关锁定/无等待编程的好文章/网站/论坛(例如如何实现无锁引用计数系统)?需要实现一个多线程访问和更改智能指针的无锁引用计数系统。我需要一种在x86处理器上实现类似LWARX和S...