基础 Y86:文档和基本要求

Posted

技术标签:

【中文标题】基础 Y86:文档和基本要求【英文标题】:Fundamental Y86 : Documentation and basic requirements 【发布时间】:2018-03-21 14:26:21 【问题描述】:

我在foo.ys 文件中有以下非常简单的 Y86 程序:

irmovl $1, %eax

运行以下命令:

$ yas foo.ys

我从yas 得到以下(完全没用的)反馈:

Invalid Line

所以--我有几个问题:

    Y86 文档存放在哪里? 上述程序有什么问题?

【问题讨论】:

1. google,例如y86tutoring 2. 什么都没有,在这里工作。 主流(真实)架构可能更复杂,但它们通常具有更好的工具链,可以提供(稍微)更有用的错误消息。汇编器错误消息通常很模糊,但不是那么模糊。 @Jester - 你用的是什么版本的 yas? 我下载了this one,没有版本号。 【参考方案1】:

看起来您使用的是 64 位版本,y86-64。我已经检查过,这实际上会产生给定的错误消息。虽然 x86-64 确实支持 32 位,但显然 y86-64 不支持。你应该改用irmovq $1, %rax(注意指令后缀和寄存器前缀的变化)。

【讨论】:

你能看看***.com/questions/70919423/…【参考方案2】:

看起来 Y86 应该是 IA-32 whose documentation can be found here 的一个子集。

似乎,在 IA-32 中,以 l 结尾的移动指令不会移动长数据类型;他们会做有条件的动作和与 Y86 无关的事情。

然而,有些版本的 Y86 支持irmovl,有些不支持。

如果您使用的是 64 位版本的 yas,请使用四字指令和地址:

irmovq $1, %rax

【讨论】:

听起来你有一个 64 位版本。那些使用四字,但你的寄存器应该是rax而不是eax @StudentsTea:它是 IA-32(英特尔架构),而不是 AI。不是我的反对意见,但这个答案并不是真的有用,你可能应该删除它。 (它也有错误。x86 没有movl,你在想cmovl。)Intel x86 文档对 y86 并不是很有用。也许 AT&T 语法文档会,但 y86 或 y86-64 仅支持固定操作数大小(或者也可能是字节?)真正的 x86 手册只会令人困惑。

以上是关于基础 Y86:文档和基本要求的主要内容,如果未能解决你的问题,请参考以下文章

在第一个 Y86 程序中没有得到输出

20155317 第八周课下作业

2017-2018-20155336 《信息安全系统设计基础》第七周学习总结

软件工程文档设计中的基本要求:关于每个文档究竟该写什么

20145234黄斐《信息安全系统设计基础》第六周学习总结(Y86模拟器的安装)

20145222《信息安全系统设计基础》第六周学习总结