问题标签 [y86]

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 投票
0 回答
2360 浏览

assembly - Y86 汇编 - 对链表求和

我想知道是否有人可以帮助我更好地理解为什么我编写的这段代码不起作用,并帮助我修复它。以下是我编写的 Y86,它应该对我在其中定义的数组求和,但是,我可以让我的程序返回的只是 d4a 而不是预期的 cba。

提前谢谢各位!组装真的很难掌握,当人们花时间向我解释这些事情时,它真的很有帮助!

0 投票
1 回答
1092 浏览

assembly - 使用循环展开计算正数、负数和零数的最有效方法

假设我有以下指令,只需检查一个数字是否为正数(负数或零),如果它是正数,则将 1 添加到我们的计数器(我们不在乎数字是负数还是零)。我可以通过一个简单的循环展开来做到这一点:

我的问题是,如果我还想检查是否为零或负数,如何获得相同的有效结构。在这种情况下,我将有三个计数器(一个用于 pos,一个用于 neg,一个用于 0) 一种低效的方法是这样的。我正在尝试制作与前一个示例相同的结构(我们将正数存储在 中%rax,负数存储在 中%rbx,零存储在 中%rcx):

0 投票
1 回答
317 浏览

assembly - 在 y86 程序中出现 ADR 错误,不知道为什么。堆栈似乎设置得很好

我有来自 CMU 架构实验室的以下 y86-64 程序,它应该总结链表的值。

"ADR"程序在 line 处停止,状态为0x093line

现在,我被文档引导相信"ADR"错误意味着程序试图访问高于 的地址0xFFF,但事实并非如此。堆栈似乎也已正确初始化和设置。我使用了与我编写的其他几个运行良好的程序相同的方法。不太确定这里出了什么问题。

0 投票
1 回答
633 浏览

assembly - Y86 Code - doesn't return or show rax

I am doing a class project which I am to take C code, turn it in x86-64 assembly and then change it to Y86. An in this I am suppose to return the sum of the elements in a linked list to to rax. However, when i try to use the y86 compiler, it doesn't appear. The y86 I made looked like this:

And so rax should have 0xfed, but in my result, nothing appears.

This is the C code I got it from:

0 投票
1 回答
1572 浏览

assembly - 展开 y86 循环

我正在尝试在 y86 代码中展开循环,但是当我尝试运行测试程序时,我得到了 2 个不同的值。注册。代码是:

我制作的展开版本是:

我应该得到的结果是 2,但从展开的结果返回的结果是 3。我知道有一个额外的iaddq被执行,但我不确定在哪里。我将循环展开两次,以便改为检查 2 个值。

0 投票
2 回答
3970 浏览

assembly - 了解 Y86

我有以下代码。有人可以解释我在括号中的问题吗?

0 投票
2 回答
2202 浏览

c - C 到 Y86 组装

我试图理解这段代码,以便将其转换为 y86 程序集。有人可以回答括号里写的问题吗?

样本输入

0 投票
0 回答
92 浏览

assembly - “addq”在最大 32 位有符号整数处溢出

我正在尝试为计算器编写一个简单的编译器。但是,我所有的汇编指令(加法、减法和乘法)分别在 2,147,483,647 和 -2,147,483,648 处保持上溢和下溢,而不是最大 64 位有符号值。我无法弄清楚为什么会发生这种情况并且真的很令人沮丧,所以任何帮助将不胜感激!以下是生成的汇编代码,以防有帮助:

但是,这将返回值 -4,而不是我预期的 4,294,967,292 :(。(我知道它目前没有优化,我希望稍后在解决这个问题后改进它。谢谢!)

0 投票
0 回答
222 浏览

optimization - 处理管道中的数据依赖关系

如果你有上面的程序集,一般的 5 阶段流水线会如下所示,但由于存在数据依赖性,第一条指令直到第 5 阶段才会存储结果,因此第二条指令无法开始获取结果。您将如何通过插入 NOP 指令来等待循环完成?

编辑不确定这是否正确,但这是我想出的:

0 投票
2 回答
1661 浏览

c - 将 x86-64 代码转换为 Y86-64 代码

当我试图辨别汇编语言时,我现在非常困惑。我被要求将以下 x86-84 代码转换为 Y86-84:

在 x86-64 中:

在我转换之前,我很难理解 x86-64 中发生了什么。我将非常感谢任何能引导我了解这段代码中发生的事情的人。