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