Questions tagged «assembly»

用于将指令(机器代码)直接发送到微处理器的低级编程语言。要组装硬件,请改用[计算机制造]。

5
如何在Linux上检查二进制文件是否需要SSE4或AVX
在Linux上,/proc/cpuinfo允许以一种简单的方式检查计算机具有的所有CPU标志。 通常,如果程序需要机器指令集的超集,那么确定该指令集的最简单方法就是运行它,然后查看它是否发出SIGILL信号。 但就我而言,我所有的处理器都至少支持SSE4.1和AVX。 因此,有没有一种简单的方法可以检查二进制文件内部是否具有特殊指令?
20 linux  x86  assembly 

1
当我运行“cli时,实际发生了什么; hlt“在我的Linux系统上?
所以我最近发现有一个 HLT 用于暂停CPU的操作码。很酷,让我们看看会发生什么! user@box:~$ cat > test.c int main(void) { __asm__("HLT"); return 0; } user@box:~$ gcc -o test test.c user@box:~$ ./test Segmentation fault (core dumped) user@box:~$ 咄!多么无聊。 结果 HLT 是一个特权指令,所以让我们尝试其他的东西。 user@box:~$ mkdir test; cd test user@box:~/test$ cat > test.c #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> int init_module(void) { __asm__("hlt"); return …
16 linux  assembly 

3
x86和x64处理器上的CPU指令延迟
我正在寻找一些表或类似的东西来帮助我计算汇编代码的效率。 据我所知,移位需要1个CPU时钟,但是我真的在看加法(减法也应该是相同的),乘法以及如果我知道要除法的值如何计算除法时间需要多少。 我确实需要有关整数值的信息,但是也欢迎使用浮点执行时间。
14 64-bit  cpu  latency  x86  assembly 

3
为什么编译后我们不能理解二进制文件的内容?
据我所知,每个程序都由处理器指令包和一些特定的数据变量(float,int,char ...)组成,以在处理器寄存器上工作。 所以,我想到的第一件事(很久以前)是,如果您知道ASCII值%¨#$¨#(只是一个随机示例)可以解释为x86 的堆栈指针寄存器的地址(仅作为示例)处理器。如果是这样,那么每次在读取二进制文件的内容时发现此“不可读”值时,都可以解释为堆栈指针寄存器正在用于管理某些数据变量。 不幸的是,这不会发生。下面是ping.exe打开Windows 的程序内容的示例notepad.exe: 它是一个二进制文件,它的数据对于我们人类来说是无法理解的(对于机器而言,是难以理解的。)即使对于任何人,即使他们知道汇编代码(最低级别的机器语言),也没有任何意义。 因此,如果我正确理解了所有内容,那么有人可以解释一下吗 为什么二进制代码不能返回到汇编代码的最深处呢? 如果可以理解汇编代码,为什么从此代码生成的编译二进制文件不再“可读”?


2
如何查看文件的所有位?
我正在寻找一种查看文件所有位的方法。我想查看文件的所有01,因为我想知道使用封闭源应用程序编辑文件时到底发生了什么变化。 抱歉,这个问题听起来很愚蠢,如果这样,请告诉我该怎么办。 感谢所有冒险的家伙。

1
“NOP; jmp short“vs.”jmp short; NOP”
好的,首先让我直截了当:这不是微优化。 但是,我知道在分区上的引导程序中,很多都使用了 jmp short; nop 编码。但据我所知,jmp“跳”的数量越少,处理器完成所需的周期就越少,而且有些处理器看到了 0x90 并且在没有评估的情况下跳过它。

0
使用微控制器或基于DOS的操作系统直接访问视频卡[关闭]
我正在尝试构建一个手持式3D定位系统,该系统可以实时(1000 Hz)跟踪虚拟3D物体的手持3D位置。 更具体一点:我有一个带有传感器的机械臂,它使用反向运动学来计算我的手持设备的位置,而且我还有一个3D虚拟模型(如球体)。我想要做的是在6个轴(3个旋转和3个平移)上移动/旋转手持设备,并实时计算其参考3D虚拟球体的坐标。 我需要计算1000次/秒。我的第一选择是使用微控制器,但更好的方法是使用专用显卡。有没有办法以1000赫兹的频率访问视频卡并从中读取输出...不依赖于Windows驱动程序和视频输出的60 / 100Hz限制?我更喜欢使用微控制器或基于MS-DOS的操作系统。 感谢您抽出宝贵时间阅读此非编码问题。

1
装配中“?”(问号)的含义
对于某些项目,我需要绘制汇编代码的内存图。我知道汇编语言“?” 意味着,值未被初始化。但是当我把“?”放在记忆中时会发生什么? 让我们采取以下代码 .data ABC byte 8 ABC byte ? ABC byte 7 在我的记忆图中,我应该把零写成“?” 值或是否保留这些块中的先前值?
1 assembly 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.