Assembly 在HLA中添加变量?

Assembly 在HLA中添加变量?,assembly,hla,Assembly,Hla,所以,我试图添加变量,但它不想工作。我有一个非常简单的程序 program tested; var i: int8; x: int8; begin tested; mov(10, i); mov(5, x); add(i, x); stdout.put(x); end tested; 我得到以下错误: “文件'tested.hla'第11行[errid:129712/hlapase.c]中出现错误: 语法错误,意外“'),应为“(”。附近

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

program tested;

var
    i: int8;
    x: int8;


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

end tested;
我得到以下错误: “文件'tested.hla'第11行[errid:129712/hlapase.c]中出现错误: 语法错误,意外“'),应为“(”。附近:>”

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

我真的不了解hla,因此非常感谢您的帮助。

请注意,5和10是“常量”,您不能更改5或10的值。 记住
mov(dest,source);
例如:
mov(x,i);
复制i的值并将其放入x的地址中

add( source, destination );
如果您不知道,目标操作数和源操作数都不能作为内存位置。这就是它不工作的原因

源可以是寄存器、常量或内存
目标可以是寄存器或内存
两者不能都是内存

两者必须大小相同

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