【大學課件】MCS51指令系統_第1頁
【大學課件】MCS51指令系統_第2頁
【大學課件】MCS51指令系統_第3頁
【大學課件】MCS51指令系統_第4頁
【大學課件】MCS51指令系統_第5頁
已閱讀5頁,還剩66頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第第章章mcsmcs5151指指令令系系統統 本章內容本章內容single chip microcomputer4概概 述述vmcs-51mcs-51系列單片機的指令系統系列單片機的指令系統專用于51系列單片機,共有111條指令,具有豐富靈活的尋址方式,其指令格式與8086的指令系統相同,甚至某些指令還完全相同。使用時應注意區別。v 在111條指令中,從存儲空間的占用上看,單字節單字節指令占指令占49條,雙字節指令占條,雙字節指令占45條,三字節指令占條,三字節指令占17條條;從執行時間上看,在111條指令中,單機器周期指令占64條,雙機器周期指令占45條,僅乘法和除僅乘法和除法兩條指令為四機

2、器周期指令法兩條指令為四機器周期指令。因而無論是存儲空間的利用率,還是時間的執行效率都是較高的,再加上靈活的尋址方式,特別適合于實時測量和控制場合。http:/ 【例【例4-1】匯編語言程序匯編語言程序 機器語言程序機器語言程序mov a,#0ah 74 0ahadd a,#14h 24 14hhttp:/ 號號含含 義義rnrn表示當前選定寄存器組的工作寄存器表示當前選定寄存器組的工作寄存器r0r0r7r7riri表示作為間接尋址的地址指針表示作為間接尋址的地址指針r0r0r1r1#data#data表示表示8 8位立即數,即位立即數,即00h00hffhffh#data16#data16

3、表示表示1616位立即數,即位立即數,即0000h0000hffffhffffhaddr16addr16表示表示1616位地址,用于位地址,用于64k64k范圍內尋址范圍內尋址addr11addr11表示表示1111位地址,用于位地址,用于2k2k范圍內尋址范圍內尋址directdirect8 8位直接地址,可以是內部位直接地址,可以是內部ramram區的某一單元或某一專用功能寄存器的地址區的某一單元或某一專用功能寄存器的地址relrel帶符號的帶符號的8 8位偏移量(位偏移量(-128-128+127+127)bitbit位尋址區的直接尋址位位尋址區的直接尋址位(x x)x x地址單元中的內

4、容,或地址單元中的內容,或x x作為間接尋址寄存器時所指單元的內容作為間接尋址寄存器時所指單元的內容將將 后面的內容傳送到前面去后面的內容傳送到前面去http:/ 4-24-2尋址方式尋址方式在程序行中,操作碼操作碼代表了該句指令的功能,而功能的對象卻由操作數決定,由操作數指出參與運算的數或該數所在的地址。取得操作數的地址的方法叫做尋址方式尋址方式。尋址方式與計算機的存儲空間結構是密切相關的。靈活運用各種尋址方式,可以大大的提高程序的運行效率。http:/ 0 0 0 0 0 0 0http:/ 7e7e76766e6e66665e5e56564e4e4646 36362e2e26261e1e

5、16160e0e06067d7d75756d6d65655d5d55554d4d454535352d2d25251d1d15150d0d05057c7c74746c6c64645c5c54544c4c4444 34342c2c24241c1c14140c0c04047b7b73736b6b63635b5b53534b4b4343 33332b2b23231b1b13130b0b03037a7a72726a6a62625a5a52524a4a4242 32322a2a22221a1a12120a0a020279797171696961615959515149494141 313129292121

6、191911110909010178787070686860605858505048484040 3030282820201818101008080000 例: 3d3d 3c3c 3b3b3f3f 3e3e3a3a 3939383827h27hhttp:/ 0 0 0 0 0 01 0http:/ mcs51指令系統的分類http:/ , mov a,#20h http:/ mov dptr,#data16 movx , http:/ http:/ : 將片內ram30h單元的內容送到片外60h;將 片外4312h單元的內容送到片內31h單元: movmov a a,30h30h mov r

7、0mov r0,#60h#60h movxmovx r0 r0,a amov dptrmov dptr,#4312h#4312hmovxmovx a, dptr a, dptrmovmov 31h 31h,a ahttp:/ 7807 0030h7fh數據緩沖區數據緩沖區/堆棧區堆棧區內部內部ramram存儲器存儲器 工作寄存器區工作寄存器區選擇位選擇位rs0rs0、rs1rs1http:/ riadda,#data注意:注意:1.本指令影響本指令影響cy,ac,ov,p等標志。等標志。 2.求和操作既可看成是有符號數運算,求和操作既可看成是有符號數運算,也可看成是無符號數運算,完全由程序員編

8、也可看成是無符號數運算,完全由程序員編程時自行設定。程時自行設定。 http:/ addca,rnaddca,directaddca, riaddca,#data除相加時要考慮進位外,其余操作與前面相同。http:/ subba,rnsubba,directsubba,risubba,#data 減法指令是帶借位的,若不需要帶借位減,則減法指令是帶借位的,若不需要帶借位減,則在作減法指令前清除借位位,即在作減法指令前清除借位位,即clrc減法指令影響減法指令影響ov、cy、ac標志位標志位http:/ a00000100aa+1影響影響psw的的p標志標志1inc rn00001rrrrnrn

9、+1n=07, rrr=0001111inc direct0101 direct(direct)(direct)+1 1inc ri0000011i(ri)(ri)+1i=0,11inc dptr10100011dptrdptr+1 2dec a00010100aa-1影響影響psw的的p標志標志1dec rn00011rrrrnrn-1n=07, rrr=0001111dec direct0001010 1 direct(direct)(direct)-1 1dec ri0001011i(ri)(ri)-1i=0,11http:/ 兩個兩個8位操作數相位操作數相乘,形成乘,形成16位的積,位

10、的積,其中其中a為積的低位為積的低位而而b為積的高位。為積的高位。需要進行更多位的需要進行更多位的乘法運算,需另外乘法運算,需另外編程方能實現。編程方能實現。兩個兩個8位操作數相除,位操作數相除,其中其中a為被除數而為被除數而b為為除數;運算后,結果仍除數;運算后,結果仍然在然在ab中,其中中,其中a為商為商而而b為余數。為余數。同乘法指令相同,同乘法指令相同,需要進行更多位的除法需要進行更多位的除法運算,需另外編程方能運算,需另外編程方能實現。實現。http:/ ;實現bcd碼加法bcd碼相加后,根據ac和cy的狀態對a中的數作適當調整,使運算結果為bcd碼。這條指令對加法結果的調整規則是:

11、 (1)若累加器a低4位大于9或輔助進位標志ac1 則 低4位加6; (2)若累加器a高4位大于9或cy1,則高4位加6; (3)若1、2條件都滿足時,則a加66h; (4)若1、2條件都不滿足時,則a加00h; (5)若累加器a的最高位因調整而產生進位時,將cy 置1,若不產生進位為調整前的狀態而并不清零。 da指令只影響進位標志cy。http:/ a,#56hmov r3,#67hadda,r3daa;a=? (a) =01010110 +) (r3)=01100111 和 =10111101 調整 +) 01100110 1 00100011bcd碼為123http:/ 助記符格式助記符

12、格式機器碼機器碼(b)相應操作相應操作指令說明指令說明機器機器周期周期anl a,direct0 1 0 1 0 1 0 1 directaadirect按位相與按位相與1anl a,rn01011rrraarnn=07, rrr=0001111anl a,ri0101011iaa(ri)i=0,11anl a,#data01010100 dataaa#data 1anl direct,a01010010direct(direct)(direct)a不影響不影響psw的的p標志標志1anl direct,#data01010011 direct data(direct)(direct)#dat

13、a不影響不影響psw的的p標志標志2http:/ 01000011 direct data助記符格式助記符格式機器碼機器碼(b)相應操作相應操作指令說明指令說明機器機器周期周期orl a,direct01000101 directaadirect按位相或按位相或1orl a,rn01001rrraarnn=07, rrr=0001111orl a,ri0100011iaa(ri)i=0,11orl a,#data01000100dataaa#data 1orl direct,a01000010 direct(direct)(direct)a不影響不影響psw的的p標志標志1orl direct

14、,#data(direct)(direct)#data不影響不影響psw的的p標志標志2http:/ 助記符格式助記符格式機器碼機器碼(b)相應操作相應操作指令說明指令說明機器機器周期周期xrl a,direct0 1 1 0 0 1 0 1 directaa (direct)按位相異或按位相異或1xrl a,rn01101rrraa rnn=07, rrr=0001111xrl a,ri0110011iaa (ri)i=0,11xrl a,#data01100100 dataaa #data 1xrl direct,a0 1 1 0 0 0 1 0 direct(direct)(direct

15、) a不影響不影響psw的的p標志標志1xrl direct,#data01100011 direct data(direct)(direct) #data不影響不影響psw的的p標志標志2http:/ a11100100a00ha中內容清0,影響p標志1cpl a11110100a中內容按位取反,影響p標志1aahttp:/ rl a rr a rlc a rrc ahttp:/ : 設(20h)=(x7x6x5x4x3x2x1x0) (21h)=(y7y6y5y4y3y2y1y0)試編程使(30h)=y2y1y0x4x3x2x1x0程序清單:mov 30h,20hanl30h,#00011

16、111b; b:二進制o:八進制d:十進制h:十六進制mov a,21hrlaswapaanla,#11100000horl30h,ahttp:/ 7x x6 6x x5 5x x4 4x x3 3x x2 2x x1 1x x0 0,試編程將,試編程將a a中的中的低低5 5位送至位送至p1p1口,但不能影響口,但不能影響p1p1口的高口的高3 3位。位。程序清單:mov a,#0aahanlp1,#11100000borlp1,ahttp:/ pc高5位(保持不變) pc低11位a10a9a800 001a7a6a5a4a3a2a1a0操作碼(第一字節)操作數(第二字節)程序計數器pcht

17、tp:/ 例: http:/ rn,rel11011rrr relrnrn-1,若,若rn0,則,則pcpc+rel, 否則順序執行否則順序執行2djnz direct,rel11010101 direct rel(direct)(direct)-1,若(,若(direct)0,則,則pcpc+rel,否則順序執行,否則順序執行2http:/ cjne a,#data,rela,#data,rel10110100 10110100 data reldata rel若若a#data, a#data, 則則pcpcpc+relpc+rel,否則順,否則順序執行;若序執行;若 a#dataa#dat

18、a,則,則cy=1cy=1,否則,否則cy=0cy=02 2cjne cjne rn,#data,relrn,#data,rel10111rrr10111rrrdata reldata rel若若 rn#datarn#data,則,則pcpcpc+relpc+rel,否則,否則順序執行;若順序執行;若rn#datarn#data,則,則cy=1cy=1,否,否則則cy=0cy=02 2cjne cjne ri,#data,relri,#data,rel1011011i1011011idata reldata rel若若(ri)#data(ri)#data,則,則pcpcpc+relpc+rel

19、,否,否則順序執行;若則順序執行;若(ri)#data,(ri)#data,則則cy=1cy=1,否則否則cy=0cy=02 2cjne cjne a,direct,rela,direct,rel1011010110110101d i r e c t d i r e c t relrel若若a(direct)a(direct),則,則pcpcpc+relpc+rel,否,否則順序執行;若則順序執行;若a(direct)a(direct),則,則cy=1cy=1,否則否則cy=0cy=02 2http:/ c a l l addr11a10a9a810001addr70pc pc+2sp sp+

20、1,(sp)pc07sp sp+1,(sp)pc815pc010 addr112助記符格式助記符格式機器碼機器碼(b)相應操作相應操作機器周期機器周期l c a l l addr1600010010addr158addr70pcpc+3sp sp+1,sppc07sp sp+1,sppc815pc addr162http:/ (sp), sp sp-1pc07 (sp), sp sp-1子程序返回指令子程序返回指令2reti00110010pc815 sp, sp sp-1pc07 sp, sp sp-1中斷返回指令中斷返回指令2助記符格式助記符格式機器碼機器碼(b)相應操作相應操作指令說明指

21、令說明nop00000000空操作空操作消耗消耗1個機器周期個機器周期http:/ : 根據累加器根據累加器a命令鍵鍵值,設計命令鍵操作程序命令鍵鍵值,設計命令鍵操作程序入口跳轉表。程序如下:入口跳轉表。程序如下:clr crlc a;乘;乘2,若用,若用ljmp指令則乘指令則乘3mov dptr,#jptabjmp a+dptrjptab:ajmpccs0ajmpccs1ajmpccs2http:/ msbmsb 位地址位地址 lsblsb7e7e76766e6e66665e5e56564e4e46463e3e36362e2e26261e1e16160e0e06067d7d75756d6d6

22、5655d5d55554d4d45453d3d35352d2d25251d1d15150d0d05057c7c74746c6c64645c5c54544c4c44443c3c34342c2c24241c1c14140c0c04047b7b73736b6b63635b5b53534b4b43433b3b33332b2b23231b1b13130b0b03037a7a72726a6a62625a5a52524a4a42423a3a32322a2a22221a1a12120a0a0202797971716969616159595151494941413939313129292121191911110

23、90901017878707068686060585850504848404038383030282820201818101008080000http:/ c,bit10100010cy bit位傳送指令,結果影響位傳送指令,結果影響cy標志標志2mov bit,c10010010bit cy位傳送指令,結果不影響位傳送指令,結果不影響psw2助記符格式助記符格式機器碼機器碼(b)相應操作相應操作指令說明指令說明機器周期機器周期clr c11000011cy 0位清位清0指令,結果影響指令,結果影響cy標志標志1clr bit11 0 0 0 0 1 0 bitbit 0位清位清0指令,結果不

24、影響指令,結果不影響psw1setb c11010011cy1位置位置1指令,結果影響指令,結果影響cy標志標志1setb bitbit 1位置位置1指令,結果不影響指令,結果不影響psw111 0 1 0 0 1 0 bithttp:/ c,bit10000010 bitcy cybit位與指令位與指令2anl c/bit10110010 bit位與指令位與指令2orl ,bit01110010 bitcy cybit位或指令位或指令2orl c/bit10100010 bit位或指令位或指令2cpl c10110011位取反指令位取反指令2cpl bit10110010位取反指令,結果位取反指令,結果不影響不影響cy2cy cybitcy cybitcycybitbithttp:/ bit,rel00100000bit rel若bit=1,則pcpc+3+rel,否則順序執行2jnb bit,rel00110000 bit rel若b

溫馨提示

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

評論

0/150

提交評論