官术网_书友最值得收藏!

3.1 PIC匯編語言指令格式

PIC系列微控制器匯編語言指令與MCS-51系列單片機匯編語言一樣,每條匯編語言指令由4個部分組成,其書寫格式如下:

    標號         操作碼助記符      操作數1,操作數2    ;注釋
   (label)  (opcode)     (operand)        (comment)

指令的標號、操作碼助記符和操作數之間由空格作隔離符,空格可以是1格或多格。其他有逗號和分號的地方也可插入空格。匯編語言源程序既可以用大寫字母書寫,也可以用小寫字母書寫,還可以二者混合使用。下面對指令格式進行詳細說明。

(1)標號。代表指令的符號地址。在程序匯編時,已賦予指令存儲器地址的具體數值。匯編語言中采用符號地址(即標號)是為了便于查看、修改,尤其是便于指令轉移地址的表示。標號是指令格式中的可選項,只有在被其他語句引用時才需要加上標號。在無標號的情況下。指令助記符前面必須保留一個或一個以上的空格再寫指令助記符。指令助記符不能占用標號的位置,否則該助記符會被匯編程序作為標號誤處理。另外,標號可以單獨占一行,但不能與系統的操作碼助記符同名。

(2)操作碼助記符。該字段是指令的必選項,可以是指令助記符,也可以由偽指令及宏命令組成。當編譯器對其進行處理時,將“指令操作碼助記符”與“操作碼表”進行逐一比較,找出其相應的機器碼,然后逐一代之。

(3)操作數。可以是操作數的數據值,也可以是由符號表示的數據或地址值。若操作數有兩個,則兩個操作數之間用逗號分開。當操作數是常數時,可以是二進制、八進制、十進制或十六進制數,還可以是被定義過的標號、字符串和ASCII碼等。具體表示時,規定在二進制數后加字母“B”,例如11011101B;十六進制數后加字母“H”,例如5EH。注意:若十六進制數是以A~F開頭,則應該在前面加一個0,以便匯編器將其與標號和符號名區別,例如0EEH;八進制數前冠以字母“O”,例如O125;十進制數前冠以字母“D”,例如D213。在PIC單片機中,默認的是十六進制。對十六進制數的表示,還可在前面加上0x,如3DH可以寫成0x3D。指令的操作數項也是可選項。

(4)注釋。用來對程序注釋以便于用戶理解、修改和調試。注釋與程序其他部分用分號隔開。注釋可以跟在操作碼、操作數或標號后面,也可以單獨占用一行而且可以從任何一列開始。編譯器處理程序時,當檢測到分號,則對其后面的字符不作處理。

在描述PIC匯編語言時將用到指令操作碼,以使語句格式簡潔,方便對指令系統進行介紹。現將指令操作碼符號及意義說明如下:

● f:表示寄存器單元的地址,表示范圍為0X00~0X7F共128個單元。

● W:表示工作寄存器。

● b:表示寄存器中一個8位數據中的某一位的地址。

● k:表示常數、立即數或標號。

● x:表示數據無關的位,一般編譯器將此位生成為0。

● d:表示目標寄存器,d=0時,結果存放在W寄存器中;d=1時,結果存放在f寄存器中;默認值為d=1。

● PC:表示程序計數器。

● TO:表示計時器時間到標志位。

● PD:表示掉電標志位。

主站蜘蛛池模板: 珲春市| 宾阳县| 阿克苏市| 荆州市| 铜鼓县| 响水县| 都匀市| 吉水县| 布尔津县| 凉城县| 潼关县| 桦甸市| 吉安市| 绥滨县| 乌拉特后旗| 军事| 新巴尔虎右旗| 河间市| 井陉县| 通江县| 鄂伦春自治旗| 广丰县| 广州市| 绥棱县| 进贤县| 岗巴县| 社会| 昌图县| 徐汇区| 松潘县| 安仁县| 吉隆县| 调兵山市| 遵义市| 达州市| 普安县| 香格里拉县| 商丘市| 庆阳市| 唐海县| 峨边|