问题标签 [instructions]

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 回答
1867 浏览

assembly - 如何在 LLVM 程序集中实现推送和弹出?

我想在 LLVM 程序集中实现推送和弹出操作。

alloca 指令不遵循堆栈、推送和弹出的概念。

例子:


x86

或者

mips

流行音乐
x86

或者

mips

编辑1:

我需要一个独立于平台的解决方案。

首先
我想用栈顶来存储临时对象。

表达式“a*b + c*d + e*f”需要存储三个乘法的结果,操作数是一个类的大对象,运算符是重载的。运算“a*b”需要很多指令,“a”和“b”在乘法过程中不能修改,这意味着“a*b”产生的对象不能使用“a”的相同内存位置或“乙”。

在假设语言的代码中,

“&Object()”会在栈上创建一个对象并获取它的指针,指针是函数的参数,函数返回后对象会被删除。

其次
,我想优化递归函数。我想将递归函数转换为迭代函数并使用堆栈来推送稍后将使用的数据。我不能使用数组,因为我不知道堆栈上的最大递归调用数。

0 投票
2 回答
401 浏览

c++ - 如何在 C++ 中实现 AND 和 OR 操作

我有一个任务,我应该在 C++ 中实现 MIPS 处理器,其中一条 MIPS 指令是“AND”和“OR”,MIPS 指令表示为and $s1,$s2,$s3,这意味着寄存器表示$s1=$s2(and)$s3$s2 and $s3位,,如何我使用 C++ 执行“AND”和“OR”操作?

0 投票
6 回答
1253 浏览

c++ - 在 C++ 中实现“AND”和“OR”时出错

参考我之前的问题,如何在 C++ 中实现 AND 和 OR 操作

我的下一个问题是,有时它会输出一些奇怪的数字,例如 110010 & 010101 = 110591。为什么会这样?

0 投票
1 回答
1058 浏览

instructions - 简单的流水线和超标量架构

考虑这个指令流程图......

指令提取->指令解码->操作数提取->指令执行->回写

假设一个处理器支持

cisc 和 risc ......就像英特尔 486

现在,如果我们发出一条 risc 指令,它需要一个时钟周期来执行,所以没有问题……但是如果发出一条 cisc 指令,它的执行将需要时间……

因此,让执行 cisc 指令需要三个时钟周期,每个执行之前的阶段需要一个时钟周期....

现在在超标量结构中,在处理第一个指令时发出的两条指令被转移到其他可用的功能单元中……但是在简单的流水线中不可能进行这种转移,因为只有一个功能单元可用于执行指令……

那么在简单的流水线案例中如何避免指令拥塞呢?

0 投票
1 回答
50 浏览

debugging - 记录二进制文件的行为?

我想弄清楚当命令行标志传递给 Windows 上的程序时,哪些指令的执行方式不同,其中我有已编译(和优化)的二进制文件,没有调试符号或任何类似的东西。我知道差异不会超过几条指令。

我将如何解决这个问题?是否有任何技术可以准确记录程序在特定时间段内执行的指令?
(请注意,这不涉及任何系统调用,只是因为命令行标志而在循环中设置了一个标志。)

0 投票
2 回答
31419 浏览

assembly - 为什么不存在 MIPS 的子操作码?

我对汇编语言很陌生。我正在阅读有关MIPS架构的信息,并开始知道您有addi操作码但没有subi操作码。为什么我们没有subi操作码?

0 投票
1 回答
290 浏览

android - 显示安装后如何显示小部件的说明

一些从安卓市场下载我的小部件的用户(大约 15%)不知道如何在主屏幕上显示它们。我希望弹出一个屏幕,说明当用户单击 android 下拉窗口中的项目(安装成功的那个)时如何执行此操作。这可能吗?如果是这样,它是如何完成的?

0 投票
3 回答
9251 浏览

c++ - 使用 g++ 编译时出现非法指令

我有一个问题,在 linux 下运行的 C++ 程序,用 g++ 编译一段时间后引发非法指令异常,我得到一个核心转储。当我使用 gdb 进行回溯时,我得到

我不知道为什么回溯中没有 main 。这 ??似乎是我的 linux 库的一部分,其中没有调试符号。

我现在的问题是:程序有什么问题?库 lapack 是否编译错误(我前几天编译的)?还是有其他错误?

我做了 definitfly 没有汇编程序或类似的事情。只有 C++。

谢谢克里斯蒂安

0 投票
3 回答
6161 浏览

android - 用于说明的小弹出窗口,例如四方的

在看到新的foursquare 应用程序的最后一个屏幕截图及其气球状卡通说明之后,我想在我的应用程序中创建其中的一些。

我为 iPhone Small 弹出窗口找到了一个类似的问题以 获取说明……如何?

这是foursquare应用程序的另一个屏幕截图: 在此处输入图像描述

我想知道如何使用 Android 实现这一目标。

提前感谢您的帮助。

更新:这是我到目前为止所能得到的,但是添加了一些具有自定义绘制背景的按钮并使用 FrameLayout 将它们分层:

在此处输入图像描述

但我仍然无法获得三角形效果。也许我可以用我的自定义背景形状做些什么?

更新2

在检查了您的建议后,我决定采用 Aaron C 的想法,并添加了一个带有箭头的图像。这是我目前的结果:

在此处输入图像描述

谢谢 Snailer,QuickAction API 项目看起来很有前途。在我的应用程序中实现更多功能时,我会检查一下。

现在,我只需要获得正确的颜色,或者我可以让它这样。看起来也不错。

所以,总结一下我所做的:

  1. 在 FrameView 中获得了我的初始 xml 布局。
  2. 当我使用框架视图时,我放在这里的所有东西都会一个接一个地堆积起来。这就是我可以在布局中添加东西的方式。

  3. 在那个框架布局中,我放置了 2 个相对布局,其中包含一个带有三角形的图像和一个按钮来创建两个上部弹出窗口。在底部我只放了一个按钮。

  4. 而已。我希望它可以帮助某人。

再次非常感谢您的帮助!

0 投票
4 回答
2977 浏览

c# - C# 未公开的 IL 指令

C# 没有公开哪些 IL 指令?

我指的是 sizeof 和 cpblk 之类的指令——没有执行这些指令的类或命令(C# 中的 sizeof 是在编译时计算的,而不是在运行时 AFAIK)。

其他的?

编辑:我问这个的原因(希望这会让我的问题更有效)是因为我正在开发一个小型库,它将提供这些指令的功能。sizeof 和 cpblk 已经实现 - 在继续之前,我想知道我可能错过的其他内容。

EDIT2:使用 Eric 的回答,我编制了一份说明清单:

  • 休息
  • 跳转
  • 愈伤组织
  • 对象
  • 有限的
  • 前缀[1-7]
  • 前缀引用
  • 末端过滤器
  • 未对齐
  • 尾声
  • cpblk
  • 初始化块

还有许多其他指令未包含在列表中,我将它们分开是因为它们基本上是其他指令的快捷方式(压缩以节省时间和空间):

  • Ldarg[0-3]
  • Ldloc[0-3]
  • 斯特洛克[0-3]
  • Ldc_[I4_[M1/S/0-8]/I8/R4/R8]
  • Ldind_[I1/U1/I2/U2/I4/U4/I8/R4/R8]
  • Stind_[I1/I2/I4/I8/R4/R8]
  • 转换_[I1/I2/I4/I8/R4/R8/U4/U8/U2/U1]
  • Conv_Ovf_[I1/I2/I4/I8/U1/U2/U4/U8]
  • Conv_Ovf_[I1/I2/I4/I8/U1/U2/U4/U8]_Un
  • Ldelem_[I1/I2/I4/I8/U1/U2/U4/R4/R8]
  • Stelem_[I1/I2/I4/I8/R4/R8]