标签: low-level

GCC中是否有固定大小的整数?

在MSVC++编译器,一个可使用__int8,__int16,__int32和类似的类型与特定尺寸的整数.这对于需要使用低级数据结构(如自定义文件格式,硬件控制数据结构等)的应用程序非常有用.

我可以在GCC编译器上使用类似的等价物吗?

c portability gcc low-level

11
推荐指数
1
解决办法
5681
查看次数

低级编程:操作系统如何启动新的线程/进程?

每当引导程序加载操作系统时,可能只有一个程序流处于活动状态,对吧?这意味着,一个处理器保存指令指针并执行它在EIP寄存器指向的位置处发现的命令.此时,系统如何开始利用更多进程和/或线程(没有用户态线程,但是cpu线程)?

cpu multithreading operating-system process low-level

11
推荐指数
1
解决办法
1837
查看次数

iPhone iOS4低级摄像头控制?

有没有办法在iPhone 4上手动设置iOS4中的低速静态相机设置,如快门速度,光圈或ISO?我不认为它存在于官方SDK中,但也许有人发现了一些私有API来允许这个?

我发现我的iPhone 4相机无法使用,因为即使在相当不错的光线下,它始终坚持以最慢的1/15秒快门速度拍摄,如果拍摄对象完全移动,会导致运动模糊.

谢谢!

iphone camera low-level ios4

11
推荐指数
1
解决办法
3174
查看次数

C#真正的低级声音生成?

任何人都知道在C#中创建ARBITRARY声波并从扬声器播放的合理方法吗?

这个问题已经不断出现多年,我总是在经历了很多失败之后放弃了它而没有找到解决方案.

我想做的就像一个反向可视化器,也就是说,我不想从声音生成"数字",我想从数字生成声音.

就像我提供的一个函数,我提供了采样率,样本大小和声音数据(例如整数数组),它会从中生成相应的wav文件(实时声音播放将是理想的,但我'对此也非常满意).

我知道wav文件规格遍布整个interweb,并且确实做了几次创建上述功能的尝试,但是一旦我开始弄乱每个样本的比特等等......它就变成了一个巨大的,无法控制的混乱.

这还没有以任何方式完成吗?我不会介意是什么用途,只要有一个.NET托管包装它(我可以从最近VS访问时间).XNA不支持低级音频.还发现了几个声称可以实现类似功能的例子,但它们要么根本不起作用,要么做一些完全不同的事情.

谢谢.

c# audio wav low-level

11
推荐指数
1
解决办法
4007
查看次数

我在哪里可以了解计算机的低级工作原理?

到目前为止,我已经编程了大约11年,并使用了许多不同的编程语言,从Python到C.

然而,我感到惭愧的是,我仍然缺少很多基础知识,而这些基础知识都建立在以下基础之上:

  • 堆栈和堆的可执行文件是如何构建的以及它们如何工作

  • CPU如何工作?

  • 什么是时钟周期

  • 什么是数据总线

  • 我的主板上的北桥和南桥如何工作

  • 低级二进制逻辑/计算

这些只是一些例子,我正在寻找的是对此的一些很好的介绍,因为我觉得这只是成为一名优秀程序员所需要的知识.

hardware assembly low-level

11
推荐指数
0
解决办法
1394
查看次数

电脑是如何绘制屏幕的?

计算机如何在最低级别向屏幕绘制任何内容(没有关于外部库,如X11)?是否应该有汇编命令来执行此操作?CPU如何控制屏幕上显示的内容?

cpu assembly screen low-level graphic

11
推荐指数
2
解决办法
2428
查看次数

什么在堆栈内?

如果我运行程序,就像

#include <stdio.h>
int main(int argc, char *argv[], char *env[]) {
  printf("My references are at %p, %p, %p\n", &argc, &argv, &env);
}
Run Code Online (Sandbox Code Playgroud)

我们可以看到这些区域实际上在堆栈中.但还有什么呢?如果我们在Linux 3.5.3中运行所有值的循环(例如,直到segfault),我们可以看到一些奇怪的数字,以及由一堆零分隔的两个区域,可能是为了防止覆盖环境变量偶然.

无论如何,在第一个区域中必须有很多数字,例如每个函数调用的所有帧.

我们如何区分每个帧的结尾,参数在哪里,如果编译器添加了一个金丝雀,返回地址,CPU状态等等?

c x86 stack low-level

11
推荐指数
2
解决办法
382
查看次数

我在哪里可以找到CorFlags值的每一位含义的参考?

我正在搞乱一些相当低级别的东西,并试图确定为什么我使用CorFlags.exe实用程序得到不同的输出.作为参考,输出如下:

$ corflags test2.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x1
ILONLY    : 1
32BITREQ  : 0
32BITPREF : 0
Signed    : 0

$ corflags test.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x20003
ILONLY    : 1
32BITREQ  : …

.net corflags low-level portable-executable bit-fields

11
推荐指数
1
解决办法
2500
查看次数

我想在C中创建一个简单的汇编程序.我应该从哪里开始?

我最近一直在努力让自己沉浸在汇编编程的世界中,最终目标是创建自己的编程语言.我希望我的第一个真正的项目是一个用C编写的简单汇编程序,它将能够组装一小部分x86机器语言并创建一个Windows可执行文件.没有宏,没有连接器.只是集会.

在纸面上,它似乎很简单.汇编代码进来,机器代码出来.

但是一旦我想到所有的细节,它就会突然变得非常艰巨.操作系统需要哪些约定?如何对齐数据并计算跳跃?可执行文件的内部甚至是什么样的?

我感到迷茫.我找不到任何关于这个的教程,看看流行汇编程序的源代码并不鼓舞人心(尽管我愿意再试一次).

我从哪里开始?你会怎么做的?有关于这个主题的任何好的教程或文献吗?

c x86 assembly x86-64 low-level

11
推荐指数
2
解决办法
2万
查看次数

指令级分析:指令指针的含义?

在汇编指令级别分析代码时,如果现代CPU不按顺序或按顺序执行指令,那么指令指针的位置真正意味着什么呢?例如,假设以下x64汇编代码:

mov RAX, [RBX];         // Assume a cache miss here.
mov RSI, [RBX + RCX];   // Another cache miss.             
xor R8, R8;        
add RDX, RAX;           // Dependent on the load into RAX.
add RDI, RSI;           // Dependent on the load into RSI.
Run Code Online (Sandbox Code Playgroud)

指令指针大部分时间用在哪条指令上?我可以为所有人想出好的论点:

  • mov RAX, [RBX] 大概需要100个周期,因为这是一个缓存未命中.
  • mov RSI, [RBX + RCX]也需要100个周期,但可能与前一个指令并行执行.它甚至意味着指令指针位于其中一个或另一个上?
  • xor R8, R8 可能在内存加载完成之前执行乱序并完成,但指令指针可能会保留在此处,直到所有先前的指令也完成为止.
  • add RDX, RAX生成管道停顿,因为它RAX是在缓慢的缓存未命中加载之后实际使用值的指令.
  • add RDI, RSI也停滞,因为它依赖于负载RSI.

performance assembly profiling x86-64 low-level

11
推荐指数
1
解决办法
891
查看次数