《單片機(jī)技術(shù)及 仿真與應(yīng)用》-3_第1頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-3_第2頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-3_第3頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-3_第4頁
《單片機(jī)技術(shù)及 仿真與應(yīng)用》-3_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

3.1匯編語言概述在眾多的程序設(shè)計(jì)語言中,計(jì)算機(jī)唯一能直接識(shí)別和執(zhí)行的語言是用二進(jìn)制編碼表示的機(jī)器語言。用機(jī)器語言編寫的程序稱為機(jī)器語言程序或指令程序(機(jī)器碼程序)。因?yàn)闄C(jī)器只能直接識(shí)別和執(zhí)行這種機(jī)器碼程序,所以又稱它為目標(biāo)程序。與機(jī)器語言一樣,匯編語言也是一種面向機(jī)器的語言,與計(jì)算機(jī)的硬件結(jié)構(gòu)密切相關(guān),不能在不同類型的計(jì)算機(jī)之間移植,同時(shí)使用匯編語言編程對(duì)程序設(shè)計(jì)人員要求也較高,為此,又出現(xiàn)了高級(jí)程序設(shè)計(jì)語言,如針對(duì)單片機(jī)的高級(jí)程序設(shè)計(jì)語言C51等。高級(jí)程序設(shè)計(jì)語言獨(dú)立于特定機(jī)器,所開發(fā)的程序方便進(jìn)行移植。本書對(duì)51單片機(jī)匯編語言和單片機(jī)C語言編程均進(jìn)行了介紹。返回3.2指令格式和描述符號(hào)說明3.2.1指令格式匯編語言指令由標(biāo)號(hào)、操作碼助記符字段、操作數(shù)和注釋字段四部分組成。指令格式如下:【標(biāo)號(hào):】操作碼助記符【目的操作數(shù)】【,源操作數(shù)】【;注釋】3.2.2指令中常用描述符號(hào)說明返回3.3尋址方式尋址方式就是尋找操作數(shù)地址的方式。而在3.2.1節(jié)指令格式中已說明,操作數(shù)有目的操作數(shù)和源操作數(shù)兩種,因此尋址方式包含目的操作數(shù)尋址和源操作數(shù)尋址兩種,若不特別聲明,本書所指的尋址方式均指源操作數(shù)的尋址方式。51系列單片機(jī)的尋址方式共有七種,如表3.1所示。1.立即數(shù)尋址立即數(shù)尋址就是參與操作的數(shù)據(jù)(指源操作數(shù))在指令中直接給出。這個(gè)直接給出的數(shù)據(jù)前面有“?!狈?hào),稱為立即數(shù)。下一頁返回3.3尋址方式2.寄存器尋址寄存器尋址就是參與操作的數(shù)據(jù)由寄存器R0~R7(或DPTR、A、B等)給出的方式。3.直接尋址直接尋址就是參與操作的數(shù)據(jù)地址(指源操作數(shù))在指令中直接給出,操作數(shù)存放在片內(nèi)低128字節(jié)中和特殊功能寄存器SFR中,地址長(zhǎng)度為8位。對(duì)于特殊功能寄存器,既可以使用它們的名字,也可以使用它們的地址。4.寄存器間接尋址以寄存器的內(nèi)容作為操作數(shù)的地址,在間址寄存器前加“@”符號(hào),這種尋址方式稱為寄存器間接尋址。對(duì)于這種尋址方式,可使用的間址寄存器有R0、R1、DPTR和SP。51單片機(jī)中規(guī)定:上一頁下一頁返回3.3尋址方式(1)以R0、R1為間址寄存器,訪問片內(nèi)低128BRAM和片外256BRAM,它們兩個(gè)的區(qū)別是訪問片內(nèi)指令用MOV,而訪問片外指令用MOVX。(2)以DPTR為間址寄存器,訪問片外64KBRAM。(3)用SP作為間址寄存器5.變址尋址以基址寄存器(DPTR和PC)的內(nèi)容為基地址,加上變址寄存器中的內(nèi)容,形成真正的操作數(shù)的地址,這種尋址方式稱為變址尋址。變址尋址方式只能用于訪問程序存儲(chǔ)器ROM,多用于查表程序,范圍為64KB。顯然,這種訪問方式只能從ROM中讀取數(shù)據(jù)而不能寫入數(shù)據(jù)。上一頁下一頁返回3.3尋址方式6.相對(duì)尋址相對(duì)尋址就是以程序計(jì)數(shù)器PC當(dāng)前值為基準(zhǔn),加上相對(duì)偏移量rel得到的程序執(zhí)行地址的尋址方式。偏移量rel的取值范圍為-128~+127,以補(bǔ)碼形式存放。這種尋址方式一般是用于修改PC的值,實(shí)現(xiàn)程序的分支跳轉(zhuǎn)。轉(zhuǎn)移的目的地址表達(dá)式為:目的地址=源地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel編程時(shí),常將目的地址用地址標(biāo)號(hào)表示,例如以下程序段:上一頁下一頁返回3.3尋址方式第6句使用的就是相對(duì)尋址方式,其所在地址為1008H,目的地址為1002H,第6句的指令長(zhǎng)度為2字節(jié),其相對(duì)偏移量rel=目的地址-源地址-轉(zhuǎn)移指令字節(jié)數(shù)=1002H-1008H-2=-8H,用補(bǔ)碼表示為F8H,即表示反向跳轉(zhuǎn)8?jìng)€(gè)字節(jié)。相對(duì)尋址示意圖如圖3.1所示。7.位尋址位尋址是將8位二進(jìn)制數(shù)中的其中一位作為操作數(shù),在指令中以位地址形式給出,參與操作運(yùn)算,一般用bit表示。上一頁返回3.4指令系統(tǒng)3.4.1數(shù)據(jù)傳送類指令(29條)數(shù)據(jù)的傳送是一種最基本、最主要的操作,是編程時(shí)使用最頻繁的一種操作,通常不影響PSW的狀態(tài)。數(shù)據(jù)傳送類指令一般可分為兩大類,一類是MOV類傳送指令,采用MOV操作符;另一類是非MOV類傳送指令,不采用MOV操作符。MOV類指令功能是將源字節(jié)的內(nèi)容傳送到目的字節(jié),源字節(jié)內(nèi)容不變,MOV是MOVE的縮寫。主要有7種,1種16位數(shù)據(jù)傳送指令,4種8位數(shù)據(jù)傳送指令,2種MOV(指查表指令MOVC和片外數(shù)據(jù)傳送類指令MOVX)擴(kuò)展類指令。1.16位數(shù)據(jù)傳送指令(1條)下一頁返回3.4指令系統(tǒng)這是唯一的一條16位立即數(shù)傳送指令,將16位立即數(shù)的高8位送入DPH,低8位送入DPL。在翻譯成機(jī)器碼時(shí),也是高位字節(jié)在前,低位字節(jié)在后。如“MOVDPTR,#4321H”的機(jī)器碼是“904321”,執(zhí)行結(jié)果為:在機(jī)器碼格式中,rrr?yàn)楣ぷ骷拇嫫鞯刂?,rrr=000~111?duì)應(yīng)工作寄存器R0~R7的某一個(gè)。Ri為間接尋址寄存器,i=0或1,表示R0或R1。direct表示直接地址,data表示8位立即數(shù)本身。本組指令只影響PSW中的標(biāo)志位P(表示累加器A中1的奇偶情況)。3.以寄存器Rn為目的操作數(shù)的指令(3條)上一頁下一頁返回3.4指令系統(tǒng)4.以直接地址為目的操作數(shù)的指令(5條)5.以間接地址為目的操作數(shù)的指令(3條)8位MOV類傳送指令數(shù)據(jù)傳送關(guān)系如圖3.2所示。6.查表指令(2條)在51單片機(jī)指令系統(tǒng)中,有2條極為有用的查表指令,其數(shù)據(jù)表格放在程序存儲(chǔ)器中?!埃停希郑茫粒溃粒模校裕摇敝噶钜裕模校裕覟榛芳拇嫫鬟M(jìn)行查表。使用前,先給DPTR賦予一任意地址,所以查表范圍可達(dá)整個(gè)程序存儲(chǔ)器的64KB空間,稱為遠(yuǎn)程查表。但若DPTR已賦值待用,裝入新值之前必須保存其原值,可用棧操作指令PUSH保存。上一頁下一頁返回3.4指令系統(tǒng)7.累加器A與片外RAM傳送指令(4條)在51單片機(jī)指令系統(tǒng)中,CPU對(duì)片外RAM或片外I/O外設(shè)芯片的訪問只能用寄存器間接尋址的方式,且僅有4條指令。第一條/第三條指令以R0或R1為間址寄存器,也可以讀/寫整個(gè)64KB的片外RAM空間。指令執(zhí)行時(shí),高8位地址在P2中,由P2口輸出;低8位地址在R0或R1中,由P0口分時(shí)輸出,并由ALE信號(hào)鎖存在地址鎖存器中。第二條/第四條指令以16位DPTR為間址寄存器讀/寫片外RAM,可以尋址整個(gè)64KB的片外RAM空間。指令執(zhí)行時(shí),在DPH中的高8位地址由P2口輸出,在DPL中的低8位地址由P0口分時(shí)輸出,并由ALE信號(hào)鎖存在地址鎖存器中。上一頁下一頁返回3.4指令系統(tǒng)8.棧操作指令(2條)51單片機(jī)的堆棧設(shè)置在片內(nèi)RAM的低128字節(jié)單元中,一般設(shè)在30H~7FH單元中,增長(zhǎng)方向?yàn)橄蛏闲?,即進(jìn)棧時(shí),棧指針向高地址的方向變化。棧頂指針SP復(fù)位值=07H,一般給SP賦新值,如30H。(1)PUSH(入棧)指令:?jiǎn)卧?,屬于直接尋址。本操作不影響?biāo)志位。(2)POP(出棧)指令:9.交換指令(5條)(1)字節(jié)交換指令(3條):上一頁下一頁返回3.4指令系統(tǒng)將源操作數(shù)所指定的工作寄存器Rn(R0~R7)內(nèi)容、直接尋址或間接尋址的單元內(nèi)容與累加器A中的內(nèi)容互換。其操作如圖3.3所示。(2)半字節(jié)交換指令(1條):這條指令為低位字節(jié)交換指令。該指令將累加器A的低4位與R0或R1所指出的片內(nèi)RAM單元的低4位數(shù)據(jù)相互交換,各自的高4位不變。其操作如圖3.4所示。(3)累加器半字節(jié)交換指令(1條):3.4.2算術(shù)運(yùn)算類指令(24條)算術(shù)運(yùn)算指令可以進(jìn)行加、減、乘、除、加1、減1和BCD碼十進(jìn)制調(diào)整操作。這類多以A為操作數(shù),運(yùn)算結(jié)果再存回A中。這類指令一般都影響標(biāo)志位,見表3.2。上一頁下一頁返回3.4指令系統(tǒng)1.不帶進(jìn)位加法指令(4條)這類指令結(jié)果存放于累加器A中。當(dāng)加法運(yùn)算結(jié)果的第3位或第7位有進(jìn)位時(shí),分別將AC和CY標(biāo)志位置1;否則為0。參照表3.2,這類指令的運(yùn)算結(jié)果影響標(biāo)志位AC、CY、OV和P。當(dāng)然,溢出標(biāo)志位OV只有帶符號(hào)數(shù)運(yùn)算時(shí)才有用。2.帶進(jìn)位加法指令(4條)這組指令與上面ADD指令的區(qū)別是,運(yùn)算時(shí)將進(jìn)位標(biāo)志位CY加到累加器A中,結(jié)果存放在A中,其余的功能和ADD指令相同。本指令常用于多字節(jié)加法。3.十進(jìn)制調(diào)整指令(1條)上一頁下一頁返回3.4指令系統(tǒng)指令功能:本指令用于對(duì)累加器A中剛進(jìn)行的兩個(gè)BCD碼的相加結(jié)果進(jìn)行十進(jìn)制調(diào)整,調(diào)整的結(jié)果仍為BCD碼。使用時(shí)注意以下幾點(diǎn):(1)這條指令只能出現(xiàn)在ADD或ADDC指令之后。(2)不能用DA指令對(duì)BCD碼減法進(jìn)行直接調(diào)整,如需要,可將減法轉(zhuǎn)換成補(bǔ)碼相加,然后再用DA指令調(diào)整。(3)本指令不影響OV位。(4)借助標(biāo)志位可實(shí)現(xiàn)多位BCD碼加法結(jié)果的調(diào)整。4.帶借位減法指令(4條)上一頁下一頁返回3.4指令系統(tǒng)這組指令的功能是把累加器A的內(nèi)容減去進(jìn)位位CY值和第二操作數(shù)的內(nèi)容,將結(jié)果送入累加器A中。54帶借位的減法指令可以實(shí)現(xiàn)多字節(jié)減法運(yùn)算。由于51單片機(jī)指令系統(tǒng)中沒有不帶借位的減法指令,當(dāng)使用此組指令完成不帶借位的減法功能時(shí),只需先將CY清0即可。5.加1指令(5條)這組指令的功能是將操作數(shù)內(nèi)容加1,結(jié)果送回原單元。只有“INCA”影響標(biāo)志P,其余操作都不影響PSW。6.減1指令(4條)上一頁下一頁返回3.4指令系統(tǒng)這組指令的功能是將操作數(shù)內(nèi)容減1,結(jié)果送回原單元。只有“DECA”影響標(biāo)志P,其余操作都不影響CY和PSW。7.乘法指令(1條)指令功能:把累加器A和寄存器B中的2個(gè)8位無符號(hào)數(shù)相乘,乘積的低8位留在A中,高8位存放在B中。當(dāng)乘積大于0FFH、B中內(nèi)容不為0時(shí),OV置1;否則OV清0。8.除法指令(1條)指令功能:累加器A中的8位無符號(hào)整數(shù)除以寄存器B的8位無符號(hào)整數(shù),所得的整數(shù)商存于A,余數(shù)存于B中。當(dāng)存放除數(shù)的B為0時(shí),除法無意義,結(jié)果無法確定,OV=1,否則OV=0。CY總是被清0。上一頁下一頁返回3.4指令系統(tǒng)3.4.3邏輯運(yùn)算與循環(huán)類指令(24條)邏輯運(yùn)算指令包括與、或、異或、清零和取反操作;循環(huán)指令可以完成對(duì)累加器A的循環(huán)左移、循環(huán)右移、帶進(jìn)位的循環(huán)左移和帶進(jìn)位的循環(huán)右移。1.邏輯“與”指令(6條)這組指令中的前4條功能是,將源操作數(shù)的內(nèi)容和累加器A的內(nèi)容按位“相與”,結(jié)果送入A中。后2條指令的功能是,將源操作數(shù)的內(nèi)容和直接地址單元中的內(nèi)容按位“相與”,結(jié)果存入直接地址單元中。2.邏輯“或”指令(6條)上一頁下一頁返回3.4指令系統(tǒng)這組指令中的前4條功能是將源操作數(shù)的內(nèi)容和累加器A的內(nèi)容按位“相或”,結(jié)果送入A中。后2條指令的功能是,將源操作數(shù)的內(nèi)容和直接地址單元中的內(nèi)容按位“相或”,結(jié)果存入直接地址單元中。3.邏輯“異或”指令(6條)這組指令中的前4條功能是將源操作數(shù)的內(nèi)容和累加器A的內(nèi)容按位“相異或”,結(jié)果送入A中。后2條指令的功能是,將源操作數(shù)的內(nèi)容和直接地址單元中的內(nèi)容按位“相異或”,結(jié)果存入直接地址單元中。4.累加器A清0指令(1條)匯編指令格式上一頁下一頁返回3.4指令系統(tǒng)5.累加器A取反指令(1條)6.移位指令(4條)(1)累加器A循環(huán)左移指令:(2)累加器A循環(huán)右移指令:匯編指令格式上一頁下一頁返回3.4指令系統(tǒng)(3)累加器A連同進(jìn)位位循環(huán)左移指令:(4)累加器A連同進(jìn)位位循環(huán)右移指令:上一頁下一頁返回3.4指令系統(tǒng)前兩條指令的功能分別是,將累加器A的內(nèi)容循環(huán)左移或右移一位;后兩條指令的功能分別是,將累加器A的內(nèi)容連同進(jìn)位位CY一起循環(huán)左移或右移一位。此外,我們通常用“RLCA”指令將累加器A的內(nèi)容做乘2運(yùn)算。3.4.4控制轉(zhuǎn)移類指令(17條)程序是順序執(zhí)行的,要改變程序的執(zhí)行順序,應(yīng)通過改變PC的值來實(shí)現(xiàn),這就是控制轉(zhuǎn)移類指令的基本功能。51單片機(jī)控制轉(zhuǎn)移類指令有無條件轉(zhuǎn)移、空操作、條件轉(zhuǎn)移、子程序調(diào)用與返回指令。1.無條件轉(zhuǎn)移指令(4條)不規(guī)定轉(zhuǎn)移條件的程序轉(zhuǎn)移稱為無條件轉(zhuǎn)移,此類指令共有長(zhǎng)轉(zhuǎn)移、短轉(zhuǎn)移、相對(duì)轉(zhuǎn)移和散轉(zhuǎn)移指令4條。(1)長(zhǎng)轉(zhuǎn)移指令(1條):上一頁下一頁返回3.4指令系統(tǒng)這是一條3字節(jié)指令,該指令能把16位目標(biāo)地址(addr16)送入PC,轉(zhuǎn)移范圍可為64KB程序存儲(chǔ)器地址空間的任何單元,因此稱為長(zhǎng)轉(zhuǎn)移。在實(shí)際編程時(shí),通常采用標(biāo)號(hào)地址,如“LJMPLOOP”。轉(zhuǎn)移操作如圖3.5所示。(2)短轉(zhuǎn)移指令(1條):上一頁下一頁返回3.4指令系統(tǒng)由于轉(zhuǎn)移的地址是11位,而11位的地址范圍是在2KB范圍內(nèi)(211=2K),故AJMP指令的轉(zhuǎn)移范圍是AJMP下一條指令第一個(gè)字節(jié)開始的2KB范圍內(nèi)。轉(zhuǎn)移操作如圖3.6所示。與LJMP指令類似,AJMP指令后面最好也用標(biāo)號(hào)地址,但必須保證標(biāo)號(hào)所處的地址與AJMP指令之間不超過2KB的尋址范圍。(3)相對(duì)轉(zhuǎn)移(短轉(zhuǎn)移)指令(1條):上一頁下一頁返回3.4指令系統(tǒng)這是一條2字節(jié)指令,其功能是先計(jì)算目的地址,并按計(jì)算出的目的地址實(shí)現(xiàn)程序的相對(duì)轉(zhuǎn)移。計(jì)算公式:目的地址=(PC)+2+rel(見3.3節(jié)尋址方式中的第6種相對(duì)尋址)因?yàn)楸局噶顬殡p字節(jié)指令,執(zhí)行時(shí)先將PC內(nèi)容加2,再加相對(duì)地址rel,就得到了轉(zhuǎn)移目標(biāo)地址。其中rel是偏移量,本身是一個(gè)帶符號(hào)的8位二進(jìn)制數(shù)的補(bǔ)碼表示形式,取值范圍為-128~+127(00H~7FH對(duì)應(yīng)表示0~+127,80H~FFH對(duì)應(yīng)表示-128~-1)。負(fù)數(shù)表示反向轉(zhuǎn)移,正數(shù)表示正向轉(zhuǎn)移。上一頁下一頁返回3.4指令系統(tǒng)(4)散轉(zhuǎn)移指令(1條):本指令以DPTR的內(nèi)容為基址,以A的內(nèi)容為變址,而將這兩者的和形成目的地址,送入PC實(shí)現(xiàn)程序的轉(zhuǎn)移。即:因此,只要把DPTR的值確定,而對(duì)A賦以不同的值,即可實(shí)現(xiàn)程序的多分支轉(zhuǎn)移。上一頁下一頁返回3.4指令系統(tǒng)當(dāng)(A)=00H時(shí),程序?qū)⑥D(zhuǎn)到CS0處執(zhí)行;當(dāng)(A)=01H時(shí),程序?qū)⑥D(zhuǎn)到CS1處執(zhí)行;其余類推。由于AJMP是雙字節(jié)指令,散轉(zhuǎn)前A中鍵值應(yīng)先乘以2。2.空操作指令(1條)這條指令不產(chǎn)生任何操作,只是將PC的內(nèi)容加1,不影響其他寄存器和標(biāo)志位。NOP指令常用來產(chǎn)生一個(gè)機(jī)器周期的延遲。3.條件轉(zhuǎn)移指令(8條)上一頁下一頁返回3.4指令系統(tǒng)所謂條件轉(zhuǎn)移是指程序的轉(zhuǎn)移是有條件的。若條件滿足,則程序轉(zhuǎn)向指定的目的地址(目的地址是以下一條指令的起始地址為中心的-128~+127共256字節(jié)范圍)去執(zhí)行,否則仍順序執(zhí)行。(1)判零轉(zhuǎn)移指令(2條):上一頁下一頁返回3.4指令系統(tǒng)(2)比較轉(zhuǎn)移指令(4條):上一頁下一頁返回3.4指令系統(tǒng)(3)循環(huán)轉(zhuǎn)移指令(2條):上一頁下一頁返回3.4指令系統(tǒng)4.調(diào)用和返回指令(4條)在一個(gè)程序中經(jīng)常遇到反復(fù)執(zhí)行某段相同的程序,如果把相同的程序編寫為一個(gè)子程序,就可以通過主程序來調(diào)用它。這樣不但減少了編寫程序的工作量,而且也縮短了程序的長(zhǎng)度。(1)長(zhǎng)調(diào)用指令(1條):上一頁下一頁返回3.4指令系統(tǒng)(2)短調(diào)用指令(1條):(3)返回指令(2條):上一頁下一頁返回3.4指令系統(tǒng)3.4.5位操作類指令(17條)位操作指令的操作數(shù)是字節(jié)中的某一位,故又稱為布爾操作。位指令執(zhí)行時(shí),以進(jìn)位標(biāo)志CY作為累加器,但用字符“C”表示。位地址有4種表示形式,以PSW中的第7位,CY為例,說明如下:上一頁下一頁返回3.4指令系統(tǒng)①直接地址方式,如0D7H;②點(diǎn)操作符方式,如D0H.7、PSW.7;③位名稱方式,如CY;④偽指令定義方式,如C_FLAGBITCY。經(jīng)定義后,允許指令中用C_FLAG代替CY。1.位數(shù)據(jù)傳送指令(2條)上一頁下一頁返回3.4指令系統(tǒng)2.位值設(shè)置指令(6條)(1)位清0指令(2條):(2)位置1指令(2條):上一頁下一頁返回3.4指令系統(tǒng)(3)位取反指令(2條):3.位邏輯運(yùn)算指令(4條)(1)位邏輯“與”指令(2條):上一頁下一頁返回3.4指令系統(tǒng)(2)位邏輯“或”指令(2條):4.位條件轉(zhuǎn)移類指令(5條)(1)判布爾累加器C轉(zhuǎn)移指令(2條):上一頁下一頁返回3.4指令系統(tǒng)(2)判位變量轉(zhuǎn)移指令(2條):上一頁下一頁返回3.4指令系統(tǒng)。(3)判位變量并清0轉(zhuǎn)移指令(1條):上一頁下一頁返回3.4指令系統(tǒng)本條指令對(duì)指定的二進(jìn)制位進(jìn)行檢測(cè),若該位是“1”,則將其清0,同時(shí)PC轉(zhuǎn)移到指定的目的地址執(zhí)行程序;否則,順序執(zhí)行。本指令常在定時(shí)/計(jì)數(shù)器查詢方式中使用。上一頁返回3.5偽指令1.定位偽指令(ORG)格式:[標(biāo)號(hào):]ORG16位地址表達(dá)式功能:說明后面程序緊接程序段或數(shù)據(jù)段存放的起始地址。2.定義字節(jié)數(shù)據(jù)偽指令(DB)格式:[標(biāo)號(hào):]DB字節(jié)數(shù)據(jù)表功能:從標(biāo)號(hào)指定的地址單元開始,在程序存儲(chǔ)器中定義字節(jié)數(shù)據(jù)。字節(jié)數(shù)據(jù)表可以是一或多個(gè)字節(jié)數(shù)據(jù)、括在單引號(hào)(′

′)中的ASCII字符串或表達(dá)式。將字節(jié)數(shù)據(jù)表中的數(shù)據(jù)從左到右依次存放在指定地址單元。3.定義字?jǐn)?shù)據(jù)偽指令(DW)格式:[標(biāo)號(hào):]DW字?jǐn)?shù)據(jù)表下一頁返回3.5偽指令功能:從標(biāo)號(hào)指定的地址單元開始,在程序存儲(chǔ)器中定義16位的字?jǐn)?shù)據(jù)。與DB類似,但DW定義的數(shù)據(jù)項(xiàng)為字,包括兩個(gè)字節(jié),高位字節(jié)先存放,低位字節(jié)后存放。4.定義空間偽指令(DS)格式:[標(biāo)號(hào):]DS表達(dá)式功能:從指定的地址開始,在程序存儲(chǔ)器中保留表達(dá)式所規(guī)定的存儲(chǔ)單元,作備用空間。5.賦值偽指令(EQU)格式:符號(hào)名EQU數(shù)據(jù)或匯編符號(hào)上一頁下一頁返回3.5偽指令功能:將一個(gè)數(shù)值或特定的匯編符號(hào)賦值給指定的符號(hào)名。符號(hào)名用EQU偽指令賦值后,在以后的程序中可以方便地引用該符號(hào)名,每個(gè)出現(xiàn)該符號(hào)名的地方均用EQU定義的數(shù)據(jù)或匯編符號(hào)來取代。符號(hào)名必須先定義后使用,因此該語句通常放在源程序的開頭部分。符號(hào)名可以代表地址、常數(shù)、字符串、寄存器名或位名等,符號(hào)名后不需要接冒號(hào)。6.數(shù)據(jù)賦值偽指令(DATA)格式:符號(hào)名DATA表達(dá)式功能:將表達(dá)式的值賦給指定的符號(hào)名,只能定義單字節(jié)數(shù)據(jù),與EQU類似,但有以下差別:(1)EQU必須先定義后使用,DATA可以先使用后定義。上一頁下一頁返回3.5偽指令(2)EQU可以把一個(gè)特定的匯編符號(hào)賦給指定的符號(hào)名,而DATA只能把數(shù)據(jù)賦給符號(hào)名。(3)DATA可以把一個(gè)表達(dá)式的值賦給符號(hào)名,其中表達(dá)式應(yīng)該是可求值的。7.位地址符號(hào)定義偽指令(BIT)格式:符號(hào)名BIT位地址表達(dá)式功能:將位地址賦給指定的符號(hào)名。位地址表達(dá)式可以是絕對(duì)地址,也可以是符號(hào)地址。上一頁返回3.6匯編與匯編程序設(shè)計(jì)3.6.1源程序的匯編將匯編語言源程序轉(zhuǎn)換為用機(jī)器碼表示的目標(biāo)程序,這個(gè)轉(zhuǎn)換過程稱為匯編,能完成該轉(zhuǎn)換功能的程序稱為匯編程序。匯編常用的方法有兩種:一種是手工匯編,另一種是機(jī)器匯編。對(duì)于手工匯編,是把程序用助記符指令寫出后,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論