理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資料專升本電子類復(fù)習(xí)資料PPT學(xué)習(xí)教案_第1頁
理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資料專升本電子類復(fù)習(xí)資料PPT學(xué)習(xí)教案_第2頁
理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資料專升本電子類復(fù)習(xí)資料PPT學(xué)習(xí)教案_第3頁
理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資料專升本電子類復(fù)習(xí)資料PPT學(xué)習(xí)教案_第4頁
理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資料專升本電子類復(fù)習(xí)資料PPT學(xué)習(xí)教案_第5頁
已閱讀5頁,還剩145頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、會計學(xué)1理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資理學(xué)指令系統(tǒng)福建專升本電子類復(fù)習(xí)資料專升本電子類復(fù)習(xí)資料料專升本電子類復(fù)習(xí)資料BACK第1頁/共150頁程序設(shè)計語言:程序設(shè)計語言:是實現(xiàn)人機交換信息的基本工具,分為機器語言、匯編語言和高級語言。是實現(xiàn)人機交換信息的基本工具,分為機器語言、匯編語言和高級語言。機器語言:機器語言:用二進制編碼表示每條指令,是計算機能直接識別和執(zhí)行的語言。用二進制編碼表示每條指令,是計算機能直接識別和執(zhí)行的語言。匯編語言:匯編語言:是用助記符、符號和數(shù)字等來表示指令的程序設(shè)計語言。它與機器語言指令是一一對應(yīng)的。是用助記符、符號和數(shù)字等來表示指令的程序設(shè)計語言。它與機器語言

2、指令是一一對應(yīng)的。BACK第2頁/共150頁BACK第3頁/共150頁BACK第4頁/共150頁操作碼操作碼立即數(shù)或地址立即數(shù)或地址BACK第5頁/共150頁BACK立即數(shù)或地址立即數(shù)或地址操作碼操作碼立即數(shù)或地址立即數(shù)或地址第6頁/共150頁BACK第7頁/共150頁BACK第8頁/共150頁BACK第9頁/共150頁BACK第10頁/共150頁BACK第11頁/共150頁說明:(1) 比較以下三條指令I(lǐng)NC AINC ACC ;ACC是SFR中的一個INC 0E0HA、ACC、0E0H是累加器的三種表示形式。是寄存器尋址;是直接尋址,但都表示累加器的內(nèi)容自加1,即執(zhí)行結(jié)果相同。(2) 注意

3、區(qū)別字節(jié)地址和位地址。如:MOV A,20HMOV C,20H ;(20H)Cy 形式相同,但結(jié)果不同,因為中的20H為字節(jié)地址,中的20H為位地址。 第12頁/共150頁BACK第13頁/共150頁BACK第14頁/共150頁65H47HR0A47H數(shù)據(jù)存儲器數(shù)據(jù)存儲器地址65H以指令中所指定以指令中所指定的的R0內(nèi)容(內(nèi)容(65H)為指針)為指針將片內(nèi)將片內(nèi)RAM 65H單元內(nèi)容單元內(nèi)容47H送送ABACK第15頁/共150頁BACK第16頁/共150頁只有兩條指令:MOVC A, A+PC; (A)+(PC)AMOVC A, A+DPTR ; (A)+(DPTR) A 第17頁/共150

4、頁1EH0302HROMDPTRAA02F1H11H1EH+DPTR內(nèi)容與內(nèi)容與A的內(nèi)容之的內(nèi)容之和為程序存儲器地址和為程序存儲器地址程序存儲器內(nèi)容送程序存儲器內(nèi)容送ABACK第18頁/共150頁BACK第19頁/共150頁 如在程序存儲器中2000H單元有一條雙字節(jié)的相對轉(zhuǎn)移指令“SJMP 75H”。 其操作示意圖如圖25所示。程序存儲器2000H、2001H單元的內(nèi)容80H、75H是“SJMP 75H”的機器語言代碼。實際編程中偏移量75H用標(biāo)號表示,省去我們手工計算轉(zhuǎn)移地址的麻煩,如: SJMP LOOP LOOP: 第20頁/共150頁BACK第21頁/共150頁尋址方式尋址空間立即數(shù)

5、尋址程序存儲器 ROM直接尋址片內(nèi) RAM 低 128B、特殊功能寄存器寄存器尋址工作寄存器 R0-R7、A、B、C、DPTR寄存器間接尋址片內(nèi) RAM 低 128B、片外 RAM變址尋址程序存儲器(A+PC,A+DPTR)相對尋址程序存儲器 256B 范圍(PC+偏移量)位尋址片內(nèi) RAM 的 20H-2FH 字節(jié)地址、部分 SFRBACK第22頁/共150頁BACK第23頁/共150頁Back第24頁/共150頁Back第25頁/共150頁Back 1.1.以累加器以累加器A A為目的操作數(shù)的指令為目的操作數(shù)的指令 (4(4條條, ,即即4 4種尋址方式種尋址方式) ) 2.2.以寄存器以

6、寄存器RnRn為目的操作數(shù)的指令(為目的操作數(shù)的指令(3 3條)條) 3.3.以直接地址為目的操作數(shù)的指令(以直接地址為目的操作數(shù)的指令(5 5條)條) 4.4.以間接地址為目的操作數(shù)的指令(以間接地址為目的操作數(shù)的指令(3 3條)條) 5.5.十六位數(shù)據(jù)傳送指令十六位數(shù)據(jù)傳送指令(1(1條條) ) 6.6.查表指令(查表指令(2 2條)條) 7.7.累加器累加器A A與片外與片外RAMRAM傳送指令傳送指令(4(4條條) ) 8.棧操作指令(二條) 9.9.交換指令交換指令(4(4條條) )第26頁/共150頁2.3.1.1 內(nèi)部數(shù)據(jù)傳送指令內(nèi)部數(shù)據(jù)傳送指令格式:MOV dst,src;(s

7、rc)dst或者,(dst)=(src)各操作數(shù)間傳送關(guān)系如下圖所示。說明:(1) 立即數(shù)不能作dst。(2) direct可以作dst;direct之間還可以互相傳送數(shù)據(jù),提高了數(shù)據(jù)傳送的速度和效率。(3) 無Rn和Rn之間數(shù)據(jù)傳送的指令。 第27頁/共150頁匯編指令格式機器碼格式操作注釋MOV A,Rn;1110 1rrr(Rn) 將工作寄存器 Rn(即R0R7)內(nèi)容傳送到累加器A 中MOV A,direct;1110 0101direct(direct) 將直接尋址所得的片內(nèi)RAM 單元內(nèi)容或特殊功能寄存器中的內(nèi)容傳送到累加器A 中Back1.1.以累加器以累加器A A為目的操作數(shù)的指

8、令為目的操作數(shù)的指令(4(4條條, ,即即4 4種尋址方式種尋址方式) )第28頁/共150頁MOV A,Ri;1110 011i(Ri) 將間接尋址(Ri 為 R0或 R1)所得的片內(nèi) RAM單元內(nèi)容或特殊功能積存器中的內(nèi)容傳送到累加器A中MOV A,#data;0111 0100data #data 將立即數(shù)傳送到累加器A中第29頁/共150頁第30頁/共150頁匯編指令格式 機器碼格式操作注釋MOV Rn,A;1111 1rrr Rn將累加器 A 中內(nèi)容傳送到工作寄存器 Rn(即R0-R7)中MOV Rn,direct;1010 1rrrdirect(direct) Rn將直接尋址所得的

9、片內(nèi) RAM 單元內(nèi)容或特殊功能寄存器中的內(nèi)容傳送到工作寄存器Rn(即R0-R7)中MOV Rn,#data;0111 1rrrdata#data Rn將立即數(shù)傳送到工作寄存器Rn (即R0-R7)中Back第31頁/共150頁n注意注意,在,在89S5189S51指令系統(tǒng)中沒指令系統(tǒng)中沒有有“MOV RnMOV Rn,RnRn”傳送指令。傳送指令。Back第32頁/共150頁匯編指令格式 機器碼格式操作注釋MOV direct,A;1111 0101 direct(A) direct將累加器 A 中內(nèi)容傳送到直接地址direct所指出的片內(nèi)存儲單元中。MOV direct,Rn;111 1r

10、rr direct(Rn) direct將工作寄存器Rn(即R0-R7)中內(nèi)容傳送到直接地址 direct所指出的片內(nèi)存儲單元中Back第33頁/共150頁MOV direct, direct; 1000 0101 源direct目的direct(源direct)目的direct將直接地址源direct所指出的片內(nèi)存儲單元中內(nèi)容傳送到直接地址目的 direct 所指出的片內(nèi)存儲單元中MOV direct,Ri;1000 011i direct(Ri) direct將間接尋址 (Ri為R0或R1) 所得的片內(nèi)RAM單元內(nèi)容傳送到直接地址 direct 所指出的片內(nèi)存儲單元中MOV direct,

11、#data;0111 0101 direct data#data direct將立即數(shù)傳送到直接地址 direct 所指出的片內(nèi)存儲單元中第34頁/共150頁匯編指令格式 機器碼格式操作注釋MOV Ri, A ;1111 011i(A) (Ri)將累加器A 中內(nèi)容傳送到間接尋址(Ri 為 R0或R1)所得的片內(nèi)RAM單元中。MOV Ri, direct;0101 011i direct(direct) (Ri)將直接尋址所得的片內(nèi)RAM 單元內(nèi)容或特殊功能寄存器中的內(nèi)容傳送到間接尋址(Ri 為 R0或R1)所得的片內(nèi)RAM單元中MOV Ri, #data ;0111 011Idata#data

12、 (Ri)將立即數(shù)傳送到間接尋址(Ri為R0或R1)所得的片內(nèi)RAM單元中Back第35頁/共150頁匯編指令格式機器碼格式操作注釋MOV DPTR, #data16;1000 0000高位字節(jié)低位字節(jié)dataH DPHdataL DPL將高 8 位立即數(shù)dataH 送入 DPH,低 8 位立 即 數(shù)dataL 送入 DPL。Back第36頁/共150頁例:例:MOV DPTR #1000HMOV DPTR #1000H;(DPTRDPTR)=1000H=1000H, (DPHDPH)=10H=10H,(DPLDPL)=00H=00H Back第37頁/共150頁【例21】已知:Ri=32H,

13、(30H)=AAH,(31H)=BBH,(32H)=CCH,請問執(zhí)行下列指令后累加器A、50H單元、R6、32H單元和P1口中的內(nèi)容是什么?MOV A,30H; A=(30H)=AAHMOV 50H,A; (50H)=(A)=AAHMOV R6,31H; R6=(31H)=BBHMOV P1,32H; P1=(32H)=CCHMOV R1,#30H; (R1)=(32H)=30HMOV A,R1; A=(R1)=30H所以,(A)=30H,(50H)=AAH,(R6)=BBH,(32H)=30H,(P1)=CCH。 第38頁/共150頁匯編指令格式機器碼格式操作注釋MOVC A,A+DPTR;

14、1001 0011先(PC)+1 PC,后(A)+(DPTR) A(遠(yuǎn)程查表)MOVC A, A+PC;1000 0011先(PC)+1 PC,后(A)+(PC) A(近程查表)Back第39頁/共150頁基地址寄存器+變址寄存器間接尋址PC+A(程序存儲器0-64K)基地址寄存器+變址寄存 器間接尋址DPTR+A(程序存儲器0-64K)A寄存器圖圖2-7 2-7 程序存貯器傳送(查表)程序存貯器傳送(查表)第40頁/共150頁若:初始 ROM 內(nèi)容 2000H00H2001H01H2002H09H2003H04H2004H06H2005H08H2006HFFH2007H66H2008H45H

15、2009HABH200AH11HH第41頁/共150頁第42頁/共150頁若:初始 ROM 內(nèi)容為:100FH01H1010H02H1011H03H1012H04H第43頁/共150頁1000H74 0DMOVA, #0DH;(A)=0DH1002H83MOVC A, A+PC;(PC)=1002+1=1003H,(A)=( (A)+(PC) )=(0D+1003)=(1010H)(A)=01H1003HF8MOV R0, A;(R0)=(A)=01HBack第44頁/共150頁 在 8051 指令系統(tǒng)中,CPU 對片外 RAM 的訪問只能用寄存器間接尋址的方式,且僅有四條指令:Back第45

16、頁/共150頁匯編指令格式 機器碼格式 操作 注釋 MOVX A,Ri ; 1110 001i (Ri) A =0 MOVX A, DPTR ; 1110 0000 (DPTR) A =0 MOVX Ri, A ; 1111 001i (A) (Ri) =0 MOVX DPTR, A ; 1111 0000 (A) (DPTR) =0 1. MCS51沒有專門的I/O指令,它只能通過這種方式與外RAM或外設(shè)打交道,其中,前兩條指令是輸入指令,后兩條是輸出指令。2. 外部RAM的數(shù)據(jù)傳送,只能通過累加器A進行。 第46頁/共150頁第47頁/共150頁寄存器寄存器間接尋址 寄存器間接尋址 R1.

17、R0DP(外RAM0-255) (外RAM0-64K)圖 2-8 外部數(shù)據(jù)存儲器傳送操作第48頁/共150頁MOV R1, #30H;(R1)=30H MOVX A, R1 ;(A)=02H MOV R0, A ;(R0)=(A)=02H MOV A,R1 ; (A)=(R1)=01H MOV R2, A ;(R2)=(A)=01HBack第49頁/共150頁 堆棧:先進后出,后進先出。 匯編指令格式 機器碼格式 操作 注釋 PUSH direct; 1100 0000 direct 先(SP)+1 SP, 后(direct) (SP) PUSH(入棧)指令 PUSH direct; 1101

18、 0000 direct 先(SP) direct, 后(SP)1 SP POP(出棧)指令 Backdirect應(yīng)是直接地址。如:正確 錯誤PUSH ACC PUSH APOP OOHPOP R0 第50頁/共150頁 MOV SP, #18H; (SP)=18H MOV A, #30H; (A)=30H MOV DPTR, #1000H; (DPTR)=1000H PUSH A; (SP)=19H(19H)=30H PUSH DPH; (SP)=1AH(1AH)=10H PUSH DPL; (SP)=1BH(1BH)=00H第51頁/共150頁POP DPL; (DPL)=00H (SP)

19、=1AHPOP DPH; (DPH)=10H (SP)=19HPOP A ; (A)=30H (SP)=18HBack第52頁/共150頁匯編指令格式機器碼格式操作注釋XCH A,Rn;1100 1rrr(A) (Rn)XCH A, direct;1100 0101direct(A) (direct)XCH A, Ri;1100 011i(A) ( (Ri) )Back(1)字節(jié)變換指令第53頁/共150頁 將第二操作數(shù)所指定的工作寄存器 Rn(R0R7),直接尋址和間接尋址的單元內(nèi)容與累加器 A 中內(nèi)容互換。其操作可表示為:A 一字節(jié) 源操作數(shù) 一字節(jié)第54頁/共150頁 初始時:(A)=3

20、4H,(30H)=11HXCH A, 30H ; (A)=11H,(30H)=34HMOV R1, #30H ; (R1)=30HXCH A, R1 ;(A)=34H,(30H)=11H第55頁/共150頁匯編指令格式機器碼格式操作注釋XCHD A, Ri; 1101 011i(A03) (Ri)03)繼續(xù)上例: XCHD A, R1 ; (A)=31H ; (30H)=14HBack第56頁/共150頁 SWAP A; (A03)(A 47),A的高低半字節(jié)交換注意:1、2兩類指令都只影響標(biāo)志位P,但3指令不影響任何標(biāo)志位。 (3) (3) 累加器半字節(jié)交換指令累加器半字節(jié)交換指令第57頁/

21、共150頁【例】初始時:(A)=34H,(30H)=11H,執(zhí)行以下程序段:XCH A, 30H; (A)=11H,(30H)=34HMOV R1, #30H; (R1)=30HXCH A, R1; (A)=34H,(30H)=11HXCHD A, R1; (A)=31H,(30H)=14HSWAP A; (A)=13H第58頁/共150頁Back 算術(shù)邏輯運算和移位類指令中,累加器A是最為繁忙的指令,且多為dst。 算術(shù)運算類指令執(zhí)行后除了增1、減1指令不影響CY、AC、OV外,其它指令會影響改變它們的值。其操作對象為8位的無符號二進制整數(shù),若對帶符號數(shù)或多字節(jié)二進制數(shù)運算,需通過編寫程序?qū)?/p>

22、現(xiàn)。 第59頁/共150頁Back1. 1. 不帶進位加法指令不帶進位加法指令(4(4條條) )2. 2. 帶進位加法指令(帶進位加法指令(4 4條)條)3. 3. 十進制調(diào)整指令十進制調(diào)整指令(1(1條條) )4. 4. 帶借位減法指令(帶借位減法指令(4 4條)條)5. 5. 乘法指令(乘法指令(1 1條)條)6. 6. 除法指令(除法指令(1 1條)條)7. 7. 加加1 1指令(指令(5 5條)條)8. 8. 減減1 1指令指令(4(4條條) )第60頁/共150頁Back匯編指令格式機器碼格式操作注釋ADD A, Rn;0010 1rrr(A)+(Rn) A將工作寄存器內(nèi)容和累加器

23、A 中的數(shù)相加, “和”存放于累加器 A中ADD A,direct;0010 0101direct(A)+(direct) A將內(nèi)部 RAM 單元內(nèi)容和累加器 A中的 數(shù)相 加,“和”存放于累加器A中第61頁/共150頁ADD A,Ri ;0010 011i(A)+(Ri) A將間接尋址(Ri為 R0 或 R1)所得的片內(nèi) RAM 單元中內(nèi)容和累加器 A 中的數(shù)相加, “和”存放于累加器A中ADD A, #data;0010 0100data(A)+#data A將立即數(shù)的 8 位無符號二進制數(shù)和累加器 A 中的數(shù)相加, “和”存放于累加器A中第62頁/共150頁第63頁/共150頁若: (A

24、)=78H , (R0)=64H執(zhí)行 ADD A,R0 后,結(jié)果及 PSW=? (A) :78H= 01111000 B + (R0) :64H= 01100100 B (A) :DCH= 11011100 B 標(biāo)志位: CY=0, AC=0, OV=1, P=1,即 PSW=05H 結(jié)果: (A)=DCH (R0)=64HBack第64頁/共150頁Back匯編指令格式機器碼格式操作注釋ADDC A, Rn ;0011 1rrr(A)+CY+(Rn) A將工作寄存器內(nèi)容、CY 位和累加器 A 中的數(shù)相加, “和”存放于累加器A 中ADDC A,direct; 0011 0101direct(

25、A)+(direct)+CY A將內(nèi)部 RAM 單元內(nèi)容、CY 位和累加器 A 中的 數(shù) 相 加 ,“和”存放于累加器 A 中第65頁/共150頁ADDC A,Ri;0011 011i(A)+(Ri)+CY A將間接尋址 (Ri為 R0 或 R1)所得的片內(nèi)RAM單元中內(nèi)容、 CY位和累加器 A中的數(shù)相加,“和”存放于累加器A中ADDC A, #data;0011 0100data(A)+#data+CY A將立即數(shù)的 8位無符號二進制數(shù)、CY 位和累加器 A 中的數(shù)相加, “和”存放于累加器A中第66頁/共150頁 本組指令的功能是同時把源操作數(shù)所指出的內(nèi)容和進位標(biāo)志未 CY 都加到累加器

26、A 中,結(jié)果存放到 A 中,其余的功能和上面的 ADD 指令相同。本組指令常用于多字節(jié)加法。第67頁/共150頁匯編指令格式機器碼格式操作注釋DA A;1101 0100若(A0-3)9或AC=1,則(A0-3)+6 A0-3同時,若(A4-7)9 或 CY=1,則(A4-7)+6 A4-7調(diào)整累加器內(nèi)容為BCD 碼。Back第68頁/共150頁第69頁/共150頁解:先執(zhí)行 ADDC A,R3; (A) :0101 0110 BCD:56 (R3) :0110 0111 BCD:67 (+) (CY) :0000 0001 BCD:01 和:1011 1110即(A)=1011 1110 且

27、影響標(biāo)志位 CY=0,AC=0;第70頁/共150頁 再執(zhí)行 DA A;因為 A 中的高四位值為 11,大于 9,低四位值為 14,也大于 9,所以內(nèi)部調(diào)整自動進行加 66H的操作: 1011 1110 調(diào)整+) 0110 0110 1 0010 0100 BCD:124即(A)=0010 0100=24BCD,CY=1;AC=1。Back第71頁/共150頁 例:有兩個BCD碼表示的4位十進制數(shù),分別存放在內(nèi)部數(shù)據(jù)存儲器的50H51H單元和60H61H單元,試編寫程序求這兩個數(shù)之和,結(jié)果的和存放在40H41H單元,進位存放在42H單元。解:求兩個BCD數(shù)之和的運算程序段如下:MOVA,50H

28、;取第一個數(shù)低2位BCD碼ADD A,60H;加第二個數(shù)低2位BCD碼DA A;十進制調(diào)整MOV 40H,A;保存結(jié)果的低2位MOV A,51H;取高位BCD碼ADDC A,61H;高位相加DA A;十進制調(diào)整MOV 41H,A;保存結(jié)果的高2位MOV A,#00HADDC A,#00H;計算進位MOV 42H,A;保存進位第72頁/共150頁匯編指令格式機器碼格式操作注釋SUBB A, Rn;1001 1rrr(A)-CY-(Rn) A將累加器 A 中的數(shù)減去 CY 位及工作寄存器內(nèi)容“差”存放于累加器 A 中SUBB A,direct;1001 0101direct(A)-CY-(dire

29、ct) A將累加器 A 中的數(shù)減去 CY 位及內(nèi)部RAM單 元 內(nèi) 容“差”存放于累加器 A 中Back第73頁/共150頁SUBB A,Ri ;1001 011i(A)-CY-(Ri) A將累加器 A 中的數(shù)減去 CY 位及間接尋址(Ri 為 R0 或R1) 所得的片內(nèi) RAM單 元 中 內(nèi) 容 ,“差”存放于累加器 A 中SUBB A, #data;1001 0100data(A)-CY-#data A將累加器 A 中的數(shù)減去 CY 位及立即數(shù)的 8 位無符號二進制數(shù), “差”存放于累加器 A 中第74頁/共150頁第75頁/共150頁 解: (A)=0C9H= 11001001 B-)

30、Cy= 1 = 00000001 B 11001000 B -) (R2)=54H = 01010100 B (A)=74H = 01110100 B結(jié)果為: (A)=74H標(biāo)志位為:Cy=0 AC=0 OV=1 P=0Back第76頁/共150頁匯編指令格式機器碼格式操作注釋MUL AB ; 1010 0100(A)(B) B15-8 A7-0將累加器 A 和寄存器 B 中兩個無符號數(shù)相乘,所得 16位積的低字節(jié)存放在 A 中,高字節(jié)存放中B中。Back第77頁/共150頁匯編指令格式機器碼格式操作注釋DIV AB ;1000 0100(A)/(B)的商 A(A)/(B)的余數(shù) BA 中內(nèi)容

31、除以 B中內(nèi)容,整數(shù)商存于 A 中,余數(shù)存于B中。Back若除數(shù)若除數(shù)(B)=00H,則結(jié)果無法確定,則,則結(jié)果無法確定,則OV置置1。 CY總是被清總是被清0。該操作也影響。該操作也影響標(biāo)志位標(biāo)志位P。 第78頁/共150頁匯編指令格式機器碼格式操作注釋INC A ;0000 0100(A)+1 AA 中內(nèi)容加1。INC Rn;0000 1rrr(Rn)+1 RnRn 中內(nèi)容加1。INC direct;0000 0101direct(direct)+1directDirect 單元中內(nèi)容加1。INC Ri;0000 011I(Ri)+1 (Ri)Ri 間接尋址所得的片內(nèi) RAM 單元中內(nèi)容加

32、1。INC DPTR;1010 0011(DPTR)+1 DPTRDPTR中內(nèi)容加1Back第79頁/共150頁除第一條指令會影響 P 外,其他均不影響 PSW中各標(biāo)志位。 ADD A,#01H 和 INC A 都是使累加器 A 的內(nèi)容加 1,但前者對 Cy 有影響。 第80頁/共150頁匯編指令格式機器碼格式操作注釋DEC A ;0001 0100(A)-1 AA 中內(nèi)容減1。DEC Rn;0001 1rrr(Rn)-1 RnRn 中內(nèi)容減 1。DEC direct;0001 0101direct(direct)-1directDirect 單元中內(nèi)容減 1。DEC Ri;0001 011I

33、(Ri)-1 (Ri)Ri 間接尋址所得的片內(nèi) RAM 單元中內(nèi)容減 1。Back它的規(guī)定和加 1 指令一樣,只是少了一條 16位的指令。 第81頁/共150頁 邏輯操作指令包括: 與、 或、 異或、 清除、求反、 移位等操作。 該指令組全部操作數(shù)都是8位24條指令。 Back第82頁/共150頁Back第83頁/共150頁匯編指令格式機器碼格式操作注釋CLR A ;1110 01000 A清累加器A 為 0,只影響標(biāo)志位P。Back(1) (1) 累加器累加器A A清清0 0指令指令第84頁/共150頁匯編指令格式 機器碼格式 操作 注釋 CPL A ; 1111 0100 (A) A 對累

34、加器 A 內(nèi)容逐位取反,不影響標(biāo)志位 Back【思考】 編程序段,實現(xiàn)功能:對30H單元中的數(shù)X求補并保存在原單元。 第85頁/共150頁匯 編 指 令 格 式機 器 碼 格 式操 作注 釋RL A ;0010 0011 a7 a0累加器 A 的內(nèi)容循環(huán)左移 一 位Back(1)(1)累加器累加器A A循環(huán)左移指令循環(huán)左移指令第86頁/共150頁匯編指令格式機器碼格式操作注釋RR A ;0000 0011 a7 a0將累加器 A的內(nèi)容循環(huán)右移一位第87頁/共150頁匯編指令格式機器碼格式操作注釋RLC A ;0011 0011 CY a7 a0將累加器 A 的內(nèi)容連同進位位CY一起循環(huán)左移一位

35、。 注注意意:該該操操作作影影響響標(biāo)標(biāo)志志位位 P P 和和 C CY Y??煽梢砸岳糜帽颈局钢噶盍顚?A A 的的內(nèi)內(nèi)容容做做乘乘 2 2 處處理理,但但要要注注意意進進位位位位的的處處理理。 第88頁/共150頁匯編指令格式機器碼格式操作注釋RRC A ;0001 0011 CY a7 a0將累加器 A 的內(nèi)容連同進位位CY一起循環(huán)右移一位。 注注意意:該該操操作作影影響響標(biāo)標(biāo)志志位位 P P 和和 C CY Y。 第89頁/共150頁例如:無符號例如:無符號 8 8 位二進制數(shù)位二進制數(shù) (A A)=10111101B=BDH=10111101B=BDH, (, (CYCY)=0=

36、0。 將(將(A A)乘)乘 2 2,執(zhí)行指令,執(zhí)行指令 “RLC ARLC A”后”后 結(jié)果: (結(jié)果: (A A)=0111=0111 1010B=7AH1010B=7AH, (, (CYCY)=1=1, 而而 17AH17AH 正是正是 BDHBDH 的的 2 2 倍。倍。 Back第90頁/共150頁匯編指令格式機器碼格式操作注釋ANL A, Rn;0101 1rrr(A)(Rn) AANL A,direct;0101 0101direct(A)(direct) AANL A, Ri;0101 011i(A)(Ri) AANL A, #data;0101 0100#data(A)#da

37、ta AANL direct, A;0101 0010direct(direct)(A) directANL direct,#data;0101 0011direct#data(direct)#data directBack第91頁/共150頁Back第92頁/共150頁 應(yīng)用:可以使目的操作數(shù)清零或保留其中有用的位,如ANL dst,80H 【思考】將41H(ASCII碼值)的高4位清零,低4位不變,何法?MOVA,#41HANL A,#0FH 或MOV direct,#0FH 第93頁/共150頁匯編指令格式機器碼格式操作注釋ORL A, Rn;0100 1rrr(A)(Rn) AORL

38、A,direct;0100 0101direct(A)(direct) AORL A, Ri;0100 011i(A)(Ri) AORL A, #data;0100 0100#data(A)#data AORL direct, A;0100 0010direct(direct)(A) directORL direct,#data;0100 0011direct#data(direct)#data directBack第94頁/共150頁Back第95頁/共150頁匯編指令格式機器碼格式操作注釋XRL A, Rn;0110 1rrr(A)(Rn) AXRL A,direct;0110 0101d

39、irect(A)(direct) AXRL A, Ri;0110 011i(A)(Ri) AXRL A, #data;0110 0100#data(A)#data AXRL direct, A;0110 0010direct(direct)(A) directBack第96頁/共150頁Back第97頁/共150頁上述邏輯操作類指令歸納如圖。上述邏輯操作類指令歸納如圖。第98頁/共150頁例:拆字程序:在內(nèi)部RAM 40H單元保存有以壓縮BCD碼表示的2位十進制數(shù),編程將它們拆開,分別保存在內(nèi)部RAM的41H、42H單元。程序如下:MOV A,40H;壓縮BCD碼送累加器ANL A,#0FH;

40、高4位清0,保留低4位MOV 41H,A;保存低4位BCD碼MOV A,40H;取數(shù)據(jù)MOV A,#0F0H;低4位清0,保留高4位SWAP A;高低位交換MOV 42H,A;保存高4位BCD碼 第99頁/共150頁Back第100頁/共150頁 一個計算機“智商”的高低,取決于它的轉(zhuǎn)移類指令的多少,特別是條件轉(zhuǎn)移指令的多少。計算機運行過程中,有時因為操作的需要,程序不能按順序逐條執(zhí)行指令,需要改變程序的運行方向,即將程序跳轉(zhuǎn)到某個指定的地址再順序執(zhí)行下去。某些指令具有修改程序計數(shù)器 PC 內(nèi)容的功能,因為 PC 內(nèi)容是將要執(zhí)行的下一條指令的地址,所以計算機執(zhí)行這類指令就能夠控制程序轉(zhuǎn)移到新的

41、地址上去執(zhí)行。第101頁/共150頁Back第102頁/共150頁 無條件轉(zhuǎn)移指令是當(dāng)程序執(zhí)行到該指令時,程序無條件的轉(zhuǎn)移到指令所提供的地址處執(zhí)行。無條件轉(zhuǎn)移指令有長轉(zhuǎn)移、短轉(zhuǎn)移、相對轉(zhuǎn)移和間接轉(zhuǎn)移 4 條指令。該類指令結(jié)果不影響程序狀態(tài)字寄存器 PSW。 Back第103頁/共150頁匯編指令格式機器碼格式操作注釋AJMP addr11 ;a10a9a8 0 0001a7 a0先(PC)+2 PC,addr11 PC100,(PC1511)不變Back第104頁/共150頁Back第105頁/共150頁 LJMP add16 ; ,add16 PC00000010a15-a8a7-a0Bac

42、k第106頁/共150頁Back FFFFH 0000HG LJMP addr16 64KB ROM 地址 ORG 0000H;開機后(PC)=0000HLJMP 0F80H 已知某單片機監(jiān)控程序始地址為0F80H,請問可用什么辦法可使單片機開機后自動執(zhí)行該監(jiān)控程序。第107頁/共150頁BackSJMP rel ;1000 0000rel (相對地址) 先(PC)+2 PC 后(PC)+rel PC第108頁/共150頁第109頁/共150頁01110011JMP A+DPTR;, (A)+(DPTR) PCBack第110頁/共150頁第111頁/共150頁例如:根據(jù)累加器 A 中命令鍵鍵

43、值,設(shè)計命令鍵操作程序入口跳轉(zhuǎn)表: CLR C ;清進位 RLC A ;鍵值乘 2 MOV DPTR,#JPTAB ;指向命令鍵跳轉(zhuǎn)表首址 JMP A+DPTR ;散轉(zhuǎn)入命令鍵入口JPTAB:AJMP CCS0 ;雙字節(jié)指令 AJMP CCS1 AJMP CCS2第112頁/共150頁Back第113頁/共150頁總結(jié): 四個無條件轉(zhuǎn)移指令的轉(zhuǎn)移范圍。 除長轉(zhuǎn)指令外,其他轉(zhuǎn)移指令可以生成浮動 代碼,在64KB任意范圍內(nèi)浮動。 涉及到的目標(biāo)地址和偏移量均可用符號地址表示。 第114頁/共150頁 這是一條單字節(jié)指令,除 PC 加 1 外,不影響其它寄存器和標(biāo)志位。 “NOP”指令常用于產(chǎn)生一個機

44、器周期的延遲。NOP ;00000000(PC)+1 PCBack第115頁/共150頁Back(1) (1) 判零轉(zhuǎn)移指令判零轉(zhuǎn)移指令 按給出的條件判斷,滿足則轉(zhuǎn)移,不滿足繼續(xù)執(zhí)行下一條指令,轉(zhuǎn)移的目標(biāo)地址為PC當(dāng)前值為中心的-128+127共256B范圍,共有三類: 第116頁/共150頁BackBack第117頁/共150頁 功能: (dst)和(scr)作為條件,進行比較,若它們的值不等則轉(zhuǎn)移。 目標(biāo)地址: (PC) 當(dāng)前值+rel源地址+3+rel,同時若(dst)(src)則 CY 清零, (dst)(src) ,CY 置 1, (dst)(scr)時,順序往下執(zhí)行。即: Back

45、CJNE(dst) , (src) ,rel ;三字節(jié)指令 第118頁/共150頁格式:CJNE A,direct,rel ;先 (PC)+3PCCJNE A,#data,rel ;先 (PC)+3PC第119頁/共150頁CJNE Rn,#data,rel;先(PC)+3PCCJNE Ri,#data,rel;先(PC)+3PC 第120頁/共150頁說明:(1) rel為8位的帶符號數(shù),常用符號地址表示。指令的相對轉(zhuǎn)移范圍為-125+130,從(PC)+3為起始地址的+127-128字節(jié)單元地址。(2) 指令執(zhí)行后均不影響任何操作數(shù)。(3) 執(zhí)行過程的比較操作實際上是減法操作,只是不保存差

46、值,而是形成標(biāo)志位CY。(4) 若(dst)和(src)均為無符號數(shù),則根據(jù)CY可判斷大?。?CY0時,(dst)(src);CY=1時,(dst)(src) 第121頁/共150頁DJNZ Rn,REL ;11011rrrrel(PC)+2 PC (Rn)-1 Rn當(dāng)(Rn)=/0,則(PC)+rel PC當(dāng)(Rn)=0,則順序執(zhí)行Back第122頁/共150頁DJNZ direct,rel ;11010101directrel(PC)+3 PC (direct)-1 direct 當(dāng)(direct)=/0,則(PC)+rel PC 當(dāng)(direct)=0,則結(jié)束循環(huán),程序往下執(zhí)行第123頁

47、/共150頁Back【思考思考】請用一個示意圖歸納條件轉(zhuǎn)移指令請用一個示意圖歸納條件轉(zhuǎn)移指令。 第124頁/共150頁 在程序設(shè)計中,有時因操作要求,需反復(fù)執(zhí)行某段程序,是這段程序能被公用。這樣可減少程序編寫和調(diào)試的工作量,于是引進了主程序和子程序的概念。指令系統(tǒng)中一般都有主程序調(diào)用子程序的指令和從子程序返回主程序的指令。通常把具有一定功能的公用程序段作為子程序,子程序的最后一條指令為返回主程序指令(RET) 。主程序轉(zhuǎn)子程序以及子程序返回主程序的過程入圖所是。Back第125頁/共150頁 短 調(diào) 用 指 令 提 供 了11 位目標(biāo)地址,限定在2K 地址空間內(nèi)調(diào)用。Back第126頁/共15

48、0頁ACALL addr11 ;a10a9a810001addr07addr11常用符號地址代替。調(diào)用范圍同AJMP指令。 第127頁/共150頁LCALL addr16 ;00010010addr8-15addr0-7(PC)+3 PC 斷點值(SP)+1 SP(PC0-7) (SP)(SP)+1 SP 壓入斷點(PC8-15) (SP) addr0-15 PCBackaddr16常用符號地址代替。調(diào)用范圍同LJMP指令。 第128頁/共150頁RET;00100010(SP) PC8-15, 彈出斷點高 8 位(SP)-1 SP(SP) PC0-7, 彈出斷點低 8 位(SP)-1 SPB

49、ack第129頁/共150頁 RET 指令是從子程序返回。 當(dāng)程序執(zhí)行到本指令時,表示結(jié)束子程序的執(zhí)行,返回調(diào)用指令(ACALL 或 LCALL)的下一條指令處(斷點)繼續(xù)往下執(zhí)行。 第130頁/共150頁00110010RETI ;(SP) PC8-15,(SP)-1 SP(SP) PC0-7, (SP)-1 SPBack在編程時不能將兩種返回指令混用,中斷返回一定要安排在中斷服務(wù)程序的最后。 第131頁/共150頁例 編程:利用子程序技術(shù)把內(nèi)RAM 20H2AH單元中的數(shù)清零。 【思考】把本例題中的DJNZ指令改成CJNE指令,程序該如何修改? 第132頁/共150頁Back第133頁/共

50、150頁第134頁/共150頁第135頁/共150頁Back第136頁/共150頁匯編指令格式機器碼格式操作注釋MOV C,bit ; 1010 0010位地址(bit)(bit) CMOV bit,C ; 1001 0010位地址(bit)(C) bit 位地址(bit)Back第137頁/共150頁匯編指令格式機器碼格式操作注釋CLR C ;1100 00110 CCLR bit ;1100 0010位地址(bit)0 bitBack(1)(1)位清0指令第138頁/共150頁匯編指令格式機器碼格式操作注釋SETB C ;1101 00111 CSETB bit ;1101 0010位地址(bit)1 bitBack第139頁/共150頁匯編指令格式機器碼格式操作注釋CPL C ;1011 0011(C) CCPL bit ;1011 0010位地址(bit)(bit) bitBack第140頁/共150頁匯編指令格式機器碼格式操作注釋ANL C,bit ;

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論