Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么 RISC-V S-B 和 U-J 指令类型以这种方式编码?
我正在读一本书 计算机组织与设计RISC V版 我遇到了 S B 和 U J 指令类型的编码 我上面提到的那些类型有奇怪的编码立即字段 S B 类型将直接字段分为两部分 这是有道理的 因为所有指令编码都必须相似 但我无法理解为什么立即字段以
Assembly
encoding
RISCV
machinecode
instructionset
orpd等SSE2指令有什么意义?
The orpd指令是 压缩双精度浮点值的按位逻辑或 这不是做完 全相同的事情吗por 按位逻辑或 如果是这样 拥有它还有什么意义呢 请记住 SSE1orps https www felixcloutier com x86 orps首先 实
Assembly
x86
SSE
instructionset
sse2
gcc 编译器开关 (-mavx -mavx2 -mavx512f) 到底有什么作用?
我在 C C 代码中明确使用了英特尔 SIMD 内在扩展 为了编译代码 我需要在命令行上指定 mavx mavx512 或类似的内容 我对这一切都很满意 然而 从阅读 gcc 手册页来看 并不清楚这些命令行标志是否也告诉 gcc 编译器尝试
gcc
SIMD
avx
instructionset
avx512
x86 汇编中 cmove 指令的用途?
反汇编可执行文件时我遇到了cmove操作说明 我已经在互联网上搜索过 但我只发现这是一个有条件的移动 如果源和目的地相等mov发生 我还不明白为什么我需要它 因为它不会改变操作数 它的目的是什么 The CMOVcc指令不比较源和目标 它们
Assembly
x86
cpuarchitecture
instructionset
conditionalmove
如何在汇编器中实现相对 JMP (x86)?
在为 x86 平台构建汇编程序时 我遇到了一些编码问题JMP操作说明 OPCODE INSTRUCTION SIZE EB cb JMP rel8 2 E9 cw JMP rel16 4 because of 0x66 16 bit pre
encoding
x86
instructionset
在MIPS中,为什么跳转指令可以将程序计数器设置为28位目标地址
在 MIPS 中 32 位跳转指令由 6 位操作码和 26 位我们要设置程序计数器的目标 目标 地址组成 然而 可以将程序计数器设置为 28 位目标地址 如果跳转指令只能容纳 26 位 这怎么可能呢 MIPS 上的指令始终是 4 字节对齐的
Assembly
MIPS
mips32
instructionset
MIPS 左加载字 (LWL) 和右加载字 (LWR) 指令的作用是什么?
最近我一直在研究 MIPS 指令集 当时我遇到了两个在其他指令集中没有见过的不寻常指令 我环顾四周 想找到一个关于指令到底做什么的合理解释 但我所能弄清楚的是 它们在某种程度上与未对齐的内存访问有关 例如 维基百科说 https en wi
Assembly
MIPS
memoryalignment
instructions
instructionset
零寄存器如何提高性能?
在 MIPS ISA 中 有一个零寄存器 r0 始终给出零值 这允许处理器 任何产生要被丢弃的结果的指令都可以将其目标定向到该寄存器 成为一个来源0 据说在这source https web archive org web 20170328
MIPS
cpuregisters
instructionset
程序如何执行?操作系统在哪里发挥作用?
程序从某种语言编译为 ASM gt 机器代码 直接可执行 当人们说这是平台相关时 意味着形成的二进制文件只能在具有相同指令集架构 如 x86 x86 64 的 CPU 上运行 正确 由于 ISA 的差异 它可能 错误地 可能 根本 不在其他
operatingsystem
cpuarchitecture
instructionset
platformindependence
VPERMILPS 指令 (_mm_permute_ps) 有什么意义?
AVX指令集引入了VPERMILPS 它似乎是SHUFPS的简化版本 对于两个输入寄存器相同的情况 例如 以下指令 c5 f0 c6 c1 00 vshufps xmm0 xmm1 xmm1 0x0 可以替换为 c4 e3 79 04 c1
Assembly
x86
avx
instructionset
字节码是否被视为 JVM 的指令集?
我正在读关于instruction set in wiki http en wikipedia org wiki Instruction set我看到了这一段 一些支持字节码作为 ISA 的虚拟机 例如 Smalltalk Java 虚拟机
Java
JVM
bytecode
processor
instructionset
最新的处理器不支持 SSSE3 指令? [关闭]
Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何不支持 SSSE3 指令的仍然相关的 CPU Intel AMD Atom 没有 SSSE3 的最新 CPU 是什么 没有 SS
x86
SSE
SIMD
instructionset
x86 OpCode 指令解码
我一直在研究 x86 架构的软件开发人员手册 试图提高我的逆向工程技能 我知道该架构很复杂并且向后兼容前几代 随着新一代的出现 一些旧的文档部分被遗漏了 但令人不安的解释和误解之一是与此类似的说明 80 2 ib 因此 基于以下的说明80操
Assembly
x86
reverseengineering
disassembly
instructionset
x86-64 指令集、AT&T 语法、lea 和括号的混淆
有人告诉我 lea rax rdx 是无效语法 因为源代码需要放在括号中 即 lea rax rdx 我想我显然误解了 lea 和括号的目的 我以为 lea rax rdx 会将 rax 中存储的内存地址移动到 rdx 但显然这就是 lea
Assembly
x8664
att
instructionset
如何通过 .Net 内联汇编来使用 Intel 的 RDRAND
我正在使用 Intel Ivy Bridge CPU 并且想要使用 RDRAND 操作码 https software intel com en us articles intel digital random number generat
c
Assembly
instructionset
rdrand
需要帮助向 MIPS 单周期数据路径添加更多功能
I am trying to add jal functionality to the following but I am stuck with how does it work I know that it stores the old
MIPS
instructionset
mips32
什么是 ARM Thumb 指令集?
在 ARM11TechnicalRefManual 第 1 34 节的 Thumb 指令集 下 它说 Thumb指令集是最常用的32位ARM指令的子集 Thumb指令有16位长 并且有相应的32位ARM指令 对处理器模型具有相同的效果 任何
arm
thumb
instructionset
为什么 RV64 为 32 位操作而不是 64 位操作引入新的操作码
在浏览 RISC V 规范时 我注意到 64 位版本与 32 位版本的不同之处在于 它 将寄存器扩展至 64 位 更改了指令以作用于整个 64 位范围 添加了执行 32 位操作的新指令 这使得 RV32 代码与 RV64 不兼容 但是 如果
Assembly
32bit64bit
RISCV
opcode
instructionset
为什么IA32不允许内存到内存mov? [复制]
这个问题在这里已经有答案了 在Intel架构IA32中 movl movw等指令不允许操作数同时是内存位置 例如 不允许使用指令 movl eax edx 为什么 答案涉及对 RAM 的更全面的理解 简单来说 RAM只能处于两种状态 读模式
Assembly
x86
cpuarchitecture
instructionset
为什么ARM说“链接寄存器支持快速叶函数调用”
我最近遇到了链接寄存器和叶函数的概念 我从之前的 SO 读中了解到 LR 告诉代码之前在执行期间的位置 我还知道叶函数是位于函数调用层次结构末尾的函数 The ARM 维基百科页面说 https en wikipedia org wiki
Assembly
arm
cpuarchitecture
instructionset
1
2
»