無錫單片機匯編語言程序設(shè)計師培訓(xùn)
143 2017-04-13
無錫單片機匯編語言程序設(shè)計師培訓(xùn)
無錫上元教育告訴你單片機匯編程序的常見語法錯誤
作為初學(xué)者,輸入程序的時候一般會出現(xiàn)語法錯誤。語法錯誤會造成匯編失敗。常見的語法錯誤有:
(1)標(biāo)號重復(fù):MultiplyDefinedLabel
常見于復(fù)制、粘貼程序時忘記修改標(biāo)號,造成出現(xiàn)多個相同的標(biāo)號,標(biāo)號是不允許重復(fù)的。。
(2)標(biāo)點符號以全角方式輸入:
匯編程序要求標(biāo)點符號為半角方式,否則匯編失敗??梢栽谳斎耄海?時切換到半角方式,或者在大寫狀態(tài)輸入標(biāo)點符號,這也是很容易犯而且不容易發(fā)覺的錯誤。
(3)數(shù)值#FFH前遺漏0:
根據(jù)要求應(yīng)該在a~f前加0,寫成#0FFH
(4)字母O和數(shù)字0搞混:
有時候這兩個字看上去完全相同,要注意哦~~
(5)標(biāo)號后邊遺漏":"
(6)標(biāo)號使用了特殊字符:
標(biāo)號不能用指令助記符、偽指令、特殊功能寄存器名和8051在指令系統(tǒng)中用的“#”、“@”等,長度以2~6字符為宜,第一字母必須是英文字母。比如:T1、T2、A、B這些字符有特定的含義,不允許用于標(biāo)號。
(7)超過地址范圍:AddressOutofRange
JBP3.2,EXIT跳轉(zhuǎn)超過-128~127個地址范圍。這個是最容易出現(xiàn)的錯誤!你有可能程序剛才還能匯編編譯成功,你加了一段程序后程序就提示出錯了,你可以把:
JBP3.2,EXIT;如果EXIT的位置距離本條語句超過127字節(jié),則會出錯。
;可以用跳轉(zhuǎn)中繼的方法,可以達到跳轉(zhuǎn)超過127字節(jié)的范圍。
JNBP3.2,ZJ01;ZJ01是跳轉(zhuǎn)的中繼,在ZJ01的位置,放置一條長跳轉(zhuǎn)指令。
……
ZJ01:LJMPEXIT;
……
EXIT:
AJMP跳轉(zhuǎn)超過2K地址:
AJMP屬于短跳轉(zhuǎn)命令,有2K地址范圍的限制。
(8)字母I和數(shù)字1混淆:
冒失鬼的常見問題。
(9)創(chuàng)造發(fā)明不存在的匯編語言指令:UnrecognizedStatemenorUndefinedArgument
在編寫程序程序的過程中可不歡迎這種創(chuàng)新,這種指令匯編程序不支持,芯片也不認(rèn)可。
(10)符號“:”“;”用半角書寫。
(11)語句中的符號名可能拼錯或未被定義:UndefinedSymbol。
(12)匯編的源程序結(jié)尾未發(fā)現(xiàn)END語句:MissingENDStatrment。
要養(yǎng)成良好的程序書寫習(xí)慣,比如標(biāo)號對齊、參數(shù)對齊、注釋對齊,這樣看起來賞心悅目,也不容易出錯。標(biāo)號最好采用有意義的英文或漢語拼音,這樣比較直觀,注釋盡量詳細準(zhǔn)確,便于以后讀懂,而且有利于其它程序中作為子程序模塊的調(diào)用。還有要注意典型程序模塊的積累,再復(fù)雜的程序也是由一個個小程序模塊組成的,在初學(xué)階段可以對典型程序比如:延時子程序、查表子程序等編寫實踐一次,這樣印象深刻,便于以后引用。
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號
獵學(xué)網(wǎng)服務(wù)號