问题标签 [instruction-set]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 如何从非 x86 主机上的模拟器运行 Windows?
Windows 仅在基于 x86 的 CPU 上运行。是否可以让 Windows 在 POWER、SPARC、ARM 等非 x86 架构 CPU 上运行?
我知道有一个程序,即适用于 Mac 的 Virtual PC 7,它允许 Windows 在 MacOS 内的 PowerPC 上运行,但没有太多细节可用。我说的是虚拟化,它允许 HOST 和 GUEST 机器的 CPU 架构不同。
.net - GA 虚拟机框架
有谁知道任何用于在虚拟机中演化指令集以解决抽象问题的 .NET 遗传算法框架?我对一个框架特别感兴趣,它允许虚拟机在池中自我传播,并根据由具有“良好”输出的数据集确定的适应度函数进行进化,给定预期的输入。
assembly - 英特尔处理器的虚拟操作处理
诚然,我有一个有点愚蠢的问题。基本上,我想知道英特尔处理器是否提供了一些特殊机制来有效地执行一系列虚拟指令,即 NOP 指令?例如,我可以想象可能存在某种预取机制来识别 NOPS,丢弃它们并尝试获取一些有用的指令。或者这些 NOPS 是否作为正常指令发送到执行单元,这意味着我每个周期可以大致处理 5 个 nops(假设有 5 个执行单元)
谢谢,莱因哈德
assembly - 相当于其他架构上的 Z80 DJNZ 指令?
首先是一点背景。z80 CPU 有一条名为DJNZ的指令,可以以与for
循环类似的方式使用。基本上 DJNZ 会减少 B 寄存器,如果不为零则跳转到标签。例如:
当然,您可以使用常规比较和跳转指令来做同样的事情,但通常使用单条指令很方便。
顺便说一句,我的问题是,其他 CPU 架构是否包含类似的控制指令?
assembly - 学习 x86 指令集的最简单/最佳方式?
我想学习 x86 指令集架构。我的意思不是学习 x86 的程序集。想看懂机器码宝贝。
原因是我想为 x86 编写一个汇编程序。然后我想编写一个编译器来编译该程序集。
我知道有涵盖 x86 指令集的Intel 手册和 AMD 手册。但它们非常大而且密集。
我想知道是否有更平易近人(可能是教程)的方法来学习 x86 指令集架构。
x86 - CPU 中的新指令集
每一代新的CPU都会引入一些新指令集,即MMX、3DNOW、SSE等。
我有几个关于它们的一般性问题:
- 如果某些程序使用例如 SSE 指令,它可以在不支持 SSE 的 CPU 上运行吗?
- 如果是,是否意味着这些指令将被更改为更多数量的更简单的指令?
- 如果不是,这是否意味着此类新指令的真正性能影响将在几年后大多数 CPU 将支持此类技术(因此不会有任何不兼容性)?
- 当我编译一个带有优化的 C++ 程序时,这是否意味着它将使用一些新指令?(我知道这取决于很多因素,尤其是代码,但我想要一些一般性的答案)。还是它们主要用于用 asm 编写的程序?
assembly - x86 汇编中每条指令编译成多少字节?
如果地址不可用,我们可以自己计算吗?
我的意思是我们只有这个:
assembly - Fibonacci using SBN in OISC in Machine Language
I want to generate fibonacci series using SBN in an OISC architecture. My initial approach is to implement it in assembly language first and then convert it to machine language. The first steps involve storing 0 and 1 in 2 registers and then subtract 1 from 0 and repeatedly subtract 1 in the consequent steps. Everytime it will generate a negative number and since its negative, it branches off and fetches the absolute value finding instruction.
Is my approach correct? My confusion in the meaning of OISC. Correct me if i'm wrong, if i perform a subtraction and then an absolute value finding, it means that that i'm using 2 instructions everytime. or is it that in the OISC processor both these instructions are done at the sametime which would mean that my approach is correct.
c - LEA EAX,[EAX] 有什么意义?
我在使用 Microsoft C 编译器编译的二进制文件中遇到了这条指令。它显然不能改变 EAX 的值。那为什么会在那里?
assembly - x86 CMP 指令差异
问题
以下两个 x86 指令之间的(非平凡)区别是什么?
背景
我正在构建一个 Java 汇编器,我的编译器的中间语言将使用它来生成 Windows-32 可执行文件。
目前我有以下代码:
输出一个有效的可执行文件,在一个 TEXT-section 中包含两条 CMP 指令。输出到“text.exe”的可执行文件不会做任何有趣的事情,但这不是重点。该类Compare
是CMP
指令的包装器。
上面的代码产生(用 OllyDbg 检查):
区别很微妙:如果我使用39
字节操作码:
这让我想知道它们的同义性以及为什么会存在。