<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用Keil軟件編寫匯編源程序應(yīng)注意事項(xiàng)

          使用Keil軟件編寫匯編源程序應(yīng)注意事項(xiàng)

          作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
          1)一定要使用微軟的txt文本編輯器,否則鍵入逗號(hào)時(shí)編譯通不過(guò)。應(yīng)該是這個(gè)樣('),不該是這個(gè)樣(,)。

          2) 用數(shù)字做標(biāo)號(hào)時(shí),前面一定要加一個(gè)英文字母,否則編譯通不過(guò)。

          本文引用地址:http://www.ex-cimer.com/article/201611/320411.htm

          3) 有時(shí)編譯通過(guò)的.asm源文件卻不產(chǎn)生.hex文件!原因是keil軟件的設(shè)置沒(méi)有勾選“產(chǎn)生hex文件;另一個(gè)是存放.hex的文件夾中刪除過(guò)其他的.hex

          文件。

          4) 用VU2新建文件鍵入源程序時(shí),先鍵入程序部分,編譯后,再鍵入注釋部分;此外,不能用中文輸入法輸入分號(hào),最好用大寫輸入程序部分及注釋部分前面的分號(hào),否則注釋部分前面的分號(hào)顯示不正確,編譯通不過(guò)

          5) 輸入的標(biāo)號(hào)應(yīng)成對(duì)出現(xiàn),無(wú)論是標(biāo)號(hào)還是標(biāo)號(hào)地址(跳轉(zhuǎn)指令后面和標(biāo)號(hào)相同的字符串)只要單獨(dú)出現(xiàn),編譯通不過(guò)并提示錯(cuò)誤!

          6) 編寫程序要注意它的邏輯性,完整性,否則不會(huì)完成預(yù)期的功能。

          如:要編寫一個(gè)使單個(gè)發(fā)光二極管閃爍的程序,首先確定是哪一個(gè)發(fā)光二極管閃爍;使其閃爍必須滿足:亮——延時(shí)(保持亮)——暗——延時(shí)(保持暗)——再亮這樣一個(gè)須要2次延時(shí)的完整周期,延時(shí)時(shí)間符合人眼視滯規(guī)律,不少于20ms

          7) 助記符后面的立即數(shù),如果有2個(gè)應(yīng)該用逗號(hào)隔開,語(yǔ)法規(guī)定:如果只有一個(gè)應(yīng)舍去逗號(hào),否則語(yǔ)法錯(cuò)誤,通不過(guò)。

          8)每一條指令前面不應(yīng)有順序號(hào)(按照程序編寫的順序人為編排的順序號(hào)),否則,語(yǔ)法錯(cuò)誤,編譯通不過(guò)。

          9) 在程序中各功能塊之間不能用連續(xù)的’*****’或‘----------’隔開。如想隔開,前面必須加 ‘;’,分號(hào)后面再用連續(xù)的’*******’或‘-----------’。

          10)用復(fù)制的方法將.txt文件復(fù)制到Keil軟件中去,必須把擴(kuò)展名更改為‘.ASM’ ,然后‘保存’、‘添加文件’三步之后,程序中的指令字體會(huì)變成藍(lán)色,注釋字體變成綠色這樣才能‘編譯’,‘建造.HEX文件’,否則提示錯(cuò)誤!有時(shí)能通過(guò),但不產(chǎn)生.HEX文件。

          11)寄存器不能重復(fù)使用,如:在主程序中已經(jīng)使用R0(不光是R0,其他寄存器也是如此), 主程序的其他地方不能再使用;子程序中也不能重復(fù),否則程序運(yùn)行不正常,但編譯能通過(guò)。

          12) 編寫雙向單路流水燈時(shí),選擇第一個(gè)燈亮從P0.0還是P0.7開始,這個(gè)選擇和流向要一致,否則會(huì)出現(xiàn)‘亮燈’從這一端開始,而流向的第一只燈卻是另一端的第一只燈。其現(xiàn)象:從這一端開始流向另一端前,‘亮燈’會(huì)從開始的這一端直接跳到另一端再跳回來(lái)才開始正常流動(dòng)。編譯能通過(guò),’.HEX’文件能產(chǎn)生。

          13) 偽指令: 定義字節(jié)命令(并賦初值)—— “DB “

          說(shuō)明:告訴匯編程序從指定的地址單元開始,定義若干字節(jié)存儲(chǔ)單元,并賦初值。用法:標(biāo)號(hào) DB XXH,XXH,XXH (若干字節(jié)存儲(chǔ)單元及其初值)。例如: TAB: DB 60H,32H,16H,80H,54H,90H,35H,-------------等等很多。像這樣的字符串應(yīng)在一行內(nèi)輸入完成,如另起一行,編譯不通過(guò),提示錯(cuò)誤。如果字符串太多太長(zhǎng)必須另起一行,則需在另一行的前面再添加一條偽指令‘DB’,后面輸入賦值的字符串,只有這樣才能編譯通過(guò)。

          14)同樣的“跳轉(zhuǎn)指令連同后面標(biāo)號(hào)”在程序中可以出現(xiàn)多次,但跳轉(zhuǎn)到目標(biāo)處的“標(biāo)號(hào)”必須是唯一的,否則程序會(huì)出現(xiàn)混亂。

          15) 助記符后面的立即數(shù),十六進(jìn)制數(shù)第一位是字母的情況下前面必須加零‘0’, 是數(shù)字時(shí)不管他。如:MOV #A2H, A2H前面要加 ‘0’ ,即0A2H。否則編譯通不過(guò)。

          16) 欲使整個(gè)主程序循環(huán)起來(lái),絕對(duì)調(diào)轉(zhuǎn)指令‘AJMP’應(yīng)加入到主程序和延時(shí)子程序之間,加到延時(shí)子程序之后不起作用。

          17) 將編寫好的匯編源程序.txt文本文件復(fù)制到Kiel軟件中,語(yǔ)句后面的分號(hào)、注釋不呈現(xiàn)綠色這是不正常的,編譯不會(huì)通過(guò),需要更正,刪除分號(hào)重新鍵入分號(hào);按一次Back Space鍵(退格鍵)刪除時(shí)會(huì)出現(xiàn)亂碼,因?yàn)镵eil對(duì)中文支持不好(只要更改的是中文就會(huì)出現(xiàn)亂碼),只要連續(xù)按2次退格鍵即可刪除亂碼重新鍵入分號(hào)(或中文)即可,這樣分號(hào)及注釋都會(huì)變成綠色。

          18) 鍵入注釋必須打開大寫鍵鍵入分號(hào),否則(不是綠色)編譯通不過(guò)。

          19) 編譯好的.ASM文件復(fù)制時(shí),粘貼的目的文件夾必須是關(guān)閉的狀態(tài),否則粘貼過(guò)去的文件中的中文會(huì)出現(xiàn)亂碼(對(duì)中文支持不好的緣故)。




          關(guān)鍵詞: Keil軟件編寫匯編源程

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();