單片機(jī)原理:4-3-補(bǔ)充1STC單片機(jī)匯編語言編程模型-符號及匯編控制_第1頁
單片機(jī)原理:4-3-補(bǔ)充1STC單片機(jī)匯編語言編程模型-符號及匯編控制_第2頁
單片機(jī)原理:4-3-補(bǔ)充1STC單片機(jī)匯編語言編程模型-符號及匯編控制_第3頁
單片機(jī)原理:4-3-補(bǔ)充1STC單片機(jī)匯編語言編程模型-符號及匯編控制_第4頁
單片機(jī)原理:4-3-補(bǔ)充1STC單片機(jī)匯編語言編程模型-符號及匯編控制_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

補(bǔ)充:STC單片機(jī)匯編語言

編程模型匯編語言符號及規(guī)則

--符號的命名規(guī)則在AX51匯編器中,符號最多可以由31個字符組成。符號中的字符可以包括:A~Z之間的大寫字母;a~z之間的小寫字母;0~9之間的數(shù)字;空格字符問號字符.注:數(shù)字不可以作為符號的開頭;匯編語言符號及規(guī)則

--符號的作用在匯編語言中,符號的作用包括:使用EQU或者SET控制描述,將一個數(shù)值或者寄存器名賦給一個指定的符號名,例如:

NUMBER_FIVEEQU5TRUE_FLAGSET1FALSE_FLAGSET0匯編語言符號及規(guī)則

--符號的作用在匯編程序中,符號可以用來表示一個標(biāo)號。其中:標(biāo)號用于在程序或者數(shù)據(jù)空間內(nèi)定義一個位置(地址)。標(biāo)號是該一行的第一個字符域。標(biāo)號后面必須跟著‘:’符號。一行只能定義一個標(biāo)號,例如:

LABEL1:DJNZR0,LABEL1在匯編程序中,符號可以用于表示一個變量的位置,例如:SERIAL_BUFFERDATA99h匯編語言操作數(shù)描述

--數(shù)字?jǐn)?shù)字以十六進(jìn)制數(shù)、十進(jìn)制數(shù)、八進(jìn)制數(shù)和二進(jìn)制數(shù)的形式指定。如果沒有指定數(shù)字的形式,默認(rèn)為十進(jìn)制數(shù)。對于:十六進(jìn)制數(shù):后綴H,h,有效數(shù)字在0~9,A~F或a~f之間例如:0FH,0FFH;

注:(1)當(dāng)其第一個數(shù)字在A~F之間時,必須加前綴‘0’。(2)十六進(jìn)制數(shù)也可使用C語言的表示方法,例如:0x12AB。匯編語言操作數(shù)描述

--數(shù)字十進(jìn)制數(shù):后綴D,d(可無后綴),有效數(shù)字在0~9之間。例如:1234,20d;八進(jìn)制數(shù):后綴O,o,有效數(shù)字在0~7之間。例如:25o,65O;二進(jìn)制數(shù):后綴B,b,有效數(shù)字0和1。例如:111b,10100011B;注:可以在數(shù)字之間插入符號‘$’,用于增加數(shù)字的可讀性,比如:1$2$3$4等效于1234。匯編語言操作數(shù)描述

--字符在表達(dá)式中可以使用ASCII字符來生成數(shù)字值。表達(dá)式可以由單引號包含的兩個ASCII字符組成。注:字符個數(shù)不能超過兩個,否則在對匯編程序處理的過程中會報錯。在匯編語言的任何地方都可以使用字符,它可以用來作為立即數(shù)。例如:‘A’表示0041h,‘a(chǎn)’表示0061h。匯編語言操作數(shù)描述

--字符串字符串與匯編器描述符DB一起使用,用來定義在AX51匯編程序中的消息。字符串用一對單引號''包含。比如:KEYMSG:DB'Pressanykeytocontinue.'該聲明將在KEYMSG指向的緩沖區(qū)內(nèi)生成下面的十六進(jìn)制數(shù),即:50h、72h、65h、73h、73h、20h、…、6Eh、75h、65h、2Eh。匯編語言操作數(shù)描述

--位置計數(shù)器在AX51匯編器中,為每個段保留了一個位置計數(shù)器。在這個計數(shù)器中,包含了指令或者數(shù)據(jù)的偏移地址。默認(rèn)地,將位置計數(shù)器初始化為0??梢杂肙RG描述修改位置計數(shù)器的初值。在表達(dá)式中,使用’$’符號,用于得到位置計數(shù)器當(dāng)前的值,例如:使用位置計數(shù)器確定一個字符串的長度。比如:

msg:DB'Thisisamessage',0

msg_len:EQU$-msg匯編語言控制描述

--條件匯編根據(jù)符號條件的真假,條件匯編控制模塊的運行。條件匯編描述包括:IF:條件為真,匯編模塊。ELSE:如果前面的IF條件為假,則匯編模塊。ELSEIF:如果前面的IF和ELSEIF條件為假,則匯編模塊。ENDIF:結(jié)束IF模塊匯編語言控制描述

--條件匯編下面給出條件編譯的例子:IF(SWITCH=1)…ELSEIF(SWITCH=2)…ELSE…ENDIF匯編語言控制描述

--存儲器初始化

存儲器初始化描述包括:DB:該描述符用于說明所分配空間的類型是字節(jié).例如:TAB:DB2,3,5,7,11,13,17,19,';'DD:該描述符用于說明分配空間的類型是雙字,即4個字節(jié).例如:VALS:DD12345678h,98765432hDW:該描述符用于說明分配空間的類型是字,即2個字節(jié).例如:HERE:DW0匯編語言控制描述

--分配存儲器空間分配存儲器空間描述符,用于在存儲器內(nèi)為變量預(yù)先分配存儲空間。分配存儲器空間描述包括:DBIT:該描述符用于說明為變量所分配存儲空間的類型為比特,例如:A_FLAG:DBIT1;保留的存儲空間為1位DS(DSB):該描述符用于說明為變量所分配的存儲空間的類型為字節(jié)例如:TIME:DS8;保留的存儲空間為8個字節(jié)匯編語言控制描述

--分配存儲器空間DSD:該描述符用于說明為變量所分配的存儲空間的類型為雙字,即4個字節(jié)例如:COUNT:DSD9;保留的存儲空間為36個字節(jié)(4)DSW:該描述符用于說明為變量所分配的存儲空間的類型為字,即2個字節(jié)例如:COUNT:DSW9;保留的存儲空間為18個字節(jié)匯編語言控制描述

--段控制段控制主要為段分配絕對地址或者可重定位描述。段控制描述包括:BSEG:該控制符用于定義一個絕對BIT段,例如:BSEGAT10

;地址=0x20+10位=0x2ADEC_FLAG:DBIT1;DEC_FLAG為比特位類型INC_FLAG:DBIT1;INC_FLAG為比特位類型匯編語言控制描述

--段控制CSEG:該控制符用于定義一個絕對CODE段,例如:

CSEGAT0003h

;CODE段開始的絕對地址為0x3VECT_0:LJMPISR_0;跳轉(zhuǎn)到中斷向量的位置CSEGAT0x100

;絕對地址0x100CRight:DB"(C)MyCompany";固定位置的字符串CSEGAT1000H;絕對地址0x1000Parity_TAB:;Parity_TAB的名字DB00H;初始化Parity_TAB開始的緩沖區(qū)DB01HDB01HDB00H匯編語言控制描述

--段控制DSEG:該控制符用于定義一個絕對DATA段,例如:

DSEGAT0x40;DATA段開始的絕對地址為40HTMP_A:DS2;TMP_A變量TEM_B:DS4;TMP_B變量ISEG:該控制符用于定義一個絕對IDATA段,例如:ISEGAT0xC0;IDATA段開始的絕對地址為0C0HTMP_IA:DS2;TMP_IA變量TEM_IB:DS4;TMP_IB變量匯編語言控制描述

--段控制RSEG(段名字):該控制符用于定義一個可重定位段,例如:MYPROGSEGMENTCODE;定義一個段RSEGMYPROG;選擇段XSEG:該控制符用于定義一個絕對的XDATA段,例如:

XSEGAT1000H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論