x86 相关问题

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]中的任何一个

在 IRQ 上添加或删除代码中的数据时发生崩溃

我正在开发一个操作系统作为一种爱好,并且在处理键盘IRQ时遇到了一个奇怪的问题,我不知道为什么,但是当出现的字符串太少时,我收到了无效的操作码ISR。 ..

回答 2 投票 0

(x86) ESP 的值是否相对于 EBP?

我一直认为 SP 是相对于 BP 而言的,这意味着在堆栈上压入和弹出内容将使用地址 BP - SP,其中 BP 是堆栈的开始,SP 是当前...

回答 2 投票 0

x86 汇编中的“lock”指令是什么意思?

我在Qt的源代码中看到了一些x86汇编: q_atomic_increment: movl 4(%esp), %ecx 锁 包括 (%ecx) 移动 $0,%eax 塞内%al 雷特 .对齐4,0x90 .type q_atomic_increment,@

回答 4 投票 0

为什么计算排序数组的直方图较慢?

考虑这段代码:https://godbolt.org/z/1331dbz8q 目标是对一个简单的直方图函数进行基准测试: [[gnu::noinline]] static void histogram(int const *a, int n, int *h) { 对于 (int i = 0; i ...

回答 1 投票 0

CPU进入保护模式后如何立即寻址下一条指令?

我一直在研究MIT6.828的Lab1。我对用于切换到保护模式的代码有疑问。 这是汇编代码 # 使用 bootst 从实模式切换到保护模式...

回答 1 投票 0

这个不包含任何循环的简单代码是否会在汇编中生成循环?

我正在使用这段代码来检查一个整数是否是 4 的幂: // C++版本 布尔 is_pow_4(无符号 a) { return (std::popcount(a) == 1) && (std::countr_zero(a) % 2 == 0); } // C

回答 1 投票 0

在缓冲区溢出中运行 shell 代码时未获得预期输出

找到 eip 偏移量后,我尝试向我的程序输入一些 shell 代码。使用以下命令运行 $(python -c 'print("A"*108 + "BBBB")') 我得到以下输出

回答 1 投票 0

页表条目中的 x86 脏位

Intel架构手册说,当第一次对内存页面进行写访问时,CPU会设置页表条目的脏位。我对这个问题有疑问。 '肮脏的一点......

回答 1 投票 0

如何在 C++ 中使用内联汇编将两个大小矩阵相乘

我用 C++ 编写了这段代码,并使用内联汇编 _asm 进行方阵乘法。 #包括 使用命名空间 std; int main() { 整数 n = 2; int A[2][2] = { {1, 2}, {3, 4} }...

回答 1 投票 0

基于 UMONITOR/UMWAIT 的汇编 (asm) 自旋等待循环的工作示例,作为基于 PAUSE 的测试测试和设置循环的替代品

在Intel 64和IA-32架构优化参考手册中,Intel给出了一个基于PAUSE的自旋等待循环的示例(“示例11-4.自旋等待循环和PAUSE指令”)。 然而...

回答 1 投票 0

x86 中 Linux 内核的lookup_address函数在调试页面错误的特定情况时返回NULL

我使用内核(通用)v6.1 在 arch/x86/mm/fault.c 中实现了一个简单的钩子函数。 这个函数是这样的: void is_read_only(无符号长地址) { 无符号整数...

回答 1 投票 0

使用AVX2是否可以实现对字数组上LZCNT的更快处理?

我需要使用 LZCNT 进行反向位扫描,字数组:16 位。 在 Intel 最新一代处理器上,LZCNT 的吞吐量为每个时钟执行 1 次。 AMD Ryzen 的吞吐量似乎...

回答 2 投票 0

硬件事务内存:_xbegin() 返回 0

通过 gcc 文档:x86-transactional-memory-intrinsics.html,当事务失败/中止时, _xbegin() 应返回 abort status 。但是,我发现它有时返回 0。而且出现的频率非常高......

回答 2 投票 0

Turbo 汇编器 (TASM) extrn 过程的未定义符号错误

我正在研究一些涡轮组装机,这是我在建筑课上学到的。我正在解决的问题是使用 extern 和 include 关键字来访问函数/过程......

回答 1 投票 0

用SSE指令打点产品性能:DPPS值得使用吗?

通过 SSE4.1 dpps 或使用一系列乘法来计算两个短(4 元素)向量的点积是否更快 /shufps/addps 来自 SSE 1 的指令? (对于大向量,c...

回答 1 投票 0

汇编中的“ptr”是什么意思?

因为括号中的[si]就像地址si处的值,就像C中的*si一样 因为偏移量 si 就像 &si ptr 怎么样 mov 双字 ptr [si], ax ?

回答 1 投票 0

引导加载程序汇编代码中的错误:'解析器:预期指令

我目前正在使用 NASM 以汇编语言开发引导加载程序项目,并且遇到了一个似乎无法解决的错误。每当我尝试组装引导加载程序代码时,我都会收到

回答 1 投票 0

x86 汇编 GAS 中的划分

我还不太确定除法在 x86 汇编中是如何工作的(GAS AT&T 语法)。我想做的是将两个长整型相除,然后将商与除数相乘,看看新的数字是否...

回答 1 投票 0

IA-32 多进程(又名多核)环境中内核线程调度在什么核心上处理?

我正在阅读《英特尔® 64 和 IA-32 架构软件开发人员手册:系统编程指南》以了解有关操作系统如何工作的更多信息,但有一些事情我不明白。 所以我明白了

回答 1 投票 0

如何取消一点设置,从而关闭A20线

我读了这个教程。在教程中,作者介绍了 A20 以及启用它的不同方法。当他写到“快速 A20 方法”时,他说这是通过 s...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.