Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
在 x86 32 位中禁用分页
我试图直接写入物理内存位置 因此我使用汇编函数首先禁用分页 写入值 然后重新启用分页 但由于某种原因 在尝试写入时仍然会触发页面错误价值 据我了解 在x86 32位中 通过翻转cr0中的第32位来打开和关闭分页 所以这是我的汇编函数 mov
Assembly
x86
Paging
virtualmemory
pagefault
使用BIOS int 13h访问不同磁头的扇区
我的磁盘每磁道有 63 个扇区 根据我的观察 我假设 我想使用 int 13h 读取 16 位引导加载程序上的扇区 例如 如果我想读取扇区号 63 我将执行以下操作 mov dl 0x80 Drive number mov dh 0 Thi
Assembly
x86
x8616
BootLoader
osdev
无法调整尺寸指令
我想知道为什么有些汇编指令可以推断 但其他的则不能 例如 在以下程序中我有 globl main main push rbp mov rsp rbp mov 8 8 rbp mov 8 rbp rax pop rbp ret 我收到以下错误
Assembly
x86
gnuassembler
att
为什么每个逻辑 CPU 在多线程情况下都有自己的 CR3 寄存器?
当我们有一个支持某种形式的多线程的 CPU 时 每个逻辑 CPU 都有它自己的一组寄存器 至少 包括 CR3 寄存器 由于我们在执行不同线程时正在处理同一进程的虚拟地址空间 并且永远不会发生上下文切换 切换同一进程的线程时TLB缓存也不会失
Multithreading
x86
CPU
装配冒泡排序交换
我正在尝试在 x86 程序集中进行冒泡排序 是的 它必须是冒泡排序 因为我不关心不同类型排序的速度优化 并且出于某种原因 我的代码不会交换必要的值 这是我的代码 mov eax list store list in eax mov edx
Assembly
x86
bubblesort
如何写入LLDB中的XMM寄存器
我正在尝试使用 LLDB API 从 python 中的寄存器读取和写入值 对于通用寄存器 我一直在使用frame register register name value读取和写入寄存器值 这对我来说很成功 然而 当我接近浮点寄存器时 我
python
x86
x8664
SSE
LLDB
C 编程语言中的结构实际上是如何实现的? [复制]
这个问题在这里已经有答案了 结构体是C编程语言中的复合数据结构 它们由诸如整数和指针之类的基元组成 所有这些基元都以相邻的方式 例如数组 放置在内存中 我的问题是 结构本身是由什么制成的 它们是一种数组吗 例如 哈希表可以实现为链表数组 以
c
Assembly
struct
x86
.Net4 应用程序中托管的 .Net2 程序集在 x86 中比在 AnyCpu 模式中表现更好?
我有一个引用第 3 方 Net2 程序集的 Net4 WinForms 应用程序 其中包含图形密集型视觉控件 我注意到一个huge当我不小心将应用程序从 AnyCpu 切换到 x86 编译模式时 应用程序的视觉性能得到了改善 我的开发设备是
NET
WinForms
performance
x86
anycpu
将程序集编译为 x64 有什么优点吗?
假设我有一个 Net Framework 3 5 SP1 CLR 2 0 应用程序 需要在 x86 和 x64 平台上运行 还假设出于某种原因 我需要创建单独的 x86 和 x64 安装程序 由于我无论如何都有一个特定于 x64 的安装程序
NET
x86
64bit
Compilation
如何获取变量的地址并在 nasm x86 程序集中取消引用它?
在c语言中我们使用 获取变量的地址并 取消引用该变量 int variable 10 int pointer pointer variable 汇编中没有变量 variable db A 做几件事 它定义了汇编时间符号variable 就像
pointers
Assembly
x86
nasm
无效异常展开导致崩溃?
我正在调试我们的一项测试中发生的崩溃 我们有一个用 C 编写的 ODBC 驱动程序 so 正在使用我们的测试工具 称为 Touchstone 通过 iODBC 对其进行测试 该工具也是用 C 编写的 我已使用 Oracle Solaris
c
x86
valgrind
Solaris
MOVDQA 和 MOVAPS x86 指令之间的区别?
我正在查找英特尔数据表 英特尔 64 和 IA 32 架构 软件开发人员手册我找不到两者之间的区别 MOVDQA 移动对齐的双四字 MOVAPS 移动对齐压缩单精度 在英特尔数据表中我可以找到这两条指令 该指令可用于从 128 位加载 XM
Assembly
x86
SSE
SIMD
MOV
如何获取 RAM 大小、引导加载程序
我想问如何在引导加载程序中获取总 RAM 大小和可用 RAM 大小 截至目前 我知道如何获得较低的内存 但由于某种原因我无法将其打印到屏幕上 因为它保存在斧头寄存器中 这是我到目前为止所拥有的 BITS 16 BootLoader alwa
Assembly
x86
RAM
BootLoader
osdev
GCC -msse2 不生成SIMD代码
我试图找出为什么 g 不生成 SIMD 代码 信息 GCC 操作系统 CPU gcc v gcc version 4 8 2 Ubuntu 4 8 2 19ubuntu1 cat proc cpuinfo model name Intel
c
gcc
x86
SSE
SIMD
使用MOV指令时赋的值是多少?
你能解释一下MOV指令的两种用法有什么区别吗 mov eax namedDataItem mov eax namedDataItem 这里的namedDataItem是在 data节中定义的命名数据项 取自NASM手册 http www n
Assembly
x86
nasm
字节码指令和处理器操作之间的关系
Java 规范保证原始变量赋值始终是原子的 除了long和双types 相反 获取并添加 http en wikipedia org wiki Fetch and add对应著名的操作i 增量操作将是非原子的 因为会导致读取 修改 写入操作
Java
x86
bytecode
processor
atomic
有没有办法让 gcc 输出原始二进制文件?
是否有一组命令行选项可以说服 gcc 从独立的源文件生成平面二进制文件 例如 假设 foo c 的内容是 static int f int x int y x x return y 2 没有外部引用 没有任何内容可以导出到链接器 我想要一个
Linux
gcc
commandline
Linker
x86
将 scanf 与 x86-64 GAS 组件结合使用
我在尝试调用系统函数 scanf 以在我的 x86 汇编程序中工作时遇到了很多问题 目前我已经让它从标准中读取 但是它只会读取没有段错误的字符 我不知道为什么 指定字符串是 d 我在网上看到的 x86 中的 scanf 示例使用 quark
Assembly
x86
scanf
x8664
gnuassembler
SSE 和 AVX MoveMask 的用途是什么
问题 MoveMask 的目的或意图是什么 学习如何使用 x86 x86 64 汇编 SSE AVX 的最佳地点是哪里 我可以更有效地编写代码吗 提问原因 我有一个用 F for NET 编写的使用 SSE2 的函数 我使用 AVX2 写了
NetCore
F
x86
SSE
avx
映射 MMIO 区域写回不起作用
我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的
Linux
caching
x86
FPGA
PCIe
«
1 ...
4
5
6
7
8
9
10
...51
»