【问题标题】:Adding Variables in HLA?在 HLA 中添加变量?
【发布时间】:2017-11-07 23:42:08
【问题描述】:

所以,我正在尝试添加变量,但它不想工作。我有一个非常简单的程序。

program tested;

var
    i: int8;
    x: int8;


begin tested;
    mov(10, i);
    mov(5, x);
    add(i, x);
    stdout.put(x);

end tested;

我收到以下错误: “第 11 行的文件 'tested.hla' 出错 [errid:129712/hlaparse.c]: 语法错误,意外 ')',期待 '('。近:>"

Mov 应该将数字移动到变量中......并且 add 应该添加两个东西。为什么它不起作用?

我不太了解 hla,所以任何帮助将不胜感激。

【问题讨论】:

  • 不确定HLA,但一般不能给内存加内存。尝试将add(i,x); 更改为mov(x, al); add(i, al); mov(al, x);
  • 就是这样!谢谢你。一旦我使用了寄存器,它就起作用了。
  • 我很高兴它有帮助。顺便说一句,您应该接受之前问题的答案。

标签: assembly hla


【解决方案1】:
add( source, destination );

如果您不是私有的,目标和源操作数都不能是内存位置。这就是为什么它不起作用。

源可以是寄存器、常量或内存
目的地可以是寄存器或内存
两者都不能成为记忆
两者的大小必须相同

【讨论】:

    【解决方案2】:

    请注意,5 和 10 是“常数”,您无法更改 5 或 10 的值。 记住mov(dest, source); 例如: mov(x,i);复制i的值放到x的地址中

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2012-10-23
    • 2020-09-20
    • 2012-05-11
    • 2020-01-28
    • 1970-01-01
    相关资源
    最近更新 更多