第2章指令系統(tǒng)及匯編語言程序設計_第1頁
第2章指令系統(tǒng)及匯編語言程序設計_第2頁
第2章指令系統(tǒng)及匯編語言程序設計_第3頁
第2章指令系統(tǒng)及匯編語言程序設計_第4頁
第2章指令系統(tǒng)及匯編語言程序設計_第5頁
已閱讀5頁,還剩107頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第2章章 指令系統(tǒng)指令系統(tǒng) 及匯編語言程序設計及匯編語言程序設計北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2 2教學目的及內(nèi)容教學目的及內(nèi)容q熟悉單片機的指令格式及標識熟悉單片機的指令格式及標識q熟悉單片機的尋址方式熟悉單片機的尋址方式q掌握指令系統(tǒng)中的常用指令的用法掌握指令系統(tǒng)中的常用指令的用法q了解匯編語言偽指令及其用法了解匯編語言偽指令及其用法q熟悉匯編語言程序的三種基本結構熟悉匯編語言程序的三種基本結構北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計3 32.1單片機的指令格式及

2、標識單片機的指令格式及標識2.1.1 指令格式指令格式q不同的指令完成不同的操作,實現(xiàn)不同功能,具有不同的不同的指令完成不同的操作,實現(xiàn)不同功能,具有不同的格式。一條指令要指出完成何種操作,操作的對象在那里,格式。一條指令要指出完成何種操作,操作的對象在那里,具體出現(xiàn)的形式描述歸納如下:具體出現(xiàn)的形式描述歸納如下:q標號:標號:操作碼助記符操作碼助記符 目的操作數(shù),源操作數(shù)目的操作數(shù),源操作數(shù);注釋;注釋q(1)標號;標明該指令在內(nèi)存中所占的地址,稱為符號地)標號;標明該指令在內(nèi)存中所占的地址,稱為符號地址,作用;為轉移指令提供轉移的目的地址址,作用;為轉移指令提供轉移的目的地址q(2)操作碼

3、助記符指出該指令的功能,也即完成的操作)操作碼助記符指出該指令的功能,也即完成的操作q(3) 操作數(shù)是指指令操作的對象在那里,通常用相應的操作數(shù)是指指令操作的對象在那里,通常用相應的尋址方式來說明。在尋址方式來說明。在51單片機中依據(jù)操作數(shù)的多少,指令可單片機中依據(jù)操作數(shù)的多少,指令可分為無操作數(shù)指令,單操作數(shù)分為無操作數(shù)指令,單操作數(shù)指令指令,雙操作數(shù),雙操作數(shù)指令指令,三操作三操作數(shù)指令數(shù)指令北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計4 4指令系統(tǒng)指令系統(tǒng)(4)注釋是對具體指令的解釋,方便編程者對程序)注釋是對具體指令的解釋,方便編程

4、者對程序的的理解理解和記憶。可有可無。和記憶。可有可無。1、單字節(jié)指令、單字節(jié)指令1)8位二進數(shù)表示操作碼。位二進數(shù)表示操作碼。 例:例:NOP機器碼為機器碼為00H2)8位位二進數(shù)二進數(shù)又有操作碼,又有寄存器編碼又有操作碼,又有寄存器編碼 例:例: MOV A , Rn ; 11101.北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計5 52、雙字節(jié)指令(、雙字節(jié)指令(*) 指令編碼占兩個字節(jié),第一個為操作碼,第二個為操作數(shù)指令編碼占兩個字節(jié),第一個為操作碼,第二個為操作數(shù)例:例:MOV A , #85H ;機器碼為:第一字節(jié);機器碼為:第一

5、字節(jié) 74H,第二字節(jié),第二字節(jié)為為85H3、三字節(jié)指令(、三字節(jié)指令(*) 第一字節(jié)為操作碼,第二字節(jié)為第一操作數(shù),第三個字節(jié)第一字節(jié)為操作碼,第二字節(jié)為第一操作數(shù),第三個字節(jié)為第二操作數(shù)為第二操作數(shù)例:例:MOV direct , #DATA MOV 78H , #80H 第一字節(jié):第一字節(jié):75H,第二字節(jié):,第二字節(jié):78H,第三字節(jié):,第三字節(jié):80H北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計6 62.1.2指令中用到的標識符指令中用到的標識符指令形式再寫如下指令形式再寫如下標號:標號: 助記符操作碼助記符操作碼 操作數(shù)操作數(shù)

6、; 注釋注釋標號;第一個字母不能為數(shù)字,字母個數(shù)不能多于標號;第一個字母不能為數(shù)字,字母個數(shù)不能多于6個。且須用個。且須用大寫英文字母開始。標號可有可無,若有,則代表該指令第大寫英文字母開始。標號可有可無,若有,則代表該指令第一個字節(jié)所存放的存儲器單元的地址。所以標號又稱為符號一個字節(jié)所存放的存儲器單元的地址。所以標號又稱為符號地址,匯編時把該地址賦值給標號。地址,匯編時把該地址賦值給標號。操作數(shù)操作數(shù)可有可有03個,若操作數(shù)以字母開頭,則前面應加個,若操作數(shù)以字母開頭,則前面應加0。多。多個操作數(shù)之間用個操作數(shù)之間用“,”隔開隔開 。指令中常用的標識符指令中常用的標識符1、Ri和和Rn:表示

7、當前工作寄存器區(qū)中的工作寄存器,表示當前工作寄存器區(qū)中的工作寄存器,i取取0或或1,表示表示R0或或R1,n取取07,表示,表示R0R72、#data:表示包含在指令中的表示包含在指令中的8位立即數(shù)位立即數(shù)3、#data16:表示包含在指令中的:表示包含在指令中的16位立即數(shù)位立即數(shù)4、rel:以補碼形式表示的以補碼形式表示的8位相對偏移量,范圍位相對偏移量,范圍-127127,主要,主要用在相對尋址指令中用在相對尋址指令中5、addr16和和addr11:分別表示分別表示16位直接地址和位直接地址和11位直接地址。位直接地址。北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程

8、序設計指令系統(tǒng)及匯編語言程序設計7 72.1.2指令中用到的標示符指令中用到的標示符6、direct:表示直接尋址的地址。表示直接尋址的地址。7、bit:表示可按位尋址的直接位地址:表示可按位尋址的直接位地址8、(X):表示表示X單元的內(nèi)容單元的內(nèi)容9、/和和 :/表示對該位操作數(shù)取反,表示對該位操作數(shù)取反, 將箭尾一方的內(nèi)容將箭尾一方的內(nèi)容送入箭頭所指的地方送入箭頭所指的地方10、A:累加器累加器11、B:專用寄存器,用于專用寄存器,用于MUL和和DIV指令中指令中12、C:進位標志或進位位,或布爾處理機中的累加器進位標志或進位位,或布爾處理機中的累加器13、:間址寄存器或基址寄存器的前綴,

9、如:間址寄存器或基址寄存器的前綴,如Ri, A,DPTR14、DPTR:數(shù)據(jù)指針,用作:數(shù)據(jù)指針,用作16位的地址寄存器位的地址寄存器北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計8 82.2 尋址方式(尋找操作數(shù)或操作對象的方式)尋址方式(尋找操作數(shù)或操作對象的方式)要處理的數(shù)據(jù)通常存放在寄存器,要處理的數(shù)據(jù)通常存放在寄存器,RAM數(shù)據(jù)區(qū)中,如何以適當?shù)臄?shù)據(jù)區(qū)中,如何以適當?shù)男问奖磉_出來這就是尋址方式,或尋找操作數(shù)的方式形式表達出來這就是尋址方式,或尋找操作數(shù)的方式1、立即尋址方式立即尋址方式(常數(shù)尋址方式常數(shù)尋址方式)在數(shù)據(jù)的前面加上在數(shù)

10、據(jù)的前面加上#標識號,必須是操作數(shù)中的源操作數(shù)形式標識號,必須是操作數(shù)中的源操作數(shù)形式 MOV A, #6FH ; A=6FH,雙字節(jié)指令,雙字節(jié)指令,op(操作碼)為(操作碼)為74H,操作數(shù)為操作數(shù)為6FH,兩者相跟放在程序存儲器中。,兩者相跟放在程序存儲器中。 MOV DPTR, #1234H ; DPTR=1234H 三字節(jié)指令三字節(jié)指令 注:常數(shù)用注:常數(shù)用#data表示,常數(shù)是指令代碼的一部分表示,常數(shù)是指令代碼的一部分 尋址空間:程序存貯器尋址空間:程序存貯器北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計9 92、寄存器尋址、寄

11、存器尋址 操作數(shù)在寄存器中,使用時在指令中直接使用寄存器的名操作數(shù)在寄存器中,使用時在指令中直接使用寄存器的名稱,指令的操作碼中包含了參加操作的寄存器的編號稱,指令的操作碼中包含了參加操作的寄存器的編號 MOV A, R0; A (R0),R0寄存器中的數(shù)據(jù)送到寄存器中的數(shù)據(jù)送到A累加器累加器 ADD A, R0; A (A)+(R0) INC R0尋址空間:尋址空間:R0R7,A ,B ,CY(位)(位), DPTR, AB(乘除(乘除法),其法),其R0R7由操作碼低三位的由操作碼低三位的8種組合表示,種組合表示, A,B,CY(位)(位), DPTR則隱含在操作碼中則隱含在操作碼中北京航

12、空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計10103、直接尋址方式、直接尋址方式 指令中含有操作數(shù)的直接地址,該地址指出了參與操作的數(shù)指令中含有操作數(shù)的直接地址,該地址指出了參與操作的數(shù)據(jù)所在的據(jù)所在的RAM中的字節(jié)地址或位地址。中的字節(jié)地址或位地址。此方式中操作數(shù)存儲空間有三種:此方式中操作數(shù)存儲空間有三種:1)內(nèi)部)內(nèi)部數(shù)據(jù)數(shù)據(jù)存儲器的低存儲器的低128個字節(jié)單元(個字節(jié)單元(00H7FH) MOV A, 4FH; A=(4FH)2)位地址空間(可尋址位)位地址空間(可尋址位) MOV C , 00H ; 00H是位地址(是位地址(00H5

13、FH)3)專用功能寄存器(只能用直接尋址方式訪問,專用功能寄存專用功能寄存器(只能用直接尋址方式訪問,專用功能寄存器有專門的地址,寄存器名僅是一個代號,給其送數(shù),其器有專門的地址,寄存器名僅是一個代號,給其送數(shù),其實是給一個地址送數(shù))實是給一個地址送數(shù)) MOV A, P0 MOV IE , #85H 尋址空間:內(nèi)部尋址空間:內(nèi)部RAM低低128字節(jié),字節(jié),SFR。專用功能寄存器。專用功能寄存器。內(nèi)部內(nèi)部數(shù)據(jù)數(shù)據(jù)存儲器中的可尋址位存儲器中的可尋址位北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計11114、寄存器間接尋址、寄存器間接尋址 是指存

14、儲器單元的地址存放在寄存器中,在指令中通過提供是指存儲器單元的地址存放在寄存器中,在指令中通過提供寄存器來使用對應的存儲單元。寄存器來使用對應的存儲單元。“形式形式寄存器名寄存器名” 1)訪問片內(nèi)訪問片內(nèi)RAM或片外的某頁或片外的某頁256字節(jié)空間時,可用字節(jié)空間時,可用R0,R1作作為地址寄存器。此類指令為單字節(jié)指令,操作碼的最低位表示為地址寄存器。此類指令為單字節(jié)指令,操作碼的最低位表示是采用是采用R0還是還是R1 MOV A, R1 ; A=(R1) 若若(R1)=40H, 則則A=(40H) MOV 60H, #3BH MOV R0 , #60H MOV A, R0 則則(A)=3BH

15、 MOVX A, R0; A=(R0) 外部數(shù)據(jù)存儲器外部數(shù)據(jù)存儲器 ExternalMOV P2, #10H P2 放高放高8位地址位地址北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計1212q內(nèi)部內(nèi)部RAM的的80H-FFH高高128個字節(jié)與個字節(jié)與SFR地址是重疊的,即高地址是重疊的,即高128字節(jié)的字節(jié)的RAM和和SFR地址相同,但物理上分開,究竟是訪問誰,地址相同,但物理上分開,究竟是訪問誰,用尋址方式區(qū)分。用尋址方式區(qū)分。 直接尋址方式訪問直接尋址方式訪問SFR 間接尋址訪問高間接尋址訪問高128字節(jié)的字節(jié)的RAM例如:例如: M

16、OV 0A0H, #data ; 訪問訪問SFR中的中的0A0H,即,即P2口口 MOV R0, #data ; 若若R0的內(nèi)容為的內(nèi)容為0A0H,則訪問地址,則訪問地址 為為0A0H的數(shù)據(jù)單元,而不是訪問的數(shù)據(jù)單元,而不是訪問P2口口注:堆棧操作也是間接尋址方式,所以高注:堆棧操作也是間接尋址方式,所以高128字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)RAM也可以也可以作為堆棧區(qū)使用作為堆棧區(qū)使用北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計13132)訪問片外)訪問片外RAM時,可用時,可用DPTR作間址寄存器,它作間址寄存器,它為為16位,可以訪問片外整個位,可

17、以訪問片外整個64K的地址空間。的地址空間。MOVX A, DPTR; A=(DPTR)尋址空間:內(nèi)部尋址空間:內(nèi)部RAM(R0, R1, SP); 外部外部RAM(R0, R1, DPTR)3)執(zhí)行)執(zhí)行push,pop時,也可采用時,也可采用sp為間址寄存器為間址寄存器北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計14145、基址加變址尋址、基址加變址尋址(*)基址寄存器:基址寄存器:DPTR , PC 變址寄存器:變址寄存器:A MOVC A, A+DPTR ; A=(DPTR)+(A) 單字節(jié)單字節(jié) MOVC A, A+PC ; PC

18、=(PC)+1 ; A=(PC)+(A)變址尋址方式只適用于變址尋址方式只適用于8051的程序存貯器,用于讀的程序存貯器,用于讀取數(shù)據(jù)表取數(shù)據(jù)表北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計15156、相對尋址尋址方式、相對尋址尋址方式 PC內(nèi)容為基地址,指令的第二字節(jié)為偏移量,兩內(nèi)容為基地址,指令的第二字節(jié)為偏移量,兩者相加,和為跳轉指令的轉移目的地址者相加,和為跳轉指令的轉移目的地址 SJMP rel ;PC=PC+2 PCPC北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計16167、位

19、尋址、位尋址 SETB bit ; (bit)=1 尋址空間:內(nèi)部尋址空間:內(nèi)部RAM中可位尋址區(qū);中可位尋址區(qū); SFR 可位尋址位可位尋址位北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計1717 方 式 利用的變量尋址空間立即尋址程序存儲器直接尋址片內(nèi)RAM低128個字節(jié),專用寄存器,片內(nèi)RAM的位尋址空間寄存器尋址R0R7,A,B, CY,DPTR寄存器間接尋址R0,R1, SP片內(nèi)RAMR0,R1, DPTR外部RAM基址加變址A+PC, A+DPTR程序存儲器相對尋址PC+偏移量程序存儲器,跳轉范圍256B位尋址片內(nèi)RAM位尋址區(qū)和

20、可位尋址的專用功能寄存器北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計18182.3 指令系統(tǒng)簡介指令系統(tǒng)簡介51單片機指令共單片機指令共111條,按功能分類:條,按功能分類:5類類數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令29條條算術運算類指令算術運算類指令24條條邏輯操作類指令邏輯操作類指令24條條位操作類指令位操作類指令17條條控制轉移類指令控制轉移類指令17條條北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計19192.3.1 數(shù)據(jù)傳輸類指令數(shù)據(jù)傳輸類指令 數(shù)據(jù)傳輸類指令共計數(shù)據(jù)傳輸類指令共計29條

21、,分為條,分為 MOV 類類 、 MOVX類、類、 MOVC類、類、XCH , XCHD, SWAP數(shù)據(jù)交換類數(shù)據(jù)交換類 、PUSH , POP堆棧操作類堆棧操作類功能:將一個源操作數(shù)送入指定的目的地之中,源操作數(shù)表示方法功能:將一個源操作數(shù)送入指定的目的地之中,源操作數(shù)表示方法:地址、立地址、立即數(shù)、符號地址即數(shù)、符號地址指令格式:指令格式:MOV 目的操作數(shù),目的操作數(shù), 源操作數(shù)源操作數(shù)1、MOV類指令,片內(nèi)數(shù)據(jù)傳輸類指令類指令,片內(nèi)數(shù)據(jù)傳輸類指令操作數(shù)出現(xiàn)的可能性,操作數(shù)出現(xiàn)的可能性,A、Rn, Ri, direct, #data, DPTP例:例:MOV A , #00H;以累加器以

22、累加器A為目的操作數(shù)的為目的操作數(shù)的MOV指令指令 MOV Rn, 00H;以寄存器以寄存器Rn為目的操作數(shù)的為目的操作數(shù)的MOV指令指令 MOV direct, A;以直接地址為目的操作數(shù)的以直接地址為目的操作數(shù)的MOV指令指令 MOV Ri, A;以寄存器以寄存器Ri間接地址為目的操作數(shù)的間接地址為目的操作數(shù)的MOV指令指令 MOV DPTR, #data16;16位數(shù)據(jù)傳輸指令位數(shù)據(jù)傳輸指令北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2020片內(nèi)數(shù)據(jù)傳輸指令使用時應注意:源操作數(shù)和目的片內(nèi)數(shù)據(jù)傳輸指令使用時應注意:源操作數(shù)和目的操作數(shù)

23、不允許在同一條指令出現(xiàn)工作寄存器,不操作數(shù)不允許在同一條指令出現(xiàn)工作寄存器,不管是寄存器尋址還是寄存器間接尋址:管是寄存器尋址還是寄存器間接尋址:MOV Rn, RnMOV Ri, Rn北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計21212、MOVX類指令,片外數(shù)據(jù)與累加器類指令,片外數(shù)據(jù)與累加器A傳輸類指令傳輸類指令只能通過累加器只能通過累加器A,與片外數(shù)據(jù)存儲器進行數(shù)據(jù)傳輸。訪問時只能通,與片外數(shù)據(jù)存儲器進行數(shù)據(jù)傳輸。訪問時只能通過過Ri和和DPTR以間接尋址方式進行。以間接尋址方式進行。 a 、外部數(shù)據(jù)存儲器地址由、外部數(shù)據(jù)存儲器地址

24、由DPTR指向指向 MOVX A , DPTR ; A=(DPTR)寄存器間接尋址寄存器間接尋址 MOVX DPTR, A ; (DPTR)=A例:例:MOV DPTR , #2007H MOVX A , DPTR INC DPTR MOVX DPTR , A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2222q例:把片外數(shù)據(jù)存儲器例:把片外數(shù)據(jù)存儲器2040H單元中的數(shù)取出,單元中的數(shù)取出,傳送到片外數(shù)據(jù)存儲器的傳送到片外數(shù)據(jù)存儲器的3000H單元中單元中 MOV DPTR , #2040H MOVX A , DPTR MOV DPTR

25、, #3000H MOVX DPTR , A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2323 b、外部數(shù)據(jù)存儲器地址由、外部數(shù)據(jù)存儲器地址由Ri和和P2口指向口指向 Ri: R0 , R1指向地址低指向地址低8位,寄存器間接尋址方式位,寄存器間接尋址方式 P2:指地址高:指地址高8位位 MOVX A , Ri ; A=(Ri)+(P2) MOVX Ri , A ; (Ri)+(P2)=A例:例:MOV P2 , #20H MOV R0 , #07HMOVX A , R0;寄存器間接尋址寄存器間接尋址INC R0MOVX R0 , A北京

26、航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2424注意:注意:1、A與片外數(shù)據(jù)存儲器的地址傳送通過與片外數(shù)據(jù)存儲器的地址傳送通過P0和和P2進行,數(shù)據(jù)傳送由進行,數(shù)據(jù)傳送由P0傳輸傳輸 2、訪問外部數(shù)據(jù)存儲器只能用間址方式、訪問外部數(shù)據(jù)存儲器只能用間址方式 3、只能和、只能和A進行傳送進行傳送 4、訪問片外、訪問片外I/O口使用這四條指令,在單片機的口使用這四條指令,在單片機的I/O和外部和外部RAM存儲器是統(tǒng)一編址的存儲器是統(tǒng)一編址的, 在存儲器擴在存儲器擴展中再講述展中再講述北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言

27、程序設計指令系統(tǒng)及匯編語言程序設計25253、MOVC指令,程序內(nèi)數(shù)據(jù)查表傳輸指令,有兩條指令,程序內(nèi)數(shù)據(jù)查表傳輸指令,有兩條 一條是用一條是用DPTR基址變址尋址,一條是基址變址尋址,一條是PC基址變址尋址方基址變址尋址方式:式:MOVC A , A+PC ;近程查表指令;近程查表指令 MOVC A,A+DPTR ;遠;遠程查表指令程查表指令 常用于查表,數(shù)據(jù)表格可放在程序存儲器中常用于查表,數(shù)據(jù)表格可放在程序存儲器中 a、 MOVC A , A+PC ; PC=PC+1 ;A=(A)+(PC)例:例:start: MOVC A , A+PC 若若start=1000H,(A)=30H,(,

28、(1030H)=20H,(1031H)=55H則則 (A)=?北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2626例:寫程序片段例:寫程序片段(1)將)將R0的內(nèi)容送的內(nèi)容送R6中,程序片段為:中,程序片段為: MOV A, R0 MOV R6,A(2)將片內(nèi))將片內(nèi)RAM 30H單元的內(nèi)容送片外單元的內(nèi)容送片外60H單元中,程序單元中,程序 片段為:片段為: MOV A, 30H MOV R0, #60H MOVX R0, A(3)將片外)將片外RAM 1000H單元的內(nèi)容送片內(nèi)單元的內(nèi)容送片內(nèi)20H單元中,程序單元中,程序 片段為:片段

29、為: MOV DPTR, #1000H MOVX A, DPTR MOV 20H, A 北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計2727 (4) 將將 ROM 2000H單元的內(nèi)容送片內(nèi)單元的內(nèi)容送片內(nèi)30H單元中,程單元中,程序序 片段為:片段為: MOV A, #0H MOV DPTR , #2000H MOVC A, A+DPTR MOV 30H, A 注意:注意:MOVC只能用基址只能用基址+變址方式,且目的操作數(shù)變址方式,且目的操作數(shù)只能為只能為A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)

30、及匯編語言程序設計2828例:累加器中的內(nèi)容為一位例:累加器中的內(nèi)容為一位BCD碼,用查表法獲得相應的碼,用查表法獲得相應的ASCII碼碼INC AMOVC A , A+PCRETTAB:DB 30HDB 31HDB 32HDB 33H .DB 39H北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計29294、棧操作指令:堆棧是在片內(nèi)、棧操作指令:堆棧是在片內(nèi)RAM中按中按“先進后出,先進后出,后進先出后進先出”原則設置的專用原則設置的專用RAM區(qū)區(qū) PUSH direct POP direct例:進棧順序例:進棧順序 PUSH A PUSH

31、20H 出棧順序出棧順序POP 20HPOP A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計3030q例:將例:將片外片外2500H單元中的內(nèi)容壓入堆棧,后彈單元中的內(nèi)容壓入堆棧,后彈出到出到40H單元中單元中MOV DPTR , #2500HMOVX A , DPTRMOV 20H , AMOV SP , #30HPUSH 20HPOP 40H北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計31315、數(shù)據(jù)交換指令、數(shù)據(jù)交換指令通常數(shù)據(jù)傳送指令實現(xiàn)將源操作數(shù)的數(shù)據(jù)傳送到目的操作數(shù),通常數(shù)據(jù)

32、傳送指令實現(xiàn)將源操作數(shù)的數(shù)據(jù)傳送到目的操作數(shù),指令執(zhí)行后,源操作數(shù)的數(shù)據(jù)不變,數(shù)據(jù)是單向傳送。數(shù)指令執(zhí)行后,源操作數(shù)的數(shù)據(jù)不變,數(shù)據(jù)是單向傳送。數(shù)據(jù)交換指令把數(shù)據(jù)作雙向傳輸,源操作數(shù)的數(shù)據(jù)成為目的據(jù)交換指令把數(shù)據(jù)作雙向傳輸,源操作數(shù)的數(shù)據(jù)成為目的操作數(shù)的數(shù)據(jù),目的操作數(shù)的數(shù)據(jù)變成源操作數(shù)的數(shù)據(jù)。操作數(shù)的數(shù)據(jù),目的操作數(shù)的數(shù)據(jù)變成源操作數(shù)的數(shù)據(jù)。XCH A, Rn; A RnXCH A , Ri;A (Ri) XCH A , direct; A (direct)XCHD A , Ri ; 數(shù)據(jù)的低四位交換數(shù)據(jù)的低四位交換 A (03) (Ri)(03)SWAP A;數(shù)據(jù)的低四位與高四位交換;數(shù)據(jù)

33、的低四位與高四位交換A (03) A (47) 北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計3232例例:將將20H單元的內(nèi)容與單元的內(nèi)容與A中內(nèi)容互換,而后將中內(nèi)容互換,而后將A的高的高4位存入位存入Ri指示的指示的RAM單元中的低單元中的低4位,位,A的低的低4位位存入該單元的高存入該單元的高4位位XCH A , 20HSWAP AMOV Ri , A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計MOV指令傳送路徑指令傳送路徑MOV也并非任意傳送也并非任意傳送直接地址數(shù)據(jù)直接地址數(shù)據(jù)D

34、ata寄存器間接寄存器間接SP寄存器寄存器 C寄存器寄存器 DPTR寄存器寄存器 R7R0直接地址數(shù)直接地址數(shù)據(jù)據(jù)Data立即數(shù)立即數(shù)#Data累加器累加器 A寄存器間接寄存器間接R1,R01616位位北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計MOV指令傳送路徑指令傳送路徑MOV也并非任意傳送也并非任意傳送A R7R0direct目的操作數(shù)目的操作數(shù)源操作數(shù)源操作數(shù)DPTRA R7R0direct#data16R1,R0R1,R0北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計3535 算

35、術運算類指令共計算術運算類指令共計24條,其運算結果會影響條,其運算結果會影響CY , Ac, OV但但INC和和DEC不影響標志位不影響標志位1:加法指令:加法指令1)不含進位的加法指令)不含進位的加法指令ADD 有四種形式有四種形式 ADD A , Rn ; ADD A , Ri; ADD A , direct ; ADD A , #data例例:(A)=C3H , (R0)=20H , (20H)=AAHADD A , R0則則Ac=0, CY=1 ,OV=1 , (A)=6DH2.3.22.3.2算術運算類指令算術運算類指令北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語

36、言程序設計指令系統(tǒng)及匯編語言程序設計3636 2)帶進位加法)帶進位加法ADDC:有四種形式有四種形式 ADDC A , Rn ; ADDC A , Ri; ADDCA , direct ; ADDC A , #data例:例:A=AEH , (20H)=81H CY=1 ADDC A , 20H則:則:CY=1 , Ac=1 ,OV=1 , (A)=30H多用于多字節(jié)數(shù)的加法運算多用于多字節(jié)數(shù)的加法運算例:有兩個無符號例:有兩個無符號16位數(shù)分別存于位數(shù)分別存于30H和和32H開始的單元開始的單元中,設(中,設(30H)=AFH,(31H)=0AH,(32H)=90H, (33H)=2FH,

37、高字節(jié)在高地址單元,低字節(jié)在低地址單,高字節(jié)在高地址單元,低字節(jié)在低地址單元,算兩數(shù)之和并存入元,算兩數(shù)之和并存入32開始的單元中開始的單元中北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計3737CLR CMOV R0 , #32HMOV A , 30HADD A , R0MOV R0 , A MOV A , 31HINC R0ADDC A , R0MOV R0 , A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計38382)加)加1指令指令 INC: INC A INC Rn INC di

38、rect INC Ri INC DPTR 注注: (1)若原來為)若原來為0FFH,則加,則加1后溢出為后溢出為00H,不影不影響任何標志響任何標志(2)對于)對于 INC direct指令,若指令,若direct是是I/O端口端口(P0P3)時,執(zhí)行的是讀)時,執(zhí)行的是讀-修改修改-寫操作(寫操作(*)(3)INC DPTR是唯一的一條是唯一的一條16位加位加1指令,指令,執(zhí)行過程中若低執(zhí)行過程中若低8位有進位可直接向高位有進位可直接向高8位進位而位進位而不用通過不用通過CY傳送。傳送。北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計3939

39、2、減法指令、減法指令1)帶借位減法指令)帶借位減法指令SUBB:有四種形式有四種形式(Substrct with Borrow) SUBB A , Rn SUBB A ,direct SUBB A , Ri SUBB A ,#data2)沒有不帶借位標志的減法指令)沒有不帶借位標志的減法指令,要進行不帶借位的要進行不帶借位的減法運算,可以先通過對減法運算,可以先通過對cy清清“0”,而后進行帶,而后進行帶借位的減法運算。借位的減法運算。 CLR CY SUBB A , 20H ; A255(即(即B中不為中不為0),則),則OV=1,否則,否則OV=0 乘法指令是指令系統(tǒng)中執(zhí)行時間最長的乘法

40、指令是指令系統(tǒng)中執(zhí)行時間最長的2條指令之條指令之一,需要一,需要4個機器周期個機器周期北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計42424、除法指令:只有一條、除法指令:只有一條 DIV AB A/B,把,把A中的中的8位無符號整數(shù)除以位無符號整數(shù)除以B中的中的8位無符位無符號整數(shù),號整數(shù), 結果商在結果商在ACC中,余數(shù)(不是小數(shù)部分)中,余數(shù)(不是小數(shù)部分)在在B中中注:指令執(zhí)行后注:指令執(zhí)行后CY=0,OV=0,只有當除數(shù)為,只有當除數(shù)為0時,時,A和和B中的內(nèi)容為不確定值,此時中的內(nèi)容為不確定值,此時OV=1,除法溢,除法溢出出除

41、法指令是指令系統(tǒng)中執(zhí)行時間最長的除法指令是指令系統(tǒng)中執(zhí)行時間最長的2條指令之一,條指令之一,需要需要4個機器周期個機器周期北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計43435、十進制調(diào)整指令、十進制調(diào)整指令 DA 對對A參與的參與的BCD碼加法所獲得的碼加法所獲得的8位結果進行十進位結果進行十進制調(diào)整,只有一條制調(diào)整,只有一條 DA A注:注:DA A使用時一般跟在使用時一般跟在ADD和和ADDC指令之后,指令之后,用來對兩位壓縮的用來對兩位壓縮的BCD碼數(shù)進行修正碼數(shù)進行修正注:若注:若A039或或Ac=1,則,則A9或或CY=1,則,

42、則A=(A)+#60H若上述條件均成立,則若上述條件均成立,則A=(A)+#66H例例2.:BCD表示表示十進制數(shù)十進制數(shù)68+53=121 MOV A, #68H ADD A, #53H DA A; A中的值為中的值為21H,C=1北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計4444例:設計一個例:設計一個BCD加法程序,設被加數(shù)放在加法程序,設被加數(shù)放在32H , 31H , 30H中,加數(shù)放在中,加數(shù)放在42H , 41H , 40H中,和放在中,和放在32H , 31H , 30H中,程序片段如下;中,程序片段如下;CLR CMOV

43、 R0 , #30HMOV R1 , #40HMOV A , R0ADD A , R1DA AMOV R0 , AINC R0INC R1北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計4545MOV A , R0ADDC A , R1DA AMOV R0 , AINC R1INC R0MOV A , R0ADDC A , R1DA AMOV R0 , AEND北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計4646例:把例:把A中的二進制數(shù)轉換成中的二進制數(shù)轉換成BCD碼(三位),要求百位放在

44、碼(三位),要求百位放在50H,十位,個位放在,十位,個位放在51H中中 MOV B , #100DIV ABMOV 50H , AMOV A , BMOV B , #10DIV ABSWAP AADD A , BMOV 51H , ARET北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計47472.3.3邏輯類操作指令邏輯類操作指令邏輯操作類共計邏輯操作類共計24條,包括邏輯與指令、或指令、異或指令、條,包括邏輯與指令、或指令、異或指令、清零和求反指令清零和求反指令1、累加器清、累加器清0和求反指令和求反指令1)累加器清)累加器清0CLR A

45、 若對寄存器進行操作若對寄存器進行操作, CLR指令只能對寄存器指令只能對寄存器A進行操作,進行操作,且不影響且不影響CY , AC , OV等標志等標志2)累加器內(nèi)容按位取反)累加器內(nèi)容按位取反CPL A 若對寄存器進行操作若對寄存器進行操作, CPL指令只能對寄存器指令只能對寄存器A進行操作,進行操作,且不影響且不影響CY , AC , OV等標志等標志北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計48482、循環(huán)移位指令:該指令有、循環(huán)移位指令:該指令有4條,左循環(huán),右循環(huán)條,左循環(huán),右循環(huán) 1)左循環(huán)移位左循環(huán)移位(1)累加器)累加器

46、A內(nèi)容循環(huán)左移一位:內(nèi)容循環(huán)左移一位: RL A 不影響標志位不影響標志位(2)累加器)累加器A內(nèi)容帶進位循環(huán)左移一位內(nèi)容帶進位循環(huán)左移一位 RLC A 只影響只影響CYD2D2D1D1 D0D0D7D7 D6D6 D5D5 D4D4 D3D3 D2D2D1D1 D0D0D7D7D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0CYCY北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計4949例:實現(xiàn)一個流水燈例:實現(xiàn)一個流水燈MOV A , #01HTT1: MOV P1 , ALCALL 延時程序延時程序RL ALJMP T

47、T1北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計50502)右循環(huán)移位)右循環(huán)移位 (1)累加器)累加器A內(nèi)容循環(huán)右移內(nèi)容循環(huán)右移 RR A 不影響標志不影響標志 (2)累加器)累加器A內(nèi)容帶進位循環(huán)內(nèi)容帶進位循環(huán)右移右移 RRC A 僅影響僅影響CYD7D7D6D6D5D5 D4D4 D3D3D2D2 D1D1D0D0D7D7D6D6D5D5 D4D4D3D3D2D2 D1D1D0D0CYCY北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計51513、邏輯與、邏輯與 指令指令ANL:如下:

48、如下6條條qANL A,Rn ; A=ARn累加器內(nèi)容邏輯累加器內(nèi)容邏輯“與與”寄存器內(nèi)容,寄存器內(nèi)容,q 結果送累加器。結果送累加器。qANL A, direct ;累加器內(nèi)容邏輯累加器內(nèi)容邏輯“與與”內(nèi)部內(nèi)部RAM或專用寄存器內(nèi)容,或專用寄存器內(nèi)容,q 結果送累加器。結果送累加器。qANL A, Ri ;累加器內(nèi)容邏輯累加器內(nèi)容邏輯“與與”內(nèi)部內(nèi)部RAM,q 結果送累加器。間接尋址方式結果送累加器。間接尋址方式qANL A, #data ;累加器內(nèi)容邏輯累加器內(nèi)容邏輯“與與”立即數(shù),結果送累加器。立即數(shù),結果送累加器。qANL direct, A ;內(nèi)部內(nèi)部RAM或專用寄存器內(nèi)容邏輯或專用

49、寄存器內(nèi)容邏輯“與與”累加器內(nèi)容累加器內(nèi)容,q 結果送內(nèi)部結果送內(nèi)部RAM或專用寄存器或專用寄存器。qANL direct, #data ; 內(nèi)部內(nèi)部RAM或專用寄存器內(nèi)容邏輯或專用寄存器內(nèi)容邏輯“與與”立即數(shù),立即數(shù),q 結果送內(nèi)部結果送內(nèi)部RAM或專用寄存器。或專用寄存器。北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計5252 該指令若以該指令若以A作為目標寄存器,則影響奇偶標志位作為目標寄存器,則影響奇偶標志位P,若直接地址是,若直接地址是P0P3時,可進行讀時,可進行讀-修改修改-寫的寫的操作(數(shù)據(jù)為鎖存器內(nèi)容),可利用其對單元內(nèi)操作

50、(數(shù)據(jù)為鎖存器內(nèi)容),可利用其對單元內(nèi)容清零容清零例:對內(nèi)部例:對內(nèi)部20H單元的低單元的低4位清零,高位清零,高4位位 保持不變,設(保持不變,設(20H)=87HANL 20H , #0F0H 則則 (20H)=80H北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計53534、邏輯或、邏輯或 ORL:有:有6條條ORL A, Rn;累加內(nèi)容邏輯或寄存器內(nèi)容,結果送入累加器。累加內(nèi)容邏輯或寄存器內(nèi)容,結果送入累加器。ORL A, Ri;累加內(nèi)容邏輯或內(nèi)部累加內(nèi)容邏輯或內(nèi)部RAM內(nèi)容,結果送入累加器。寄存器間接尋址。內(nèi)容,結果送入累加器。寄存器

51、間接尋址。ORL A, #data ;累加內(nèi)容邏輯或立即數(shù),累加內(nèi)容邏輯或立即數(shù),結果送入累加器。結果送入累加器。ORL A, direct ;累加內(nèi)容邏輯或內(nèi)部累加內(nèi)容邏輯或內(nèi)部RAM或專用寄存器,或專用寄存器,結果送入累加器。結果送入累加器。ORL direct, A ;內(nèi)部內(nèi)部RAM或專用寄存器內(nèi)容邏輯或累加內(nèi)容,結果送入內(nèi)部或專用寄存器內(nèi)容邏輯或累加內(nèi)容,結果送入內(nèi)部RAM或專或專用寄存器。用寄存器。ORL direct, #data ;內(nèi)部內(nèi)部RAM或專用寄存器邏輯或立即數(shù),結果送入內(nèi)部或專用寄存器邏輯或立即數(shù),結果送入內(nèi)部RAM或專或專用寄存器。用寄存器。該指令若以該指令若以A作為

52、目標寄存器,則影響奇偶標志位作為目標寄存器,則影響奇偶標志位P,若直接地址,若直接地址direct是是P0P3時,可進行讀時,可進行讀-修改修改-寫的操作寫的操作(數(shù)據(jù)為鎖存器內(nèi)容),可利用其對單元內(nèi)容指定位置(數(shù)據(jù)為鎖存器內(nèi)容),可利用其對單元內(nèi)容指定位置1例:已知例:已知TMOD各位均為各位均為0,欲將其,欲將其D7 ,D5,D2,D0位置位置 1ORL TMOD , #0A5H北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計5454例:根據(jù)例:根據(jù)A中位中位40的狀態(tài),用的狀態(tài),用“與與”,“或或”控制控制P1口的位口的位40狀態(tài),狀態(tài),

53、P1口的高三位不變口的高三位不變ANL A , #00011111B ;屏蔽屏蔽A7A5ANL P1 , #11100000B ; 清清P1口的低口的低5位位ORL P1 , A ;按按 A4A0設置設置P1.4P1.0 如此,位口線先輸出如此,位口線先輸出0狀態(tài),再按狀態(tài),再按A4A0置位,可置位,可能發(fā)生一個機器周期短暫的能發(fā)生一個機器周期短暫的“閃爍閃爍”,所以改用,所以改用下面的程序下面的程序(*)北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計5555ANL A , #00011111B ; 屏蔽屏蔽A7A5ORL P1 , A OR

54、L A , #11100000BANL P1 , A北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計56565、邏輯異或、邏輯異或 XRL:有:有6條條XRL A, Rn;累加內(nèi)容或寄存器內(nèi)容,結果送入累加器。累加內(nèi)容或寄存器內(nèi)容,結果送入累加器。XRL A, Ri;累加內(nèi)容邏輯異或內(nèi)部累加內(nèi)容邏輯異或內(nèi)部RAM內(nèi)容,結果送入累加器。寄存器間接尋址。內(nèi)容,結果送入累加器。寄存器間接尋址。XRL A, #data ;累加內(nèi)容邏輯異或立即數(shù),結果送入累加器。累加內(nèi)容邏輯異或立即數(shù),結果送入累加器。XRL A, direct ;累加內(nèi)容邏輯異或內(nèi)部累

55、加內(nèi)容邏輯異或內(nèi)部RAM或專用寄存器,或專用寄存器,結果送入累加器。結果送入累加器。XRL direct, A ;內(nèi)部內(nèi)部RAM或專用寄存器內(nèi)容邏輯異或累加內(nèi)容,或專用寄存器內(nèi)容邏輯異或累加內(nèi)容, 結果送入內(nèi)部結果送入內(nèi)部RAM或專用寄存器。或專用寄存器。XRL direct, #data ;內(nèi)部內(nèi)部RAM或專用寄存器異或立即數(shù),或專用寄存器異或立即數(shù), 結果送入內(nèi)部結果送入內(nèi)部RAM或專用寄存器。或專用寄存器。 實際使用中,邏輯實際使用中,邏輯“與與”用于實現(xiàn)對指定位清零,其余位不變。邏用于實現(xiàn)對指定位清零,其余位不變。邏輯輯“或或”用于實現(xiàn)對指定位置用于實現(xiàn)對指定位置“1”,其余位不變。邏

56、輯,其余位不變。邏輯“異或異或”用于實現(xiàn)對指定位取反,其余位不變。用于實現(xiàn)對指定位取反,其余位不變。XRL A , #0FFH ; 對各位均取反對各位均取反北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計57572.3.4位操作類指令位操作類指令位操作類指令共計位操作類指令共計17,分為如下情況,分為如下情況1、位數(shù)據(jù)傳送指令、位數(shù)據(jù)傳送指令 MOV C, bit;直接尋址位傳送到進位標志;直接尋址位傳送到進位標志 MOV bit ,C;進位標志傳送到直接尋址位;進位標志傳送到直接尋址位 特點:圍繞特點:圍繞C進行工作(進行工作(C在位操作中為

57、位累加器),該指在位操作中為位累加器),該指令用于直接尋址位(令用于直接尋址位(202FH中的中的128位以及位以及80FFH中的中的可位尋址的專用寄存器)與位累加器之間的數(shù)據(jù)傳送,不可位尋址的專用寄存器)與位累加器之間的數(shù)據(jù)傳送,不能直接進行位到位的數(shù)據(jù)傳輸能直接進行位到位的數(shù)據(jù)傳輸MOV A , 00H;字節(jié)數(shù)據(jù)傳輸;字節(jié)數(shù)據(jù)傳輸MOV C , 00H;位數(shù)據(jù)傳輸;位數(shù)據(jù)傳輸 例:將片內(nèi)例:將片內(nèi)RAM中位尋址區(qū)的中位尋址區(qū)的20H位的內(nèi)容傳送到位的內(nèi)容傳送到30H位。位。 MOV C , 20H; MOV 30H , C;北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程

58、序設計指令系統(tǒng)及匯編語言程序設計5858q位地址的表示位地址的表示 00H , 20H.1 , RS1 , PSW.4,RS0 北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計59592、位邏輯操作指令、位邏輯操作指令(1)位清)位清“0” : CLR C;清進位標志;清進位標志 ,C 0 CLR bit ;清直接尋址位;清直接尋址位, (bit) 0 (2)位)位 取取 反:反: CPL C ;進位標志取反,;進位標志取反,C (/C) CPL bit ;直接尋址位取反;直接尋址位取反, (bit) (/bit) (3)位置)位置“1” :S

59、ETB C ;進位標志位置;進位標志位置“1”,C 1 SETB bit ;直接尋址位置;直接尋址位置“1”,(bit) 1 (4)位或)位或 :ORL C, bit; 進位標志邏輯或直接尋址位,結果送進位標志邏輯或直接尋址位,結果送C ORL C, /bit; 進位標志邏輯或直接尋址位的反,結果送進位標志邏輯或直接尋址位的反,結果送C ( 5 )位與位與 :ANL C, bit; 進位標志邏輯與直接尋址位,結果送進位標志邏輯與直接尋址位,結果送C ANL C, /bit; 進位標志邏輯與直接尋址位的反,結果送進位標志邏輯與直接尋址位的反,結果送C利用位邏輯運算指令可以實現(xiàn)各種邏輯功能利用位邏

60、輯運算指令可以實現(xiàn)各種邏輯功能北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計6060“/”表示對該位取反后再參與運算,但不改變原來的內(nèi)容表示對該位取反后再參與運算,但不改變原來的內(nèi)容注:均圍繞注:均圍繞C進行進行 ANL C , 00H 與與 ANL A , 00H 的區(qū)別的區(qū)別舉例(教材舉例(教材70頁)頁)北京航空航天大學出版社北京航空航天大學出版社2指令系統(tǒng)及匯編語言程序設計指令系統(tǒng)及匯編語言程序設計61613、位轉移指令、位轉移指令 (1)以)以C為條件的位轉移指令為條件的位轉移指令 JC rel; C=1 則轉移,則轉移,PC+2+

溫馨提示

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

評論

0/150

提交評論