Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
当前的 C++ 编译器是否曾发出“rep movsb/w/d”?
This question让我想知道 当前的现代编译器是否曾经发出过REP MOVSB W D操作说明 基于此讨论 似乎使用REP MOVSB W D对当前的 CPU 可能会有好处 但无论我如何尝试 我都无法使任何当前的编译器 GCC 8
c
Assembly
x86
compileroptimization
microoptimization
“DS:[40207A]”在汇编中是什么意思?
0040103A CALL DWORD PTR DS 40207A USER32 MessageBoxA 什么是DS mean 该指令正在从内存加载新的 EIP 值ds 40207A 即地址处有一个函数指针40207A 它推送一个返回地址
Assembly
x86
memoryaddress
disassembly
memorysegmentation
rdtscp 的“半栅栏”行为是怎么回事?
多年来 x86 CPU 支持rdtsc指令 读取当前CPU的 时间戳计数器 该计数器的确切定义随着时间的推移而发生变化 但在最近的 CPU 上 它是一个相对于挂钟时间以固定频率递增的计数器 因此它作为快速 准确的时钟的构建块或测量时间非常有
performance
Assembly
x86
microbenchmark
RDTSC
汇编语言有多不可移植,/真的/?
我知道用汇编语言编写任何内容或将汇编语言添加到任何程序都会损害其可移植性 但是 有多糟糕呢 我的意思是 现在基本上所有 PC 都是 x86 或 x64 对吧 那么 如果我将汇编嵌入到 C 程序中 为什么无论它去了哪里它仍然无法编译 这种不可
Assembly
x86
64bit
portability
使用汇编语言进行 128 位移位?
在现代 Intel CPU 酷睿 i7 sandybridge 上进行 128 位移位的最有效方法是什么 类似的代码在我最内层的循环中 u128 a N void xor for int i 0 i lt N i a i a i a i g
performance
Assembly
x86
128bit
在 x86 汇编中的过程中调用 ret 指令是否重要
我目前正在学习 x86 汇编 然而 当使用堆栈进行函数调用时 我仍然不清楚一些事情 据我所知 调用指令将涉及将返回地址压入堆栈 然后将要调用的函数的地址加载到程序计数器 ret 指令会将这个地址加载回程序计数器 我的困惑是 在过程 函数中调
Assembly
x86
stackmemory
stackframe
stackpointer
使用 DOS 或 BIOS 显示字符
翻翻拉尔夫 布朗的中断列表 我发现有很多不同的方法可以将文本字符输出到屏幕上 ROM BIOS API 提供以下功能 AH 09h 在光标位置写入字符和属性 AH 0Ah 仅在光标位置写入字符 AH 0Eh 电传打字机输出 AH 13h 写
Assembly
x86
DOS
x8616
BIOS
预取是由精确地址流还是由缓存行流触发?
在现代 x86 CPU 上 硬件预取是一项重要技术 可在用户代码显式请求缓存行之前将其引入缓存层次结构的各个级别 The basic idea is that when the processor detects a series of a
performance
x86
cpuarchitecture
计算两个缓冲区之间的差异似乎太慢
我的问题 我有2个adjacent相同大小的字节缓冲区 每个大约 20 MB 我只是想数一下它们之间的差异 我的问题 该循环在具有 3600MT RAM 的 4 8GHz Intel I7 9700K 上运行需要多长时间 我们如何计算最大理
performance
Assembly
Optimization
x86
Clang
使用 AVX512 生成掩模的 BMI
我受到这个链接的启发https www sigarch org simd instructions considered harmful 了解 AVX512 的性能 我的想法是可以使用 AVX512 掩码操作删除循环后的清理循环 这是我正在
x86
SIMD
avx512
BMI
为什么GCC编译的C程序需要.eh_frame部分?
测试在 32 位 x86 Linux 上进行gcc 4 6 3 使用时gcc编译一个C程序和使用readelf要检查部分信息 我可以看到 eh frame部分和 eh frame hdr里面的部分 例如 这是二进制程序的部分信息Perlbe
c
Assembly
Exception
x86
ELF
如何使用 SVML 指令 [重复]
这个问题在这里已经有答案了 我正在尝试计算exponential使用 SIMD 的函数 我发现了这个功能 我已经包含了 immintrin h 在我的代码中 我的CPU也有一个SSE旗帜 但gcc正在抱怨error mm exp pd wa
c
x86
SSE
SIMD
x86 汇编中的操作数大小冲突?
我是一名新手程序员 第一次尝试汇编 如果这是一个非常蹩脚的问题 请提前抱歉 我在 EAX 寄存器中存储了一个字符 但我需要将其移至 DL 寄存器 当我尝试 mov dl eax 时 出现错误 C2443 操作数大小冲突 我知道 eax 寄存
Assembly
x86
如何:x86 中的 pow(real, real)
我正在寻找实施pow real real 在 x86 程序集中 我也想了解该算法是如何工作的 只需将其计算为2 y log2 x 有一个 x86 指令 FYL2X 来计算 y log2 x 和一个 x86 指令 F2XM1 来进行求幂 F2
x86
Assembly
pow
机器代码如何存储在EXE文件中?
我的问题如下 一般而言 可移植可执行文件格式 在 Windows Unix 上 与 x86 x64 指令集有何关系 PE 格式是否存储处理器支持的确切操作码集 或者是操作系统转换以匹配 CPU 的更通用格式 EXE 文件如何指示所需的指令集
x86
portableexecutable
machinecode
instructionset
opcode
如何反汇编原始 16 位 x86 机器代码?
我想反汇编我拥有的可启动 x86 磁盘的 MBR 前 512 字节 我已使用以下命令将 MBR 复制到文件中 dd if dev my device of mbr bs 512 count 1 对可以反汇编该文件的 Linux 实用程序的任
Linux
Assembly
x86
x8616
MBR
8086乘法指令MUL,IMUL
对于加减指令来说CPU对有符号加减和无符号加减一视同仁 根据我们需要把它作为有符号的结果还是无符号的结果 但是乘除法指令区分有符号乘除和无符号乘除指令 无符号数乘法指令MUL MULtiply MUL OPRD OPRD可以用除立即数以外的
x86
汇编
Kmalloc
Kmalloc内存分配和malloc相似 除非被阻塞否则他执行的速度非常快 而且不对获得空间清零 Flags参数 include
linux驱动
平台
Linux
user
x86
little endian && big-endian
java 的ClassFile采用big endian存储数据 Intel x86 采用little endian Motorola采用big endian 0x1234 Intel 地址 0x4000 0000 0x34 0x4000 0
Java虚拟机
Motorola
Java
存储
x86
x86中内存管理寄存器
x86中内存管理寄存器 处理器提供了4个内存管理寄存器 GDTR LDTR IDTR和TR 用于指定内存分段管理所用系统表的基地址 如图4 2所示 处理器为这些寄存器的加载和保存提供了特定的指令 GDTR LDTR IDTR和TR都是段基址
linux内核与编程
x86
任务
«
1 ...
42
43
44
45
46
47
48
49
»