基本Y86:文件和基本要求

时间:2018-03-21 14:26:22

标签: assembly y86

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

irmovl $1, %eax

运行以下命令:

$ yas foo.ys

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

Invalid Line

所以 - 我有几个问题:

  1. Y86文档在哪里?
  2. 上述程序无效?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

看起来Y86 假定是IA-32的一个子集,whose documentation can be found here

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

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

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

irmovq $1, %rax