Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
x86 标志寄存器中的辅助进位和普通进位有什么区别?
我想知道这个x86寄存器标志在DOS Windows程序Debug中意味着什么 辅助进位 AC 1 or NA 0 和普通carry的意思一样吗 CY 1 or NC 0 当指令导致位 3 进位或借位时 辅助进位标志被设置 与 CY 的想法
x86
cpuarchitecture
flags
cpuregisters
cpuid命令显示信息的问题
的信息llc缓存显示使用cpuid command在Linux上是 cache 3 cache type unified cache 3 cache level 0x3 3 self initializing cache level tru
caching
x86
cpuarchitecture
cpucache
cpuid
使用索引寻址模式时的瓶颈
我在 Haswell 和 Coffee Lake 机器上进行了以下实验 指令 cmp rbx qword ptr r14 rax 吞吐量为 0 5 即每个周期 2 条指令 这正如预期的那样 该指令被解码为随后未层压的一个微指令 参见http
x8664
intel
cpuarchitecture
microoptimization
addressingmode
为什么MIPS不能在寻址模式下使用两个寄存器?
我很好奇为什么我们不允许在 MIPS 中使用寄存器作为偏移量 我知道你can t使用寄存器作为偏移量 如下所示 lw t3 t1 t4 我只是好奇why情况就是如此 是硬件限制吗 或者只是 ISA 的一部分 PS 如果您正在寻找替代方法 请
Assembly
MIPS
cpuarchitecture
addressingmode
Intel 和 AMD 如何不同但仍然兼容?
正如我一直以来的理解 AMD 通过逆向工程英特尔的指令集来构建他们的 CPU 现在向英特尔付费以使用他们的指令集 而英特尔对 AMD 的 64 位指令也做了同样的事情 这就是 Windows 可以在两种类型的 CPU 上安装而无需购买特定版
Optimization
x86
intel
cpuarchitecture
amdprocessor
是否应该将内存栅栏与互斥获取交换循环(或队列获取加载循环)结合起来,还是应该避免?
假设重复获取操作 尝试加载或交换值 直到观察到的值是所需值 让我们来cppreference 原子标志示例作为起点 void f int n for int cnt 0 cnt lt 100 cnt while lock test and
arm
cpuarchitecture
microoptimization
memorybarriers
当您使用内存覆盖前缀但所有操作数都是寄存器时会发生什么?
当您使用内存覆盖前缀但所有操作数都是寄存器时会发生什么 那么 假设您编写了代码mov eax ebx or add eax ebx默认值为 32 位 但您使用 67h 覆盖 处理器如何处理这种情况 英特尔软件开发人员手册 第 2 卷 第 2
Assembly
memory
x86
cpuarchitecture
overriding
x86 上存储到加载转发失败的成本是多少?
在最新的 x86 架构上 存储到加载转发失败的成本是多少 特别是 存储到加载转发会失败 因为加载部分与较早的存储重叠 或者因为较早的加载或存储跨越某些导致转发失败的对齐边界 当然存在延迟成本 它有多大 是否还存在吞吐量成本 例如 失败的存储
x86
intel
cpuarchitecture
microoptimization
amdprocessor
非临时指令如何工作?
我正在阅读每个程序员都应该了解的内存知识乌尔里希 德雷珀 Ulrich Drepper pdf在第 6 部分的开头有一个代码片段 include
memory
x86
cpuarchitecture
intrinsics
cpucache
为什么 x86_64 CPU 上没有通用寄存器的乘加融合?
在 Intel 和 AMD x86 64 处理器上 SIMD 矢量化寄存器具有特定的融合乘加功能 但通用 标量 整数 寄存器don t 你基本上需要先乘法 然后加法 除非你可以将东西放入一个lea 这是为什么 我的意思是 它是否毫无用处以至
x8664
intel
cpuarchitecture
instructionset
amdprocessor
在编译时从 MASM/MASM64 检测架构
如何在编译时从 ASM 源文件检测目标架构是 I386 还是 AMD64 我正在使用 masm ml exe masm64 ml64 exe 来汇编 file32 asm 和 file64 asm 最好创建一个文件 file asm 其中应
Assembly
x8664
cpuarchitecture
MASM
masm32
LSD 能否从检测到的循环的下一次迭代中发出 uOP?
我正在研究 Haswell 端口 0 上的分支单元的功能 从一个非常简单的循环开始 BITS 64 GLOBAL start SECTION text start mov ecx 10000000 loop dec ecx jz end 1
Assembly
x86
cpuarchitecture
intelpmu
即使指针从未被取消引用,过数三指针中的硬件陷阱是如何发生的?
In his 2005 年 11 月 1 日 C 专栏 赫伯 萨特写道 int A 17 int endA A 17 for int ptr A ptr lt endA ptr 5 O 在某些 CPU 架构中 包括 当前的 上述代码 可能会
c
cpuarchitecture
pointerarithmetic
hardwaretraps
内存目标 BTS 为何会比 load / BTS reg,reg / store 慢得多?
在一般情况下 可以使用内存或寄存器操作数的指令如何会比内存操作数慢 mov mov gt 指令 gt mov mov 基于发现的吞吐量和延迟Agner Fog 的说明书 以我为例 查看 Skylake p238 我看到以下数字btr bts
performance
Assembly
x8664
cpuarchitecture
microcoding
我需要服务哪些 Android ABI(CPU 架构)?
我决定为不同的 ABI 上传多个 APK 以缩小我的 apk 文件大小大规模地 因此我用android gt splits gt abi gt enable true 应用程序级别build gradle 我遇到过这些不同的 APK 风格
Android
Gradle
GooglePlay
cpuarchitecture
在 x86-64 上,系统崩溃时“movnti”或“movntdq”指令是原子的吗?
当使用像Intel optane DCPMM这样的持久内存时 如果系统在执行movnt指令时崩溃 断电 重新启动后是否可以看到部分结果 For 4 或 8 字节movnti哪个 x86 保证原子用于其他目的 16字节SSEmovntdq m
x8664
atomic
cpuarchitecture
SSE
persistentmemory
如果我不使用栅栏,一个核心需要多长时间才能看到另一个核心的写入?
我一直在尝试用谷歌搜索我的问题 但老实说我不知道 如何简洁地陈述这个问题 假设我在多核英特尔系统中有两个线程 这些线程在同一个 NUMA 节点上运行 假设线程 1 向 X 写入一次 然后偶尔向前读取它 进一步假设线程 2 连续读取 X 如果
x86
intel
cpuarchitecture
memorybarriers
lockless
CPU的速度是否受到从内存中获取指令的速度的限制?
在学习汇编时 我意识到我应该将经常访问的数据放入寄存器而不是内存中 因为内存要慢得多 问题是 既然指令首先是从内存中获取的 那么CPU如何能够比内存运行得更快呢 CPU通常会花费大量时间等待内存中的指令吗 EDIT 要运行程序 我们需要将其
performance
memory
CPU
cpuarchitecture
对于 Intel Core i3/i7,数据从缓存集中逐出后的去向
Intel 中包含 L1 L2 缓存 并且 L1 L2 缓存是 8 路关联性 意味着一组中存在 8 个不同的缓存线 缓存行作为一个整体进行操作 这意味着如果我想从缓存行中删除几个字节 则整个缓存行将被删除 而不仅仅是我要删除的那些字节 我对
x86
intel
cpuarchitecture
processor
cpucache
是否有编译器标志表明缺少armv7s架构
随着iPhone 5和其他armv7s设备的出现 现有的 闭源 第3方框架 例如Flurry 存在兼容性问题 这些框架是在没有这种新架构的情况下构建的 一种选择是等到他们发布新版本 但我希望可能有一个编译器标志或我可以在我的 Xcode 项
ios
xcode
compilerconstruction
Linker
cpuarchitecture
«
1 ...
7
8
9
10
11
12
13
»