x86是一个源自Intel 8086 CPU的架构。 x86系列包括32位IA-32和64位x86-64架构,以及传统的16位架构。关于后者的问题应该标记为[x86-16]和/或[emu8086]。如果您的问题特定于64位x86-64,请使用[x86-64]标记。对于x86 FPU,请使用标记[x87]。对于SSE1 / 2/3/4 / AVX *,也可以使用[sse]和[avx] / [avx2] / [avx512]中的任何一个
cmp %al, %cl jsx 我对 js (跳转标志)正在做什么感到困惑。是不是说如果al为正,cl为负,反之则跳转? 另外,如果 %cl 为 0 会发生什么?
我想更新系统调用表以使用我的自定义打开函数。我写了以下代码: #包括 #包括 MODULE_LICENSE(“GPL”); 字符*
Intel PMU:在 IA32_PERF_GLOBAL_STATUS 寄存器中设置溢出标志
我需要在 IA32_PERF_GLOBAL_STATUS MSR 中设置一个溢出标志(例如位#33),该标志是只读的。 在 Skylake(支持架构性能监控版本 4)上这很容易,因为……
我已经花了好几个小时让这个汇编代码工作了。我搜索了我能找到的所有可能的文章。 .节.文本 .global_start _开始: 推送 $0x66 ...
如果我在 Linux 上的 perf 下运行我的程序,它会很容易地给出执行的指令总数。是否有可能以某种方式(也许也可以使用 perf,但这不是必需的)获得
以下说明: 0xffffd096推入eax 0xffffd097推送0x41414141 oxffffd09c推送0x42424242 对堆栈的影响如下: 0xffffd024|+0x0000“BBBBAAAA”<- esp
如何在 x86 程序集中绘制到屏幕? [非 DOS] [重复]
我正在尝试用 x86 Assembly 编写游戏。我不知道如何使用 x86 程序集绘制到屏幕。 根据我以前的汇编经验,我假设我必须编写一个跳转到
我收到错误: 标签或说明应出现在行首 在定义由字节组成的字符串时,在 .data 部分中: st2 数据库“num3>num1,2”,0xA,0xD 我看了一眼...
对于学习 C 的项目,我决定将代码放入编译器资源管理器中,并将汇编输出与 C 代码进行比较。这是一些代码的最小示例 无符号字符计数[256][256]...
当发生内存访问并且 PT 中的访问位为 0 时,它会触发微码辅助,该微码辅助会遍历 PT 并设置每个级别中的访问位。 在 oredr 中为辅助代码编写
当您开始处理 SIMD 指令时,您会注意到内在函数的名称如下 _mm_dp_pd _mm_mul_pd 在仔细查看文档一段时间(或几年)后,您开始注意到一些
我有一个代码,其中有: EAX=00002c36 之后: SBB eax, 0 eax 变为: EAX=00002c35 那可能吗? eax 不应该是相同的值吗? 如果这是正确的,那我好像真的不知道
从 Irvine 调用时不会显示控制台输出,但它会向 'c' 返回一个值,然后可以在控制台上打印该值
main.c #包括 #ifdef __cplusplus 外部“C”{ #万一 // 声明汇编函数 extern int add_func(int a, int b); #ifdef __cplusplus } #万一 国际麦...
我正在使用 VirtualBox 来模拟 x86 电脑。我编写了一个进入保护模式的引导加载程序。但我总是遇到古鲁冥想错误。这是我的代码: ;清除中断 命令行 ;设置gdt 异或 e...
为什么 bootsect 在 linux(x86) 中将自身移至 0x90000?
我正在研究x86系统启动的过程 这是启动流程: BIOS 将 bootsect 从磁盘 MBR 加载到 0x7c00 内存地址 booect 将自身复制到 0x90000 内存地址并跳转到
java.lang.RuntimeException:无法实例化应用程序:ClassNotFoundException(仅在 X86 架构设备上)
这似乎是 Stack Overflow 上问得最多的问题之一,但即使在尝试了 10 多个问题中的 20 多个解决方案并参考了 Android 文档后,我的问题仍然没有解决。 ...
需要明确的是,我确信下面的推导是不正确的,但我希望有人能指出我的“证明”中哪里错了。 我试图证明 x86 指令集...
需要明确的是,我确信下面的推导是不正确的,但我希望有人能指出我的“证明”中哪里错了。 我试图证明 x86 指令集...
为什么 Visual Studio 调试器有时会在 REX 指令前缀后停止一个字节?
有时,当在Visual Studio调试器中闯入程序时,我会看到以下奇怪的现象: 调试器似乎将下一个指令字节显示为在指令之后开始...
使用 _mm_pause() 或 _tpause() 进行忙自旋循环?
我的自旋锁显然有一个繁忙的自旋循环,而无法获取锁: while(try_lock() == false) { // 这里使用_mm_pause()还是_tpause()? } 我注意到我里面没有 _mm_pause() ...