Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么使用 mov/cmp 而不是带有两个内存操作数的 cmp? [复制]
这个问题在这里已经有答案了 我在执行二分搜索程序代码时发现了以下语句 l1 mov si low cmp si high 为什么我们需要将 low 存储在 si 中然后与 high 进行比较 不可以直接写cmp low high 你不能写c
Assembly
x8616
instructions
MOV
ARM 汇编不能同时使用立即值和 ADDS/ADCS
我目前正在尝试使用汇编来加速 Cortex M0 Freescale KL25Z 上的一些 C 函数 我遇到这个最小测试程序的问题 syntax unified cpu cortex m0 text global test code 16
Assembly
gcc
arm
instructions
thumb
cmpl 和 cmp 之间的区别
我试图理解汇编以便能够解决难题 但是我遇到了以下说明 0x0000000000401136 lt 44 gt cmpl 0x7 0x14 rsp 0x000000000040113b lt 49 gt ja 0x401230
Assembly
x86
x8664
att
instructions
为什么“a”是对象引用的 Java 字节码前缀? [关闭]
Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 特定于类型的 Java 字节码指令具有单字符前缀来指定该指令相关的类型 Taken from Wikipedia s entry on J
Java
bytecode
instructions
是否有任何此类处理器具有绕过缓存的指令?
是否有任何这样的处理器具有绕过特定数据的缓存的指令 这个问题 https stackoverflow com questions 9544094 c working with the cpu cache还有一个答案表明 SSE4 2 指令确
Assembly
x86
processor
cpucache
instructions
x86-64 中 movq 和 movabsq 的区别
我说的是 x86 64 Intel 架构中的数据移动指令 我读过 常规的movq指令只能具有可表示为 32 位二进制补码数的立即源操作数 而movabsq指令可以将任意 64 位立即数作为其源操作数 并且只能将寄存器作为目标 您能详细说明一
Assembly
x8664
att
instructions
immediateoperand
MIPS 左加载字 (LWL) 和右加载字 (LWR) 指令的作用是什么?
最近我一直在研究 MIPS 指令集 当时我遇到了两个在其他指令集中没有见过的不寻常指令 我环顾四周 想找到一个关于指令到底做什么的合理解释 但我所能弄清楚的是 它们在某种程度上与未对齐的内存访问有关 例如 维基百科说 https en wi
Assembly
MIPS
memoryalignment
instructions
instructionset
ARM 汇编中 ADRP 和 ADRL 指令的语义是什么?
ADRP http infocenter arm com help index jsp topic com arm doc dui0802a ADRP html 4KB 页的地址 位于 PC 相对偏移处 ADRL http infocent
Assembly
arm
ARM64
instructions
positionindependentcode
模拟jg指令(datalab的isGreater)
我正在做CSAPP的datalab isGreater函数 这是描述 isGreater if x gt y then return 1 else return 0 Example isGreater 4 5 0 isGreater 5 4
c
Assembly
instructions
eflags
为什么负载不能绕过同一核心上的另一个线程从写入缓冲区写入的值?
如果CPU核心使用写缓冲区 则负载可以从写缓冲区绕过最近的存储到引用的位置 而无需等到它出现在缓存中 但是 正如它所写的记忆一致性和连贯性入门 https lagunita stanford edu c4x Engineering CS31
memory
CPU
cpuarchitecture
instructions
memorymodel
ARM 的加载和存储字节和半字指令如何工作?签名与未签名有何作用?
我刚刚开始学习 ARM 但无法理解加载和存储指令的确切作用 加载说明 ldrsb ldrb ldrsh ldrh ldr 店铺说明 strb strh str 有符号或无符号 加载半字 是什么意思 或者 加载字节 有符号或无符号 有符号和无
Assembly
arm
instructions
指令 FYL2XP1
I m wondering why the instruction FYL2XP1 on x86 architecture computes exactly the mathematical formula y log2 x 1 这个公式有
Assembly
x86
floatingpoint
instructions
x87
流水线会影响时钟时间或每指令周期 (CPI)?
我的书中提到 根据您所考虑的基线 减少可以被视为减少每条指令的时钟周期数 CPI 减少时钟周期时间 或作为组合 如果起点是处理器每条指令需要多个时钟周期 那么流水线通常被视为降低 CPI 我无法理解的是 流水线会影响 CPI 或时钟周期 因
pipeline
cpuarchitecture
instructions
NASM 生成的列表文件中操作码中的括号有何含义?
当查看 NASM 生成的列表文件时 我发现存在三种操作码 不带括号 带圆括号 带方括号 他们的意思是什么 它们分别在什么时候被使用 这是一个列表文件的示例 演示了上述所有内容 1 section text 2 extern printf 3
Assembly
nasm
opcode
instructions
试图理解这个简短的汇编指令,但我不明白
我们有一个任务 给定的是 2 寻址的汇编指令 机器 mov 202 100 r1 记下替代此的最小汇编指令序列 说明 见上文 where n rx 按后增量索引的寄存器 n 是索引值 rx 是寄存器 x 单个数值 直接寻址 存储 我们应该使
Assembly
instructions
addressingmode
如何使用SSE2/SSE3/SSE4处理24位3通道彩色图像?
我刚开始使用SS2优化图像处理 但对于3通道24位彩色图像没有任何想法 我的pix数据是按BGR BGR BGR unsigned char 8 bi排列的 所以如果我想用SSE2 SSE3 SSE4的指令C C fun来实现Color2G
Optimization
opencv
imageprocessing
instructions
sse2
X64 指令在不同 CPU 上表现不同
在一次采访中 我被问到是否知道 x64 指令的行为取决于所使用的 CPU 我在任何地方都找不到任何相关文档 有谁知道这些指令是什么以及为什么会出现这种情况 有一些留下一个寄存器或一些带有未定义值的标志 英特尔和AMD 在这方面可能有所不同
Assembly
x86
x8664
instructions
CPU 如何从 RAM 访问应用程序和数据
在应用程序加载到 RAM 并打开文件后 因此文件的数据也存储在 RAM 中 我在理解 CPU 如何从 RAM 访问应用程序和数据时遇到了一些困难 根据我的理解 CPU 只是在程序计数器滴答时从 RAM 获取指令或在中断后执行任务 那么它如何
operatingsystem
CPU
interrupt
RAM
instructions
为什么push DWORD 指令等于8 个字节? [复制]
这个问题在这里已经有答案了 编写shellcode BITS 64 xor rax rax push rax push dword n sh push dword bi mov rdi rsp push rax mov rdx rsp pu
Assembly
x8664
Shellcode
instructions
测量执行单个指令的时间
有没有办法使用 C 或汇编程序甚至 C 来准确测量执行 ADD 指令所需的时间 是的 有点 但它并不平凡 并且产生的结果是almost毫无意义 至少在最现代的处理器上是这样 在相对较慢的处理器上 例如 从英特尔系列中的原始奔腾处理器开始 在
c
Assembly
time
instructions
1
2
»