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)
。