版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、12021-11-20第三章 單片機(jī)指令系統(tǒng)3.1 尋址方式尋址方式3.2 指令系統(tǒng)指令系統(tǒng)22021-11-20 在匯編語(yǔ)言中,用在匯編語(yǔ)言中,用助記符助記符代替操作碼,用地址代替操作碼,用地址符號(hào)符號(hào)(Symbol)(Symbol)或標(biāo)號(hào)或標(biāo)號(hào)(Label)(Label)代替地址碼。這樣用代替地址碼。這樣用符號(hào)代替機(jī)器語(yǔ)言的二進(jìn)制碼,就把符號(hào)代替機(jī)器語(yǔ)言的二進(jìn)制碼,就把機(jī)器語(yǔ)言機(jī)器語(yǔ)言變成變成了了匯編語(yǔ)言匯編語(yǔ)言。 使用匯編語(yǔ)言編寫的程序,機(jī)器不能直接識(shí)別,使用匯編語(yǔ)言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言,這種起要由一種程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言,這種起翻譯
2、作用的程序叫翻譯作用的程序叫匯編程序匯編程序,匯編程序是系統(tǒng)軟件,匯編程序是系統(tǒng)軟件中語(yǔ)言處理系統(tǒng)軟件。中語(yǔ)言處理系統(tǒng)軟件。 匯編程序把匯編語(yǔ)言翻譯成機(jī)器語(yǔ)言的過(guò)程稱匯編程序把匯編語(yǔ)言翻譯成機(jī)器語(yǔ)言的過(guò)程稱為為匯編匯編。32021-11-20指令執(zhí)行過(guò)程I.程序是按要求實(shí)現(xiàn)的指令有序集合,是串程序是按要求實(shí)現(xiàn)的指令有序集合,是串行執(zhí)行的。行執(zhí)行的。II.事情要一步一步做,所以需要時(shí)鐘事情要一步一步做,所以需要時(shí)鐘III.通過(guò)通過(guò)PC指向程序地址,完成取指放到指令指向程序地址,完成取指放到指令寄存器中寄存器中IV.指令寄存器的譯碼,知道要做什么指令寄存器的譯碼,知道要做什么V.按照要求完成任務(wù)按
3、照要求完成任務(wù)VI.PC指向下一條指令指向下一條指令42021-11-2052021-11-20 51單片機(jī)指令系統(tǒng)是一個(gè)具有指令系統(tǒng)是一個(gè)具有255種代碼的集合種代碼的集合 一條匯編指令中最多包含一條匯編指令中最多包含4段段: 標(biāo)號(hào):標(biāo)號(hào):操作碼操作碼 操作數(shù)或操作數(shù)地址操作數(shù)或操作數(shù)地址; ;注釋注釋62021-11-20標(biāo)號(hào)標(biāo)號(hào): 給程序指令起個(gè)名字給程序指令起個(gè)名字操作碼操作碼 表明做什么表明做什么操作數(shù)操作數(shù) 源操作數(shù),目的操作數(shù)源操作數(shù),目的操作數(shù);注釋注釋 說(shuō)明程序作用,參數(shù)定義說(shuō)明程序作用,參數(shù)定義 入口參數(shù),返回值所在,入口參數(shù),返回值所在, 格式格式72021-11-20
4、源操作數(shù)源操作數(shù): “數(shù)數(shù)”從哪里來(lái)從哪里來(lái) 目的操作數(shù):目的操作數(shù): “數(shù)數(shù)”放到哪里放到哪里找數(shù)的方式就是尋址方式找數(shù)的方式就是尋址方式82021-11-203.1 尋址方式尋址方式(共有共有7種種)立即尋址立即尋址 Immediate Constants直接尋址直接尋址 Direct Addressing寄存器尋址寄存器尋址 Register Instructions寄存器間接尋址寄存器間接尋址 Indirect Addressing基址變址間接尋址基址變址間接尋址 Indexed Addressing相對(duì)尋址相對(duì)尋址 Relative Offset Addressing位尋址位尋址 B
5、its Addresing92021-11-20例:例:MOV A,#40H MOV DPTR,#2345H ;立即尋址;立即尋址 MOV A,40H MOV B,P2 ;特殊功能寄存器只能用;特殊功能寄存器只能用直接尋址直接尋址訪問訪問 MOV A,R0 ;寄存器尋址寄存器尋址:R0-R7、A、B、DPTR MOV A,R0 ;間接尋址間接尋址只能用只能用R0、R1或或DPTR做地址指針做地址指針 MOVX A,DPTR MOVC A,A+PC ;基址變址尋址基址變址尋址 MOVC A,A+DPTR ;適用于訪問程序存儲(chǔ)器中的數(shù)據(jù)表格;適用于訪問程序存儲(chǔ)器中的數(shù)據(jù)表格 SJMP LOOP1
6、JC LOOP2 ;相對(duì)尋址相對(duì)尋址只出現(xiàn)在相對(duì)轉(zhuǎn)移指令中只出現(xiàn)在相對(duì)轉(zhuǎn)移指令中 CLR P1.1 ;位尋址位尋址針對(duì)針對(duì)20H2FH的位定義區(qū)和的位定義區(qū)和SFR位操作位操作 SETB 10H ;內(nèi)部;內(nèi)部SRAM 22H中的第中的第0位位102021-11-20MOV A,#40H ;A40HMOV A,40H ;A(40H)41H 78H40H 56HMOV A,R0 ;A(R0) MOV A,R0 ;A (R0)設(shè)指令執(zhí)行前設(shè)指令執(zhí)行前 A=20H,R0=40H,地址為,地址為40H存儲(chǔ)器單元內(nèi)容如存儲(chǔ)器單元內(nèi)容如圖所示圖所示。執(zhí)行指令后,執(zhí)行指令后,A=? 41H 67H 40H 3
7、4HR0A20HR040H設(shè)指令執(zhí)行前設(shè)指令執(zhí)行前 A=20H,R0=40H,執(zhí)行指令后,執(zhí)行指令后,A= ?112021-11-20例例1 MOV A,#0 MOV DPTR, #TABLE MOVC A , A+DPTR TABLE: DB 3FH,06H,5BH,4FH ;7段共陰顯示代碼段共陰顯示代碼 例例2 1000H MOV A,#10H1002H MOVC A,A+PC 1013H DB 3FH1014H DB 06H 基址變址尋址:指令給出的寄存器存放數(shù)據(jù)的基地址和偏移量?;纷冎穼ぶ罚褐噶罱o出的寄存器存放數(shù)據(jù)的基地址和偏移量。(只針對(duì)程序存儲(chǔ)器)(只針對(duì)程序存儲(chǔ)器)TABLE
8、 3FH 06H122021-11-20位尋址范圍:位尋址范圍: (1)內(nèi)部)內(nèi)部RAM中的位尋址區(qū):字節(jié)地址為中的位尋址區(qū):字節(jié)地址為20H2FH; (2)專用寄存器)專用寄存器SFR的可尋址位:的可尋址位:11個(gè)(個(gè)(83位)位)表示方法:表示方法: (1)直接使用位地址;)直接使用位地址;如:如:PSW的第的第6位可表示為位可表示為0D6H (2)位名稱表示;)位名稱表示; 或或AC (3)字節(jié)地址加位數(shù)表示;)字節(jié)地址加位數(shù)表示; 或或0D0H.6 (4)專用寄存器符號(hào)加位數(shù)表示。)專用寄存器符號(hào)加位數(shù)表示。 或或PSW.6 例:例: MOV C,40H;Cy(位地址位地址40H) 設(shè)
9、指令執(zhí)行前設(shè)指令執(zhí)行前 Cy=1,位地址,位地址40H存儲(chǔ)器單元如圖,存儲(chǔ)器單元如圖, 執(zhí)行指令后,執(zhí)行指令后,Cy= ?29H 0110001028H 11010110位尋址區(qū)位尋址區(qū)132021-11-20寄存器名寄存器名SFR地址地址位地址名位地址名位地址位地址P080HP0.0P0.780H87HP190HP1.0P1.790H97HP2A0HP2.0P2.7A0HA7HP3B0HP3.0P3.7B0HB7HTCON88HTCON.0TCON.788H8FHSCON98HSCON.0SCON.798H9FHIEA8HIE.0IE.7A8HAFHIPB8HIP.0IP.7B8HBFHPS
10、WD0HPSW.0PSW.7D0HD7HACCE0HACC.0ACC.7E0HE7HBF0HB.0B.7F0HF7H可位尋址的可位尋址的SFR位地址位地址142021-11-20 (1)對(duì)程序存儲(chǔ)器(內(nèi)、外):只能變址尋址)對(duì)程序存儲(chǔ)器(內(nèi)、外):只能變址尋址 MOVC (2)對(duì)內(nèi)部數(shù)據(jù)存儲(chǔ)器:)對(duì)內(nèi)部數(shù)據(jù)存儲(chǔ)器:MOV (3)對(duì)外部數(shù)據(jù)存儲(chǔ)器:只能寄存器間址)對(duì)外部數(shù)據(jù)存儲(chǔ)器:只能寄存器間址 MOVX寄存器間接尋址方式寄存器間接尋址方式高地址單元(高地址單元(6528065280個(gè))個(gè)) 低地址單元(低地址單元(256256個(gè))個(gè))(0FFFFH0FFFFH 0100H0100H)(00FF
11、H00FFH 0000H0000H)以以R R0 0或或R R1作間址寄存器作間址寄存器以以DPTRDPTR作作間址寄存器間址寄存器152021-11-203.2 指令系統(tǒng)介紹指令系統(tǒng)介紹(共共5類類)數(shù)據(jù)傳送數(shù)據(jù)傳送 Data Transfers 29條條算術(shù)運(yùn)算算術(shù)運(yùn)算 Arithmetic Instructions 24條條邏輯運(yùn)算邏輯運(yùn)算 Logical Instructions 24條條位操作位操作 Boolean Instructions 17條條控制轉(zhuǎn)移控制轉(zhuǎn)移 Jump Instructions 17條條 共共111條條162021-11-20回憶:回憶:5151單片機(jī)的主要寄
12、存器單片機(jī)的主要寄存器(1)累加器)累加器ACC,程序中有時(shí)可以簡(jiǎn)寫為,程序中有時(shí)可以簡(jiǎn)寫為A (2)輔助寄存器)輔助寄存器B,乘除指令用到,乘除指令用到 (3)程序計(jì)數(shù)器)程序計(jì)數(shù)器PC,“不不”能用程序直接訪問能用程序直接訪問 (4)數(shù)據(jù)指針)數(shù)據(jù)指針DPTR,有的單片機(jī)有兩個(gè),有的單片機(jī)有兩個(gè) (5)堆棧指針)堆棧指針SP,復(fù)位時(shí)內(nèi)容是復(fù)位時(shí)內(nèi)容是07H,一定要記住。,一定要記住。(6)程序狀態(tài)寄存器)程序狀態(tài)寄存器PSW 記住哪些記住哪些指令指令影響影響標(biāo)志位標(biāo)志位172021-11-20PSW地址地址 0D0H CY ACF0RS1RS0OVF1P位位D7 D6D5D4D3D2D1D
13、0復(fù)位時(shí)復(fù)位時(shí) 00Cy(PSW.7)進(jìn)位標(biāo)志。有進(jìn)位或借位時(shí)置進(jìn)位標(biāo)志。有進(jìn)位或借位時(shí)置1AC(PSW.6)輔助進(jìn)位標(biāo)志。低輔助進(jìn)位標(biāo)志。低4位有進(jìn)位或借位時(shí)位有進(jìn)位或借位時(shí)F0(PSW.5)用戶用位標(biāo)志用戶用位標(biāo)志RS1(PSW.4)、RS0(PSW.3)選擇通用寄存器組選擇通用寄存器組 R0R7 所在內(nèi)部所在內(nèi)部RAM中的位置中的位置OV(PSW.2)溢出標(biāo)志。溢出標(biāo)志。F1(PSW.1)保留。保留。51未用,未用,52為用戶標(biāo)志位為用戶標(biāo)志位P(PSW.0)奇偶標(biāo)志。奇偶標(biāo)志。ACC中中1的個(gè)數(shù)為奇數(shù)時(shí)置的個(gè)數(shù)為奇數(shù)時(shí)置10D0H=208 PSW的地址的地址182021-11-20影響
14、標(biāo)志位的指令影響標(biāo)志位的指令(X表示有影響,表示有影響,o表示清零,表示清零,1表示置一)表示置一)192021-11-20Rn 當(dāng)前工作寄存器中的某一個(gè),即當(dāng)前工作寄存器中的某一個(gè),即R0R7; Ri R0或者或者R1Direct 單片機(jī)內(nèi)部單片機(jī)內(nèi)部RAM低低128字節(jié)(字節(jié)(00h7fh)中的某個(gè)字節(jié)地)中的某個(gè)字節(jié)地 址,或者是某個(gè)專用寄存器的名字;址,或者是某個(gè)專用寄存器的名字;#data 8位(位(1字節(jié))立即數(shù)字節(jié))立即數(shù)#data16 16位(位(2字節(jié))的立即數(shù)字節(jié))的立即數(shù)Addr16 16位目的地址,在位目的地址,在LJMP和和LCALL的指令中采用的指令中采用Addr1
15、1 11位目的地址,只在位目的地址,只在AJMP和和ACALL指令中采用指令中采用Rel 相對(duì)轉(zhuǎn)移指令中的偏移量。相對(duì)轉(zhuǎn)移指令中的偏移量。DPTR 數(shù)據(jù)指針(由數(shù)據(jù)指針(由DPH和和DPL構(gòu)成)構(gòu)成)Bit 內(nèi)部?jī)?nèi)部RAM(包括專用寄存器包括專用寄存器)中可尋址位的地址或名字中可尋址位的地址或名字A 累加器累加器ACCB B寄存器寄存器 間接尋址標(biāo)志間接尋址標(biāo)志 / 加在位地址前,表示對(duì)該位狀態(tài)取反加在位地址前,表示對(duì)該位狀態(tài)取反(X) 某寄存器或某單元的內(nèi)容某寄存器或某單元的內(nèi)容(X) 由由X間接尋址的單元中的內(nèi)容間接尋址的單元中的內(nèi)容指令中符號(hào)的意義說(shuō)明指令中符號(hào)的意義說(shuō)明202021-1
16、1-20一、數(shù)據(jù)傳送類指令一、數(shù)據(jù)傳送類指令 格式格式: MOV 目的目的, 源源 傳送到傳送到A累加器的指令累加器的指令 MOV A, Rn ;n=0,1,.7 MOV A,direct ; direct是地址是地址 MOV A,Ri ;i=0,1 MOV A,#data ; #data是立即數(shù)是立即數(shù) MOV A,B ; 212021-11-20 傳送到傳送到Rn的指令的指令 MOV Rn, A MOV Rn,direct MOV Rn,#data 傳送到內(nèi)部傳送到內(nèi)部RAM或特殊功能寄存器或特殊功能寄存器 MOV direct, A MOV direct,Rn MOV direct, d
17、irect ;地址到地址地址到地址 MOV direct, Ri MOV direct, #data (高高128只能用間接尋址只能用間接尋址)222021-11-20傳送到傳送到Ri指定的單元指定的單元 MOV Ri , direct MOV Ri, A傳送到傳送到DPTR寄存器寄存器 MOV DPTR,#data16傳送到外部傳送到外部RAM中中(配合配合WR,RD) MOVX A,DPTR(16位指針可尋址位指針可尋址64KB外部外部RAM) MOVX DPTR,A MOVX A,Ri (8位指針可尋址位指針可尋址256B外部外部RAM) MOVX Ri,A 232021-11-20 說(shuō)
18、說(shuō) 明:明: 只有指令表中的指令才有對(duì)應(yīng)指令代碼,計(jì)算機(jī)才能執(zhí)行。只有指令表中的指令才有對(duì)應(yīng)指令代碼,計(jì)算機(jī)才能執(zhí)行。編程時(shí),不能隨意創(chuàng)造發(fā)明指令。編程時(shí),不能隨意創(chuàng)造發(fā)明指令。1. 一條指令中不能同時(shí)出現(xiàn)兩個(gè)工作寄存器:一條指令中不能同時(shí)出現(xiàn)兩個(gè)工作寄存器:非法非法指令:指令:MOV RMOV R1 1,R R2 2MOV RMOV R2 2,RR0 02. 間址寄存器只能使用間址寄存器只能使用 R R0 0、R R1 1。 非法非法指令:指令: MOV AMOV A,RR2 23. SFRSFR區(qū)只能直接尋址,不能用寄存器間接尋址。區(qū)只能直接尋址,不能用寄存器間接尋址。非法非法指令:指令:
19、 MOV RMOV R0 0,#80H#80H MOV A MOV A,RR0 ;(520 ;(52系列的,認(rèn)為是高系列的,認(rèn)為是高128B128B的間接尋址的間接尋址) )4. .片外數(shù)據(jù)存儲(chǔ)器不能直接尋址,且只能通過(guò)片外數(shù)據(jù)存儲(chǔ)器不能直接尋址,且只能通過(guò)A A累加器傳遞數(shù)據(jù)。累加器傳遞數(shù)據(jù)。 非法非法指令:指令: MOVX AMOVX A,2000H 2000H MOVX 2100H MOVX 2100H,2000H2000H242021-11-20例例1 1:MOV AMOV A,#30H#30HMOV 4FHMOV 4FH,A AMOV RMOV R0 0,#20H#20HMOV RM
20、OV R0 0,4FH4FHMOV 21HMOV 21H,20H20H例例2 2:用兩種尋址方式實(shí)現(xiàn),將片內(nèi):用兩種尋址方式實(shí)現(xiàn),將片內(nèi)RAM 60HRAM 60H單元的數(shù)據(jù)傳送單元的數(shù)據(jù)傳送給累加器給累加器A A。解:解: MOV A,#60HMOV A,#60H()MOV RMOV R0 0,#60H #60H () MOV AMOV A,RR0 0;A= 30HA= 30H;(4FH)= 30H(4FH)= 30H;R R0 0= 20H= 20H;(20H)= 30H(20H)= 30H;(21H)= 30H(21H)= 30HMOV MOV R R0 0,60H60H MOV AMO
21、V A, R R0 0 () 解:解: MOV A,60HMOV A,60H () 結(jié)果結(jié)果A=32HA=32H順序執(zhí)行下列指令序列,求每一步執(zhí)行結(jié)果。順序執(zhí)行下列指令序列,求每一步執(zhí)行結(jié)果。252021-11-20堆棧操作指令堆棧操作指令 MOV SP,#data ;設(shè)堆棧設(shè)堆棧 PUSH direct ; POP direct ; PUSH A ; POP A ; PUSH PSW (ACALL、LCALL、中斷要硬件執(zhí)行、中斷要硬件執(zhí)行PC入棧,入棧, 先低先低8位,位,后高后高8位。位。) 錯(cuò)錯(cuò) !PUSH ACCPOP ACCSPSP+1;(SP) (direct)(SP) (dir
22、ect);SP SP-1MCS -51 提供一個(gè)提供一個(gè)向上升向上升的堆棧的堆棧, 因此因此SP設(shè)置初值時(shí)要充分設(shè)置初值時(shí)要充分考慮考慮堆棧的深度堆棧的深度, 要留出適當(dāng)?shù)膯卧臻g要留出適當(dāng)?shù)膯卧臻g, 滿足堆棧的使用。滿足堆棧的使用。 262021-11-20練習(xí):練習(xí):說(shuō)明程序執(zhí)行過(guò)程中,說(shuō)明程序執(zhí)行過(guò)程中,SP的內(nèi)容及堆棧中內(nèi)容的改變過(guò)程。的內(nèi)容及堆棧中內(nèi)容的改變過(guò)程。 MOV SP,#30H MOV A,#20H MOV B,#30H PUSH ACC PUSH B MOV A,#30H MOV B,#20H POP B POP ACC;SP=30H;A=20H;B=30H;SP=31
23、H (31H)=20H ;SP=32H (32H)=30H ;A=30H;B=20H ; B=30H SP=30H;A=20H SP=31H 272021-11-20 代碼區(qū)代碼區(qū)(程序區(qū)程序區(qū))操作指令操作指令(查表用查表用) MOVC A,A+DPTR MOVC A,A+PC 實(shí)現(xiàn)從實(shí)現(xiàn)從程序存儲(chǔ)器程序存儲(chǔ)器讀取數(shù)據(jù)到讀取數(shù)據(jù)到A累加器累加器,1DPTR為基址寄存器為基址寄存器:查表范圍為查表范圍為 64KB 程序存儲(chǔ)程序存儲(chǔ)器任意空間,稱為器任意空間,稱為遠(yuǎn)程遠(yuǎn)程查表指令。查表指令。2PC為基址寄存器為基址寄存器:只能在查表指令后只能在查表指令后256B范圍內(nèi),范圍內(nèi),稱為稱為近程近程查
24、表指令。查表指令。282021-11-20例:例:程序程序1: ORG 1000H SQU: MOV DPTR,#3000H ;確定表首地址(基地址);確定表首地址(基地址) MOV A,20H ;??;取 X(變量:偏移量)(變量:偏移量) MOVC A,A+DPTR ;查表求;查表求Y=X2 MOV 21H,A ;保存;保存Y(結(jié)果)(結(jié)果) RET ;子程序結(jié)束;子程序結(jié)束 ;其它程序段;其它程序段 ORG 3000H ;常數(shù)表格首地址;常數(shù)表格首地址 TAB: DB 00,01,04,09, ,225;平方表;平方表 END查表法求查表法求Y=XY=X2 2。設(shè)。設(shè)X(0X15)X(0X
25、15)在片內(nèi)在片內(nèi)RAMRAM的的20H20H單元中,單元中,要求查表求要求查表求Y Y,存入片內(nèi),存入片內(nèi)RAM 21HRAM 21H單元。單元。292021-11-20例:例:程序程序2:指令地址指令地址 源程序源程序 ORG 1000H ;程序起始地址;程序起始地址1000H SQU: MOV A,20H ;??;取X1002H ADD A,#3 ;修正偏移量;修正偏移量1004H MOVC A,A+PC ;查表求;查表求Y=X2 (PC=1005H)1005H MOV 21H,A ;存結(jié)果;存結(jié)果1007H RET ;子程序結(jié)束;子程序結(jié)束1008HTAB: DB 00,01,04 ;平
26、方表;平方表100BH DB 09, ,225 查表法求查表法求Y=XY=X2 2。設(shè)。設(shè)X(0X15)X(0X15)在片內(nèi)在片內(nèi)RAMRAM的的20H20H單元中,單元中,要求查表求要求查表求Y Y,存入片內(nèi),存入片內(nèi)RAM 21HRAM 21H單元。單元。思考:當(dāng)思考:當(dāng)0X2550X255時(shí),如何用查表法編程求時(shí),如何用查表法編程求Y=XY=X2 2。302021-11-20 字節(jié)交換指令字節(jié)交換指令 XCH A,Rn ;A Rn XCH A,Ri ;A (Ri) XCH A,direct ;A (direct) (全字節(jié)交換全字節(jié)交換) SWAP A ;半字節(jié)交換半字節(jié)交換(高高4位與
27、低位與低4位交換位交換)312021-11-20習(xí)題:找出指令錯(cuò)誤并改正習(xí)題:找出指令錯(cuò)誤并改正1MOV A,#1000H 2MOVX A,1000H3MOVC A,1000H4MOVX 60H,A 5MOV R0,60H MOV 61H,R0 6. XCH R1,R27. MOVX DPTR,#2000H 8. MOVX 60H,DPTR322021-11-20影響標(biāo)志位的指令影響標(biāo)志位的指令(X表示有影響,表示有影響,o表示清零,表示清零,1表示置一)表示置一)二、二、 算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令332021-11-20 (一一) 加法指令加法指令 不帶進(jìn)位加指令不帶進(jìn)位加指令 ADD A,
28、Rn ;A=A+Rn ADD A,direct ;A=A+(direct) ADD A,Ri ;A=A+(Ri) ADD A,#data ;A=A+data 帶進(jìn)位加指令帶進(jìn)位加指令 ADDC A,Rn ;A=A+Rn+Cy ADDC A,direct ;A=A+(direct)+Cy ADDC A,Ri ;A=A+(Ri)+Cy ADDC A,#data ;A=A+data+Cy算術(shù)運(yùn)算指令主要完成片內(nèi)算術(shù)運(yùn)算指令主要完成片內(nèi)RAMRAM和和A A中數(shù)據(jù)的加減乘除運(yùn)算。中數(shù)據(jù)的加減乘除運(yùn)算。342021-11-20 增量增量(增增1)指令指令 INC A ;A=A+1 INC Rn ;Rn=
29、Rn+1 INC direct ;(direct)=(direct)+1 (地址中的數(shù)增一地址中的數(shù)增一) INC Ri ;(Ri)=(Ri)+1 INC DPTR ;DPTR=DPTR+1 十進(jìn)制調(diào)整指令十進(jìn)制調(diào)整指令 DA A (在在BCD碼運(yùn)算中碼運(yùn)算中,要進(jìn)行調(diào)整要進(jìn)行調(diào)整) 352021-11-20教材教材P77例例3-15:試編寫十進(jìn)制數(shù):試編寫十進(jìn)制數(shù)2345H加加5678H的的程序段,結(jié)果存于程序段,結(jié)果存于40H(低位)、(低位)、41H(高位)中。(高位)中。 362021-11-20 (二二) 減法指令減法指令 帶借位減法指令帶借位減法指令 沒有不帶借位的減法指令沒有不帶
30、借位的減法指令 SUBB A,Rn ;A=A-Rn-Cy SUBB A,direct ;A=A-(direct)-Cy SUBB A,Ri ;A=A-(Ri)-Cy SUBB A,#data ;A=A-data-Cy (對(duì)對(duì)BCD碼無(wú)調(diào)整指令碼無(wú)調(diào)整指令) 減減1指令指令 DEC A ;A=A-1 DEC Rn ;Rn=Rn-1 DEC direct ;(direct)=(direct)-1 DEC Ri ;(Ri)=(Ri)-1372021-11-20 (三三) 乘法指令乘法指令 MUL AB ;A X B (高位在高位在B中中,低位在低位在A中中 clear Cy 結(jié)果小于等于結(jié)果小于等于
31、255 OV=0,大于則置,大于則置1) (四四) 除法指令除法指令 DIV AB ;A/B(整數(shù)在整數(shù)在A中中,余數(shù)在余數(shù)在B中,中,clear Cy &OV=0) 如果如果B(除數(shù)除數(shù))=0,OV=1382021-11-20三、三、 邏輯運(yùn)算指令邏輯運(yùn)算指令 簡(jiǎn)單的邏輯運(yùn)算指令簡(jiǎn)單的邏輯運(yùn)算指令 CLR A ;A=0,清零清零 CPL A ;將將A中的數(shù)按位取反中的數(shù)按位取反 RL A ;A中的數(shù)左循環(huán)移一位中的數(shù)左循環(huán)移一位(不帶不帶Cy) RR A ;A中的數(shù)右循環(huán)移一位中的數(shù)右循環(huán)移一位(不帶不帶Cy) (小循環(huán)小循環(huán)) RLC A ; A中的數(shù)帶中的數(shù)帶Cy左循環(huán)移一位左循
32、環(huán)移一位 RRC A ; A中的數(shù)帶中的數(shù)帶Cy右循環(huán)移一位右循環(huán)移一位 (大循環(huán)大循環(huán)) 392021-11-20例:把例:把30H和和31H兩單元存放的兩單元存放的16位二進(jìn)制數(shù)擴(kuò)大位二進(jìn)制數(shù)擴(kuò)大二倍。(二倍。(P68) CLR C MOV A,30H RLC A MOV 30H,A MOV A,31H RLC A MOV 31H,A402021-11-20 邏輯與指令邏輯與指令(按位與按位與) ANL A,Rn ;A=A&Rn ANL A,direct ;A=A&(direct) ANL A,Ri ;A=A&Ri ANL A,#data ;A=A&data
33、 ANL direct,A ;(direct) =(direct)&A ANL direct,#data ;(direct)=(direct)&data 412021-11-20 邏輯或指令邏輯或指令(按位或按位或) ORL A,Rn ;A=A或或Rn ORL A,direct ;A=A或或(direct) ORL A,Ri ;A=A或或Ri ORL A,#data ;A=A或或data ORL direct,A ;(direct) =direct或或A ORL direct,#data ;(direct)=(direct)或或data422021-11-20 邏輯異或指令邏輯
34、異或指令(按位異或按位異或) XRL A,Rn ;A=A異或異或Rn XRL A,direct ;A=A異或異或(direct) XRL A,Ri ;A=A異或異或Ri XRL A,#data ;A=A異或異或data XRL direct,A ;(diect)=(direct)異或異或A XRL direct,#data ;(diect)=(direct)異或異或data432021-11-20P77課后題課后題3-14:設(shè):設(shè)A=83H,R0=17H,(,(17H)=34H,執(zhí)行下面程序后,執(zhí)行下面程序后,A為何值?。為何值?。 ANL A,#27H ORL 17H,A XRL A,R0
35、CPL A442021-11-20四、控制轉(zhuǎn)移指令四、控制轉(zhuǎn)移指令 (一一) 無(wú)條件轉(zhuǎn)移無(wú)條件轉(zhuǎn)移 SJMP rel ;在在-128+127內(nèi)跳轉(zhuǎn)內(nèi)跳轉(zhuǎn) SJMP $ ;原地轉(zhuǎn)圈原地轉(zhuǎn)圈 AJMP addr11 ;在在 2K地址內(nèi)跳轉(zhuǎn)地址內(nèi)跳轉(zhuǎn) LJMP addr16 ;在在 64K地址內(nèi)跳轉(zhuǎn)地址內(nèi)跳轉(zhuǎn) JMP A+DPTR ;間接轉(zhuǎn)移間接轉(zhuǎn)移(多分支轉(zhuǎn)移)(多分支轉(zhuǎn)移)452021-11-20JMP A+DPTR 多分支轉(zhuǎn)移應(yīng)用:處理功能鍵多分支轉(zhuǎn)移應(yīng)用:處理功能鍵KEY:KEY: MOV DPTR,#KTAB MOV DPTR,#KTAB MOV A,40H MOV A,40H ADD A
36、,A ADD A,A JMP A+DPTR JMP A+DPTRKTAB:KTAB: LJMP FUNC0 LJMP FUNC0 LJMP FUNC1 LJMP FUNC1 FUNC0: FUNC0: FUNC1: FUNC1: 要求不同功能鍵執(zhí)行不同程序段,設(shè)每個(gè)功能鍵對(duì)應(yīng)一要求不同功能鍵執(zhí)行不同程序段,設(shè)每個(gè)功能鍵對(duì)應(yīng)一個(gè)鍵值個(gè)鍵值X(0X0FH)X(0X0FH)。假設(shè)。假設(shè)X X已存入片內(nèi)已存入片內(nèi)RAMRAM的的40H40H單元中。單元中。若若X=0X=0,則執(zhí)行程序段,則執(zhí)行程序段FUNC0FUNC0;若若X=1X=1,則執(zhí)行程序段,則執(zhí)行程序段FUNC1FUNC1; 462021-
37、11-20 JZ rel ; 在在 -128+127內(nèi)跳轉(zhuǎn)內(nèi)跳轉(zhuǎn) (A=0,跳轉(zhuǎn)跳轉(zhuǎn)) JNZ rel ; 在在 -128+127內(nèi)跳轉(zhuǎn)內(nèi)跳轉(zhuǎn) (A!=0,跳轉(zhuǎn)跳轉(zhuǎn)) (二二) 有條件轉(zhuǎn)移有條件轉(zhuǎn)移 對(duì)累加器對(duì)累加器A的判零轉(zhuǎn)移的判零轉(zhuǎn)移472021-11-20 比較不相等轉(zhuǎn)移比較不相等轉(zhuǎn)移 CJNE A,direct,rel; CJNE A,#data,rel; CJNE Rn,#data,rel; CJNE Ri,#data,rel; (跳轉(zhuǎn)范圍跳轉(zhuǎn)范圍-128+127,相對(duì)尋址相對(duì)尋址) 減減1不為不為0跳轉(zhuǎn)跳轉(zhuǎn)(循環(huán)轉(zhuǎn)移循環(huán)轉(zhuǎn)移) DJNZ Rn,rel; DJNZ direct,re
38、l; (跳轉(zhuǎn)范圍跳轉(zhuǎn)范圍-128+127,相對(duì)尋址相對(duì)尋址) 482021-11-20(三三)調(diào)用子程序調(diào)用子程序 ACALL rel(addr11) ;在在2K內(nèi)內(nèi) LCALL rel(addr16) ;在在64K內(nèi)內(nèi)492021-11-20(四四)調(diào)用子程序返回指令調(diào)用子程序返回指令 RET ;一般調(diào)用返回一般調(diào)用返回(子程序子程序) RETI ;硬件中斷返回硬件中斷返回(中斷程序中斷程序) (五五)空操作指令空操作指令 NOP ;不做任何操作,延時(shí)一個(gè)機(jī)器周期不做任何操作,延時(shí)一個(gè)機(jī)器周期502021-11-20注意:注意:常用格式:常用格式:MAINMAIN: MOV SPMOV SP
39、,#30H#30H ;設(shè)置棧頂;設(shè)置棧頂 ;主程序;主程序LCALLLCALL SUBR SUBR;調(diào)用;調(diào)用SUBRSUBRSUBRSUBR:;子程序首地址;子程序首地址RETRET;子程序返回;子程序返回1、子程序起始指令要使用標(biāo)號(hào),用作子程序名。、子程序起始指令要使用標(biāo)號(hào),用作子程序名。2、執(zhí)行返回指令、執(zhí)行返回指令RETRET之前,保證棧頂內(nèi)容為主程序返回之前,保證棧頂內(nèi)容為主程序返回地址,以便正確返回主程序。地址,以便正確返回主程序。512021-11-20五、五、 位操作指令位操作指令522021-11-20 片內(nèi)片內(nèi)RAM中的位尋址區(qū)中的位尋址區(qū)532021-11-20特殊功能寄存器位地址特殊功能寄存器位地址表表542021-11-20位地址表達(dá)形式位地址表達(dá)形式舉舉 例例1)直接地址方式)直接地址方式0A9H2)點(diǎn)操作符方式)點(diǎn)操作符方式IE.13)位名稱方式)位名稱方式ET04)用戶定義方式)用戶定義方式用偽指令用偽指令BIT定義的位定義的位 T0ZD BIT ET0允許用允許用T0ZD代替代替ET0552021-11-20
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度臨時(shí)用電安全設(shè)施維護(hù)保養(yǎng)合同文本2篇
- 2025年度產(chǎn)品代理合同:智能家電全系列產(chǎn)品代理權(quán)轉(zhuǎn)讓
- 2025版內(nèi)蒙古自治區(qū)農(nóng)牧廳農(nóng)業(yè)產(chǎn)業(yè)鏈延伸與價(jià)值鏈提升合同4篇
- 二零二五年度臨時(shí)用電安全培訓(xùn)服務(wù)合同范本
- 2025年度食品添加劑研發(fā)項(xiàng)目配料保密合同范本
- 2025年度苗木種植項(xiàng)目招投標(biāo)合同4篇
- 二零二五年度家電品牌代言合同標(biāo)準(zhǔn)范本
- 二零二五年度某某學(xué)校校園內(nèi)電梯維修保養(yǎng)服務(wù)合同4篇
- 《短視頻編?。哼x題構(gòu)想+腳本制作+劇本策劃+鏡頭拍攝》課件 第5、6章 了解劇本:創(chuàng)作優(yōu)劇本的基礎(chǔ)、劇本編寫:創(chuàng)作優(yōu)的故事情節(jié)
- 2025年度鋼材深加工項(xiàng)目運(yùn)輸及安裝合同2篇
- 《霍爾效應(yīng)測(cè)量磁場(chǎng)》課件
- 30題紀(jì)檢監(jiān)察位崗位常見面試問題含HR問題考察點(diǎn)及參考回答
- 高考作文復(fù)習(xí)任務(wù)驅(qū)動(dòng)型作文的審題立意課件73張
- 詢價(jià)函模板(非常詳盡)
- 《AI營(yíng)銷畫布:數(shù)字化營(yíng)銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個(gè)28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫話教學(xué)評(píng)語(yǔ)方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號(hào)表示方法
評(píng)論
0/150
提交評(píng)論