2013-02-04 130 views
1

所以,我試圖添加變量,但它不想工作。我有一個非常簡單的程序。在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/hlaparse.c]: 語法錯誤,意外 ')',希望 '('。附近:< <)>>「

Mov應該將數字移動到變量中.and add應該添加兩個東西。爲什麼它不工作?

我真的不明白hla,所以任何幫助將不勝感激。

+2

不確定HLA,但一般不能加內存記憶。嘗試將'add(i,x);'更改爲'mov(x,al); add(i,al); mov(al,x);'。 –

+0

就是這樣!謝謝。一旦我使用了寄存器,它就起作用了。 – Ikiro

+0

我很高興它有幫助。順便說一下,你應該接受你以前的問題的答案。 –

回答

0

注意,5和10是「常量」,你不能改變的5值或10 記住mov(dest, source); 例如: mov(x,i);複製我的價值,並把它放在x的地址

+0

HLA是'op(src,dst)'。 http://plantation-productions.com/Webster/HighLevelAsm/HLADoc/HLARef/TOC_html/HLAReferenceTOC.htm –

2
add(source, destination); 

如果您不是privy,則目標操作數和源操作數都不能是內存位置。這就是爲什麼它不起作用。

源可以是註冊,常量或內存
目的地可以註冊或存儲
不能兩個都存儲
兩者都必須是相同的大小