![汽車單片機原理及應(yīng)用---第四章-指令系統(tǒng)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/aab3238a-c22b-4ead-8cfe-6dab37b95409/aab3238a-c22b-4ead-8cfe-6dab37b954091.gif)
![汽車單片機原理及應(yīng)用---第四章-指令系統(tǒng)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/aab3238a-c22b-4ead-8cfe-6dab37b95409/aab3238a-c22b-4ead-8cfe-6dab37b954092.gif)
![汽車單片機原理及應(yīng)用---第四章-指令系統(tǒng)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/aab3238a-c22b-4ead-8cfe-6dab37b95409/aab3238a-c22b-4ead-8cfe-6dab37b954093.gif)
![汽車單片機原理及應(yīng)用---第四章-指令系統(tǒng)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/aab3238a-c22b-4ead-8cfe-6dab37b95409/aab3238a-c22b-4ead-8cfe-6dab37b954094.gif)
![汽車單片機原理及應(yīng)用---第四章-指令系統(tǒng)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/aab3238a-c22b-4ead-8cfe-6dab37b95409/aab3238a-c22b-4ead-8cfe-6dab37b954095.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四講第四講指令系統(tǒng)指令系統(tǒng)主要內(nèi)容:主要內(nèi)容:1.尋址方式2.指令系統(tǒng)3.程序設(shè)計指令地址尋址指令地址尋址相對尋址:相對尋址:將一條指令的8 位立即數(shù)與下一條指令的起始地址相加,結(jié)果賦給程序計數(shù)器(PC),然后轉(zhuǎn)向相加結(jié)果指向的地址立即數(shù)是帶符號位的補碼(128 to +127),相對轉(zhuǎn)移值是從下一條指令的起始地址開始,范圍在128 與+127之間執(zhí)行“BR $addr16”指令或條件轉(zhuǎn)移指令立即尋址:立即尋址:將指令中的立即數(shù)賦給程序計數(shù)器(PC),然后轉(zhuǎn)向該地址如“CALL !addr16”、“BR !addr16”或“CALLF !addr11” 指令CALL !addr16 和BR
2、!addr16指令的轉(zhuǎn)移地址范圍是所有內(nèi)存空間。CALLF !addr11指令的轉(zhuǎn)移地址范圍在0800H與0FFFH之間CALL !addr16, BR !addr16 指令指令地址尋址指令地址尋址CALLF !addr11 指令指令地址尋址指令地址尋址表間接尋址:表間接尋址:通過指令碼低5位的立即數(shù)(從第1位到第5位),訪問特定存儲單元的表的內(nèi)容(轉(zhuǎn)移目的地址),并將表的內(nèi)容賦給程序計數(shù)器(PC),然后轉(zhuǎn)向該地址在執(zhí)行CALLT addr5指令時,進行表間接尋址。執(zhí)行該指令時,根據(jù)存儲在內(nèi)存表中40H至7FH之間的地址,能夠跳轉(zhuǎn)到整個內(nèi)存空間的任意位置指令地址尋址指令地址尋址寄存器尋址寄存器
3、尋址:將一條指令的寄存器對(AX)的內(nèi)容賦值給程序計數(shù)器(PC),然后轉(zhuǎn)向該地址“BR AX”指令指令地址尋址指令地址尋址指令執(zhí)行期間寄存器尋址和存儲器尋址所進行的操作隱含尋址隱含尋址:規(guī)定某些寄存器地址是作為通用寄存器中的累加器(A 和AX)使用操作數(shù)地址尋址操作數(shù)地址尋址寄存器尋址:寄存器尋址:將通用寄存器作為操作數(shù)進行訪問,并由寄存器組選擇標(biāo)志(RBS0 和RBS1)和指令中的寄存器標(biāo)識碼(Rn 和RPn)確定要訪問的通用寄存器,如果使用8位寄存器,則指令碼中有3位用來表示一個8位寄存器r 和rp可用絕對名稱(R0 到R7 以及RP0 到RP3)和功能名稱(X, A, C, B, E,
4、D, L, H, AX, BC, DE以及HL)來描述操作數(shù)格式MOV A, C; 選擇C寄存器作為r操作數(shù)地址尋址操作數(shù)地址尋址直接尋址直接尋址:根據(jù)指令中的立即數(shù)直接尋址操作數(shù)格式MOV A, !FE00H; 將!addr16設(shè)置為FE00H操作數(shù)地址尋址操作數(shù)地址尋址短直接尋址短直接尋址:指令中的8位立即數(shù)對固定區(qū)域中的內(nèi)存進行直接尋址,尋址范圍是FE20H到FF1FH總共256字節(jié)的內(nèi)存區(qū)域內(nèi)部高速RAM和特殊功能寄存器(SFR) FF00H到FF1FH的區(qū)域主要存放程序中經(jīng)常訪問的端口、計數(shù)器的比較寄存器、計數(shù)器的接收寄存器如果8位立即數(shù)是在20H 和FFH之間,則將一個有效地址的第
5、8位設(shè)置為0;如果8位立即數(shù)是在00H與1FH之間,則一個有效地址的第8位設(shè)置為1操作數(shù)格式MOV FE30H, #50H; saddr的值為FE30H,立即數(shù)為50H操作數(shù)地址尋址操作數(shù)地址尋址特殊功能寄存器特殊功能寄存器(SFR)尋址尋址:指令中的8位立即數(shù)對內(nèi)存中的特殊功能寄存器(SFR)區(qū)域進行尋址,尋址區(qū)間為FF00H到FFCFH以及FFE0H到FFFFH區(qū)間共240字節(jié)操作數(shù)格式MOV PM0, A; 選擇PM0作為sfr操作數(shù)地址尋址操作數(shù)地址尋址寄存器間接尋址寄存器間接尋址:對操作數(shù)寄存器對的內(nèi)容進行尋址。由寄存器組選擇標(biāo)志(RBS0和RBS1)和指令碼中的寄存器對說明,定義需
6、要訪問的寄存器對【操作數(shù)格式】MOV A, DE; 選擇DE寄存器對作為操作數(shù)操作數(shù)地址尋址操作數(shù)地址尋址基址尋址基址尋址:將8位立即數(shù)加到HL寄存器對中, HL寄存器對作為基地址寄存器,根據(jù)相加結(jié)果尋址。需要訪問的HL寄存器對屬于由寄存器組選擇標(biāo)志(RBS0和RBS1)確定的寄存器組。通過將偏移量擴展為16位正數(shù),來完成加法操作,進位忽略。該尋址方式可對整個內(nèi)存空間進行【操作數(shù)格式】MOV A, HL+10H; byte的值為10H操作數(shù)地址尋址操作數(shù)地址尋址基址變址尋址基址變址尋址:將B或C寄存器的內(nèi)容加到HL寄存器中,HL寄存器作為基地址寄存器,并根據(jù)相加結(jié)果尋址。需要訪問的HL、B和C
7、寄存器屬于由寄存器組選擇標(biāo)志(RBS0和RBS1)確定的寄存器。通過將B或C寄存器擴展為一個16位的正數(shù)來完成加法運算,進位忽略。該尋址方式可對整個內(nèi)存空間進行操作數(shù)格式MOV A, HL+B操作數(shù)地址尋址操作數(shù)地址尋址堆棧尋址堆棧尋址:根據(jù)堆棧指針(SP)的內(nèi)容對堆棧區(qū)域進行間接尋址。當(dāng)執(zhí)行PUSH, POP, 子程序調(diào)用和RETURN指令時,或者根據(jù)中斷請求產(chǎn)生對寄存器進行設(shè)置或復(fù)位時,將自動采用這種尋址方式。該方式僅對內(nèi)部高速RAM區(qū)域進行尋址操作數(shù)地址尋址操作數(shù)地址尋址指令系統(tǒng)按照功能分指令系統(tǒng)按照功能分 數(shù)據(jù)傳送類指令 算術(shù)運算類指令 邏輯運算類指令 循環(huán)操作類指令 無條件轉(zhuǎn)移類指令
8、 條件轉(zhuǎn)移類指令 位操作類指令 調(diào)用及返回類指令 CPU 控制類指令指令系統(tǒng)指令系統(tǒng)在每種指令的“操作數(shù)”欄列出操作數(shù)。如果有兩種或兩種以上的標(biāo)識方法,可選其中之一大寫字母和符號#、!、$ 、 是關(guān)鍵字,必須按其原樣書寫 #: 立即數(shù)標(biāo)識 !: 絕對地址標(biāo)識 $: 相對地址標(biāo)識 :間接地址標(biāo)識立即數(shù)用來描述一個數(shù)值型數(shù)據(jù)或標(biāo)志。當(dāng)使用標(biāo)志時,注意必須加上符號#, !, $, 和 。操作數(shù)寄存器標(biāo)識符r 和rp、功能名稱(X, A, C, etc.)或絕對名稱(R0, R1,R2 等)都可用于標(biāo)識操作數(shù)標(biāo)識符和標(biāo)識方法操作數(shù)標(biāo)識符和標(biāo)識方法操作數(shù)標(biāo)識符和標(biāo)識方法操作數(shù)標(biāo)識符和標(biāo)識方法數(shù)據(jù)傳送類指
9、令數(shù)據(jù)傳送類指令MOV,MOVW,XCH,XCHW,PUSH,POPMOV:8位數(shù)據(jù)操作指令; MOVW:16位數(shù)據(jù)操作指令指令操作不影響標(biāo)志位數(shù)據(jù)交換指令數(shù)據(jù)交換指令XCH:8位數(shù)據(jù)操作指令, XCHW:16位數(shù)據(jù)操作指令指令操作不影響標(biāo)志位堆棧操作指令堆棧操作指令PUSH,POP:16位數(shù)據(jù)操作指令指令系統(tǒng)指令系統(tǒng)算術(shù)運算指令算術(shù)運算指令A(yù)DD,ADDC,ADDW,SUB,SUBC,SUBW,CMP,CMPW,MULU,DIVUW,INC,INCW,DEC,DECW,ADJBA,ADJBS乘法指令乘法指令:MULU:將A 寄存器的內(nèi)容與源操作數(shù)進行無符號乘法運算,結(jié)果存于AX 寄存器中除法
10、指令除法指令:DIVUW:目標(biāo)操作數(shù)的內(nèi)容除以AX寄存器的內(nèi)容,商和余數(shù)分別存放在AX寄存器和目標(biāo)操作數(shù)中。除法運算是將AX寄存器內(nèi)容和目標(biāo)操作數(shù)內(nèi)容看成無符號數(shù)。但當(dāng)目標(biāo)操作數(shù)為0時,則將X寄存器的內(nèi)容存于C寄存器中,并將AX的內(nèi)容設(shè)置為0FFFFH指令系統(tǒng)指令系統(tǒng)比較指令比較指令 CMP:8位操作,修改Z、AC和CY標(biāo)志位 CMPW:16位操作,修改Z和CY標(biāo)志增增1 1/減減1 1指令指令 INC、 DEC :8位操作。目標(biāo)操作數(shù)增加1/減1 INCW、 DECW :目標(biāo)操作數(shù)加1 /減1指令系統(tǒng)指令系統(tǒng)BCD碼碼 調(diào)整指令調(diào)整指令 ADJBA:將A寄存器、CY標(biāo)志以及AC標(biāo)志的內(nèi)容按十
11、進制進行調(diào)整。僅在進行BCD數(shù)據(jù)相加,且相加結(jié)果在A寄存器中時,該指令有效,影響Z標(biāo)志指令系統(tǒng)指令系統(tǒng) ADJBS:將A 寄存器、CY 標(biāo)志以及AC 標(biāo)志的內(nèi)容按十進制進行調(diào)整。僅在進行BCD數(shù)據(jù)相減,且相減結(jié)果存在A 寄存器中時,有意義。如果調(diào)整結(jié)果的A 寄存器內(nèi)容為0,則將Z 標(biāo)志設(shè)置為1,否則將Z 標(biāo)志清零邏輯運算指令邏輯運算指令指令為8 位操作指令,AND,OR,XOR指令系統(tǒng)指令系統(tǒng)移位操作指令移位操作指令指令是8 位操作指令,ROR,ROL,RORC,ROLC,ROR4和ROL4ROR ROLRORC ROLC指令系統(tǒng)指令系統(tǒng)ROL4ROR4:A寄存器的低4位和目標(biāo)操作數(shù)的兩個數(shù)位
12、(4位數(shù)據(jù))向右循環(huán)移位。A寄存器的高4位保持不變ROR4ROR4HL無條件轉(zhuǎn)移指令無條件轉(zhuǎn)移指令BR:無條件轉(zhuǎn)移指令。將目標(biāo)地址操作數(shù)傳送到PC 中,并轉(zhuǎn)向該地址BR AX ;將AX寄存器的內(nèi)容作為轉(zhuǎn)移地址條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令條件轉(zhuǎn)移指令包括:BC,BNC,BZ,BNZ,BT,BF,BTCLR,DBNZBC:當(dāng)CY = 1時,程序轉(zhuǎn)移到操作數(shù)所規(guī)定的地址處; BNC:當(dāng)CY = 0時,程序轉(zhuǎn)移到操作數(shù)所規(guī)定的地址處BZ:當(dāng)Z = 1時,程序轉(zhuǎn)移到操作數(shù)所規(guī)定的地址處;BNZ:當(dāng)Z = 0時,程序轉(zhuǎn)移到操作數(shù)所規(guī)定的地址處指令系統(tǒng)指令系統(tǒng) BT:如果第一操作數(shù)(位)的內(nèi)容為1,則程序轉(zhuǎn)移到
13、第二操作數(shù)($addr16)所規(guī)定的地址處 BF:如果第一操作數(shù)(位)的內(nèi)容為零,則程序轉(zhuǎn)移到第二操作數(shù)($addr16)所規(guī)定的地址處 BTCLR:如果第一操作數(shù)(位)的內(nèi)容為1,則將它們清零,并轉(zhuǎn)移到第二操作數(shù)($addr16)所規(guī)定的地址處。如果第一操作數(shù)(位)是PSW.bit,則將相應(yīng)標(biāo)志位清零 DBNZ:第一操作數(shù)所規(guī)定的目標(biāo)操作數(shù)減1,相減結(jié)果存于目標(biāo)操作數(shù)中。如果相減結(jié)果不等于0,則程序轉(zhuǎn)移到第二操作數(shù)($addr16)所指的地址處。如果相減結(jié)果等于0,直接執(zhí)行后續(xù)指令指令系統(tǒng)指令系統(tǒng)位操作指令位操作指令位操作指令包括:MOV1,AND1,OR1,XOR1,SET1,CLR1,N
14、OT1MOV1:將源操作數(shù)的位數(shù)據(jù)傳送給目標(biāo)操作數(shù)AND1:CY標(biāo)志和源操作數(shù)進行位邏輯與運算,結(jié)果存于CY標(biāo)志中OR1: CY標(biāo)志和源操作數(shù)進行位邏輯或運算,結(jié)果存于CY標(biāo)志中XOR1:CY標(biāo)志和源操作數(shù)進行位邏輯異或運算,結(jié)果存于CY標(biāo)志中SET1:將目標(biāo)操作數(shù)設(shè)置為1CLR1:將目標(biāo)操作數(shù)清零NOT1:CY標(biāo)志的內(nèi)容取反指令系統(tǒng)指令系統(tǒng)示例示例MOV1 P3.4, CY ;將CY的內(nèi)容傳送到端口3的第4位AND1 CY, FE7FH.3 ;FE7FH的第3位與CY進行邏輯與OR1 CY, P2.5 ;端口2的第5位與CY進行邏輯或XOR1 CY, A.7 ;A寄存器的第7位與CY進行異或
15、SET1 FE55H.1 ;將FE55H的第1位設(shè)置為1CLR1 P3.7 ;將端口3的第7位清零NOT1 CY ;CY標(biāo)志的內(nèi)容取反指令系統(tǒng)指令系統(tǒng)調(diào)用和返回指令調(diào)用和返回指令包括:CALL,CALLF,CALLT,BRK,RET,RETI,TETBCALL:子程序調(diào)用指令,采用16位絕對尋址或寄存器間接尋址 CALLF:程序調(diào)用指令,調(diào)用的地址范圍為0800H 至0FFFHCALLT:查找調(diào)用表,轉(zhuǎn)到調(diào)用表字?jǐn)?shù)據(jù)所指示的地址(地址的高8位固定為00000000B,隨后5位由addr5規(guī)定)BRK:軟件中斷指令。將PSW和下一條指令地址(PC+1)存于堆棧中,然后將IE標(biāo)志清零,屏蔽向量中斷
16、。將存儲的數(shù)據(jù)轉(zhuǎn)向由向量地址(003EH)處的字?jǐn)?shù)據(jù)所指的地址。RETB指令用于從該指令產(chǎn)生的軟件向量中斷處返回 RET:返回指令,是從CALL, CALLF和CALLT指令所執(zhí)行的子程序調(diào)用處返回指令系統(tǒng)指令系統(tǒng)RETI:向量中斷返回指令。將存于堆棧的字?jǐn)?shù)據(jù)返回到PC和PSW中,程序從中斷服務(wù)子程序處返回。不能用于BRK指令的返回。執(zhí)行RETI指令可將NMIS標(biāo)志清零RETB:BRK指令產(chǎn)生的軟中斷返回指令指令系統(tǒng)指令系統(tǒng)CPU 控制指令控制指令包括:SEL RBn,NOP,EI,DI,HALT,STOP SEL RBn:由操作數(shù)(RBn)規(guī)定的寄存器組在下一條指令和后續(xù)指令中使用。RBn的
17、范圍從RB0到RB3 NOP:僅僅消耗時間,不作任何處理 EI:開中 DI:關(guān)中 HALT:設(shè)置HALT模式 STOP:設(shè)置STOP 模式指令系統(tǒng)指令系統(tǒng)匯編程序基本結(jié)構(gòu)匯編程序基本結(jié)構(gòu) 78K系列微處理器使用RA78K0(匯編包)將源程序轉(zhuǎn)換為機器語言 RA78K0包括7個程序:結(jié)構(gòu)化匯編預(yù)處理程序、匯編程序、連接程序、目標(biāo)代碼轉(zhuǎn)換程序、庫、列表轉(zhuǎn)換程序和項目管理器PMplus 項目管理器PM plus執(zhí)行一系列操作:編輯、編譯/裝配、連接和調(diào)試等 基于模塊的設(shè)計方法通常將一個源程序分為多個模塊,每個源程序模塊應(yīng)該按照有關(guān)格式編寫,才可以傳送給匯編程序,匯編成目標(biāo)代碼1. 模塊頭(可以省略)
18、2. 模塊體3. 模塊尾匯編語言程序設(shè)計匯編語言程序設(shè)計模塊頭模塊頭:可以使用的控制語句如下表匯編語言程序設(shè)計匯編語言程序設(shè)計模塊體模塊體:可以使用所有其他的偽指令、控制命令及指令系統(tǒng)中的所有指令。模塊體必須用段來描述,可以使用下列4 種段描述模塊體:代碼段必須用CSEG 定義數(shù)據(jù)段必須用DSEG 定義位段必須用BSEG 定義絕對段用ORG 定義,或者用AT 指令重定位使用CSEG, DSEG, 或BSEG 定義的段數(shù)據(jù)段必須在代碼段之前定義模塊尾模塊尾:使用END 偽指令描述模塊的結(jié)束匯編語句的格式匯編語句的格式符號和助記符之間必須根據(jù)助記符的種類選用冒號、1 個或幾個空格或制表符隔開助記符
19、和操作數(shù)之間必須用1 或幾個空格或制表符隔開,有些指令沒有操作數(shù)注釋必須用分號隔開,注釋可有可無每行必須用CR定界匯編語言程序設(shè)計匯編語言程序設(shè)計符號的類型符號的類型CODE01 CSEG ; “CODE01”是一個段名VAR01 EQU 10H ; “VAR01” 是一個(常量的)名字LAB01: DW 0 ; “LAB01” 是一個標(biāo)號NAME SAMPLE ; “SAMPLE” 是一個模塊名MAC1 MACRO ; “MAC1”是一個宏名匯編語言程序設(shè)計匯編語言程序設(shè)計助記符助記符助記符:可以是指令、偽指令或宏引用操作數(shù)操作數(shù)操作數(shù)是指令、偽指令或宏引用操作的數(shù)據(jù)根據(jù)不同的指令、偽指令或
20、宏引用,操作數(shù)區(qū)可以有1 個或2 個操作數(shù),也可以沒有操作數(shù),如果有兩個操作數(shù)時,用逗號隔開操作數(shù)主要類型操作數(shù)主要類型 常數(shù)(數(shù)據(jù)和字符串常數(shù))、 字符串、 寄存器名、 特殊字符($, #, !, and )、段定義偽指令的重定位屬性名、符號、表達(dá)式和位操作類型的操作數(shù)匯編語言程序設(shè)計匯編語言程序設(shè)計二進制(后綴B或Y)、八進制(后綴O或Q)、十進制(后綴D或T,或沒有后綴)、十六進制(后綴H )、ASCII 碼 (使用一對單引號,例如a代表65H)特殊字符特殊字符$ :表示指令的地址(多字節(jié)指令時代表這個地址的第一個字節(jié));是一個分支指令的相對尋址模式! :表示一個分支指令的絕對尋址模式#
21、 :表示立即數(shù) :表示間接尋址表達(dá)式和運算符表達(dá)式和運算符 HIGH 運算符:返回該數(shù)據(jù)的高8位數(shù)值 LOW 運算符:返回該數(shù)據(jù)的低8位數(shù)值MOV A,#HIGH 1234H MOV A,#12H匯編語言程序設(shè)計匯編語言程序設(shè)計DATAPOS 運算符:返回一個位符號的地址部分(字節(jié)地址)SYM EQU 0FE68H.6 ;用EQU定義“SYM”0FE68H.6MOV A,!DATAPOS SYM MOV A, !0FE68HBITPOS 運算符:返回一個位符號的位部分(位位置)SYM EQU 0FE68H.6CLR1 HL.BITPOS SYM CLR1 HL.6匯編語言程序設(shè)計匯編語言程序設(shè)
22、計運算符的優(yōu)先順序運算符的優(yōu)先順序匯編語言程序設(shè)計匯編語言程序設(shè)計匯編偽指令匯編偽指令偽指令不生成機器代碼,主要作用是: 便于描述匯編源程序、 初始化存儲區(qū)及預(yù)留存儲區(qū)、 為匯編程序及連接器進行特定處理時提供所需要的信息匯編語言程序設(shè)計匯編語言程序設(shè)計段定義方法及對應(yīng)的存儲區(qū)段定義方法及對應(yīng)的存儲區(qū)代碼段定位偽指令代碼段定位偽指令CALLT0:段的起始地址是偶地址,且位于0040H007FH。為代碼段指定被1字節(jié)指令CALLT 調(diào)用的子程序入口地址FIXED:段的起始地址位于0800H0FFFH。為代碼段指定被2 字節(jié)指令CALLF 調(diào)用的子程序的入口地址AT:指定一個段的絕對地址。地址范圍為
23、0000HFEFFHUNIT:定義段地址可以位于0080HFA7FH 的任何位置匯編語言程序設(shè)計匯編語言程序設(shè)計UNITP:段地址可在0080HFA7FH 的任何位置,并且起始地址為偶數(shù)地址IXRAM:定義段地址位于內(nèi)部擴展RAMSECUR_ID:為專用的安全I(xiàn)D 指定段地址為0085H008EH。這個位置只能用于存放安全I(xiàn)D數(shù)據(jù)段常用定位偽指令數(shù)據(jù)段常用定位偽指令SADDR:段地址位于saddr(0FE20H0FEFFH)區(qū)SADDRP:段地址位于saddr(0FE20H0FEFFH)區(qū),起始地址為偶數(shù)地址。使用SADDR和SADDRP定義變量時,變量的定位范圍不可以超出這個固定的區(qū)域,否則
24、將產(chǎn)生溢出錯誤AT:指定一個絕對地址UNIT:缺省設(shè)置。指定段地址可以位于RAM的任何位置UNITP: 段地址可以位于RAM的任何位置,始地址為偶數(shù)地址IHRAM:段地址位于高速RAM匯編語言程序設(shè)計匯編語言程序設(shè)計LRAM:段地址位于低速RAMDSPRAM:段地址位于顯示RAMIXRAM:段地址位于內(nèi)部擴展RAM位單元段常用定位偽指令位單元段常用定位偽指令A(yù)T:用一個絕對地址的第0 位指定一個位單元段的起始地址。地址范圍0FE20H0FEFFHUNIT:缺省設(shè)置。段地址位于0FE20H0FEFFH 的任何位置ORG 偽指令:把表達(dá)式確定的值賦給程序計數(shù)器,遇到一個段定義偽指令(CSEG, D
25、SEG, BSEG, 或ORG)或END 偽指令為止格式:符號 ORG 表達(dá)式;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計EQU 偽指令: 把表達(dá)式的值賦給前面的名字。該名字不可以在程序的其他位置再次定義。表達(dá)式中使用的符號必須是已經(jīng)定義過的符號格式:名字EQU 表達(dá)式;注釋SET 偽指令:把表達(dá)式的值賦給前面的名字。該名字可以在程序的其他位置以同樣方法再次定義。由該表達(dá)式確定的名字?jǐn)?shù)值在再次被定義前都是有效的。表達(dá)式中使用的符號必須是已經(jīng)定義過的符號格式:名字SET 絕對表達(dá)式;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計存儲區(qū)初始化及預(yù)留定義偽指令存儲區(qū)初始化及預(yù)留定義偽指令DB 偽指令:初始化一個字節(jié)
26、區(qū)域格式:標(biāo)號: DB (大小) 初始值,. ;注釋DW 偽指令:初始化一個字區(qū)域格式:標(biāo)號: DW (大小) 初始值,. ;注釋DS 偽指令:預(yù)留字節(jié)存儲區(qū),預(yù)留數(shù)量由絕對表達(dá)式確定格式:標(biāo)號: DS 絕對表達(dá)式;注釋DBIT 偽指令:在位單元段預(yù)留一個位存儲單元格式:名字 DBIT ;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計目標(biāo)模塊名字聲明偽指令目標(biāo)模塊名字聲明偽指令NAME 偽指令:為目標(biāo)模塊分配一個由匯編程序輸出的目標(biāo)模塊名格式:標(biāo)號: NAME 目標(biāo)模塊名;注釋自動分支指令選擇偽指令自動分支指令選擇偽指令BR 偽指令:根據(jù)分支的目的地址范圍自動地選擇2 字節(jié)或3 字節(jié)的分支指令,并產(chǎn)生相
27、應(yīng)的目標(biāo)代碼格式:標(biāo)號: BR 表達(dá)式;注釋匯編結(jié)束偽指令匯編結(jié)束偽指令END 偽指令:用于結(jié)束源程序模塊的結(jié)束格式: END ;注釋宏偽指令宏偽指令宏的基本功能是使用一個名字實現(xiàn)子程序的功能??梢员苊獯a重復(fù)MCRO 偽指令格式:宏名: MACRO 形參, ;注釋宏體ENDM ;注釋LOCAL 偽指令:說明定義的符號是只在宏體中有效的本地符號格式:LOCAL 符號名, ;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計REPT 偽指令:重復(fù)執(zhí)行由REPT-ENDM定義的一串指令,重復(fù)的次數(shù)由表達(dá)式的值確定格式:標(biāo)號: REPT 絕對表達(dá)式;注釋ENDM ;注釋IRP(不定次數(shù)的重復(fù)) 偽指令:重復(fù)執(zhí)行由
28、IRP-ENDM定義的一串指令,當(dāng)用實參替換形參時,重復(fù)的次數(shù)由實參的值確定格式:標(biāo)號: IRP 形參, ;注釋ENDM ;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計EXITM(退出宏) 偽指令:用于從MACRO偽指令定義的宏體和REPT-ENDM 或IRP-ENDM定義的重復(fù)模塊中強制退出格式:標(biāo)號: EXITM ;注釋ENDM(宏結(jié)束) 偽指令:用于結(jié)束宏定義的指令執(zhí)行格式: ENDM ;注釋匯編語言程序設(shè)計匯編語言程序設(shè)計匯編程序結(jié)構(gòu)舉例匯編程序結(jié)構(gòu)舉例:十六進制- ASCII碼的代碼轉(zhuǎn)換程序?qū)懢彌_區(qū)的程序設(shè)計寫緩沖區(qū)的程序設(shè)計DISP_byte_write1:MOVW HL,#DISP_buffer ;緩沖區(qū)首地址入HLMOV A,!M_LCD_WORK ;要寫入的數(shù)據(jù)低位入AMOV HL+B,A ;寫入INC B ;偏移地址加1MOV A,!M_LCD_WORK+1 ;要寫入的數(shù)據(jù)高位入AMOV HL+B,A ;寫入MOV A,BMOV !M_LCD_SET,A ;保存偏移地址RET鍵盤掃描中斷處理程序鍵盤掃描中斷處理程序;名稱:Keyscan,功能:Key Scan 中斷處理程序,內(nèi)部參數(shù):KSF : Key Scan Fl
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit2 My schoolbag (Part C)(說課稿)-2024-2025學(xué)年人教PEP版英語四年級上冊
- Unit 1 Life Choices Lesson 3 Your Life Is What You Make It 說課稿-2024-2025學(xué)年高中英語北師大版(2019)必修第一冊
- 2025宅基地的買賣合同協(xié)議書
- 2024六年級英語上冊 Unit 3 My weekend plan課時3 Let's try Let's talk說課稿 人教PEP
- 2024-2025學(xué)年高中數(shù)學(xué) 開學(xué)第一周 第一章 集合與函數(shù)概念 1.1.1 集合的含義與表示 第一課時 集合的含義說課稿 新人教A版必修1
- 26手術(shù)臺就是陣地 (說課稿)-2024-2025學(xué)年三年級上冊語文統(tǒng)編版
- 2025冷庫銷售合同范本
- 影視企業(yè)簽訂業(yè)績承諾協(xié)議的財務(wù)風(fēng)險控制研究
- Unit 1 Let's be friends!(說課稿)-2024-2025學(xué)年外研版(三起)(2024)英語三年級上冊
- 水景池維修施工方案
- 2025至2030年中國減肥肽數(shù)據(jù)監(jiān)測研究報告
- 2024內(nèi)蒙古公務(wù)員省直行測、行政執(zhí)法、省考行測考試真題(5套)
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫附帶答案詳解
- 山東省濱州市濱城區(qū)2024-2025學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 期末試卷:安徽省宣城市2021-2022學(xué)年七年級上學(xué)期期末歷史試題(解析版)
- 幼兒教師新年規(guī)劃
- 2024年湖南省公務(wù)員錄用考試《行測》真題及答案解析
- 2024新版(北京版)三年級英語上冊單詞帶音標(biāo)
- 第21課 活動課 從考古發(fā)現(xiàn)看中華文明的起源 教學(xué)課件
- 部編版《道德與法治》四年級下冊教材解讀與分析文檔
- PP、PVC-風(fēng)管制作安裝施工作業(yè)指導(dǎo)書
評論
0/150
提交評論