问题标签 [machine-instruction]

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.

0 投票
1 回答
481 浏览

android - 如何查找程序的指令总数?

我想查找 Android 应用程序的机器指令总数。我已经探索了 Android SDK 的 Debug.InstructionCount 类,但我相信它提供了 Dalvik VM 指令的信息(不是实际在处理器上执行的机器级指令)。我需要此信息来估计在特定处理器(使用固定频率)上执行 Android 应用程序所需的时间。我知道不同类型的指令需要可变周期,因此无法准确估计计算时间,但我仍然想做一些实验。谢谢

0 投票
1 回答
474 浏览

llvm - llvm SDnodes中的机器值类型“其他”是什么意思

我试图更深入地了解 llvm 中的指令选择过程,为此我正在逐步调试 CodeGenAndEmitDAG 函数。我在合并步骤之前打印了一个小函数(见下文) - 上述函数的第一步。在图中,我看到蓝线,它们似乎总是指向 "ch" ,我认为这意味着“其他”机器值类型。我不明白的是蓝线的含义......这是什么依赖?而且,我对“ch”的含义是否正确?是“其他”吗?在此处输入图像描述

0 投票
1 回答
1797 浏览

pipeline - 流水线门 2015

考虑下面给出的机器指令序列:

在上述序列中,R0toR8是通用寄存器。在所示指令中,第一个寄存器存储对第二个和第三个寄存器执行的操作的结果。该指令序列将在具有以下 4 个阶段的流水线指令处理器中执行:

  1. 指令获取和解码(IF),
  2. 操作数获取 (OF),
  3. 执行操作 (PO) 和
  4. 写回结果 (WB)。

对于任何指令IFOFWB阶段每个都需要 1 个时钟周期。该PO阶段需要 1 个时钟周期用于ADDSUB指令,3 个时钟周期用于MUL指令,5 个时钟周期用于DIV指令。流水线处理器使用从 PO 阶段到 OF 阶段的操作数转发。执行上述指令序列所用的时钟周期数为

由于它明确给出了从 PO 到 OF 阶段应该使用操作数转发,所以上面的答案应该是 15 个时钟周期。

但在许多地方,答案是 13 个时钟周期。当我们使用从 PO 到 PO 的操作数转发时,将会有 13 个答案。

我的答案:

很多地方给出的答案:

谁能告诉哪个答案是正确的?

0 投票
1 回答
17521 浏览

assembly - 长跳和短跳的区别(x86)

我读过当地址中的相对跳转小于 124时,将使用短跳转,否则应使用长跳转。

x86 上两种类型的跳转在CPU 中执行的操作/性能方面有什么区别?

0 投票
1 回答
251 浏览

assembly - “调用”指令位置的地址

我认为“呼叫”指令是一种“跳转”指令。“跳转”指令有去哪里的地址。“调用”指令要么应该有一个目标地址。但是当我反汇编二进制文件时,“调用”指令只有一个目标函数标签。那么,他们怎么知道去哪里呢?换句话说,我在哪里可以找到每个函数的目标地址?x86、ARM 什么的。

0 投票
0 回答
377 浏览

increment - CPUsim wombat1 Inc2-pc微指令

在 CPUsim wombat1 机器中,我注意到增量选项下的微指令 Inc2-pc。然而,在 12 条基本(存储、加载、添加、减去、跳转等)机器指令中,我似乎找不到它正在使用。它的目的是什么,为什么它的 Delta 设置为 2 而不仅仅是 1?

0 投票
1 回答
5592 浏览

assembly - 指令和微操作之间的区别

机器指令和微操作有什么区别?我在这里找到了以下定义:

一条小的基本指令,串联使用以构成高级机器指令

这是我在维基百科上找到的

在计算机中央处理单元中,微操作(也称为微操作或微操作)是在某些设计中用于实现复杂机器指令(在此上下文中有时称为宏指令)的详细低级指令

我是否正确理解微操作是在给定周期内执行的处理器指令。说喜欢和 ADD、SUB、MUL、ST、LD。我错过了什么吗?

任何帮助表示赞赏。

0 投票
2 回答
79 浏览

c - 如何执行放置在堆栈上的机器指令

我之前的堆栈帧中有一个返回值,它指向我后续堆栈帧中的缓冲区。如何获取放置在缓冲区中的机器指令来执行?

这甚至可能吗?根据我对堆栈的了解,这是荒谬的。因为,当然,堆栈是后进先出结构。换句话说,一旦 PC 到达返回地址,缓冲区就已经被弹出。

有任何想法吗?

函数(下<test>)调用<getbuf>函数(也在下):

0 投票
2 回答
6537 浏览

arm - ARM7 IT (if then) 指令的真正作用是什么?

我无法理解IT指令的功能(如果有的话)。快速参考卡有这个:

操作:If-Then
汇编器: IT{pattern} {cond}
操作:根据模式,最多生成四个有条件的以下指令。模式是最多三个字母的字符串。每个字母可以是 T(Then)或 E(Else)。IT 之后的第一条指令有条件 cond。如果对应的字母是 T,下面的指令有条件 cond,或者如果对应的字母是 E,则条件是 cond 的倒数。

其实这个梗概有点意思。架构手册条目并没有让我在理解之旅中取得任何进展:

If-Then 条件指令。
句法

IT{x{y{z}}} 条件

其中: x 指定 IT 块中第二条指令的条件切换。
y 指定 IT 块中第三条指令的条件开关。
z 指定 IT 块中第四条指令的条件开关。
cond 指定 IT 块中第一条指令的条件。

IT 块中第二条、第三条和第四条指令的条件开关可以是:
T 那么。将条件 cond 应用于指令。
E 别的。将 cond 的逆条件应用于指令。

笔记

可以在 IT 指令中使用 AL(始终条件)作为 cond。如果这样做,IT 块中的所有指令都必须是无条件的,并且 x、y 和 z 中的每一个都必须是 T 或省略,但不能是 E。 操作

IT 指令最多包含四个有条件的以下指令。条件可以完全相同,或者其中一些条件可以是其他条件的逻辑逆。IT 指令之后的条件指令构成 IT 块。

IT 块中的指令,包括任何分支,必须在其语法的 {cond} 部分中指定条件。

由于(大多数)每条指令都可以轻松指定条件,那么该IT指令有什么用?

0 投票
1 回答
324 浏览

assembly - x86 - 寄存器数量与保留位数

我是组装新手,我的问题是:

例如,如果一台机器有 n 个寄存器。在汇编指令中需要保留多少位来寻址 n 个寄存器中的每一个?

功能拆分可以减少多少所需的位数?