




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章單片機(jī)的指令系統(tǒng)2.1尋址方式 所謂尋址方式, 就是尋找操作數(shù)地址的方式, 在用匯編語(yǔ)言編程時(shí), 數(shù)據(jù)的存放、傳送、 運(yùn)算都要通過(guò)指令來(lái)完成。 編程者必須自始至終都要十分清楚操作數(shù)的位置, 以及如何將它們傳送到適當(dāng)?shù)募拇嫫魅⑴c運(yùn)算。一條匯編語(yǔ)言指令中最多包含 4 個(gè)區(qū)段, 如下所示: 標(biāo)號(hào): 操作碼 操作數(shù) ;注釋 標(biāo)號(hào)與操作碼之間用“: ”隔開(kāi), 操作碼與操作數(shù)之間用空格隔開(kāi), 操作數(shù)與注釋之間用“;”隔開(kāi)。在 MCS -51單片機(jī)指令系統(tǒng)中, 有以下 7種尋址方式: (1) 立即尋址;(2) 直接尋址; (3) 寄存器尋址;(4) 寄存器間接尋址;(5) 基址寄存器加變址寄存器間接
2、尋(6) 相對(duì)尋址;(7) 位尋址。 1. 立即尋址MOV A, 3AHMOV DPTR, 0DFFFH 2. 直接尋址 直接尋址方式中可以訪問(wèn) 3 種存儲(chǔ)器空間內(nèi)部數(shù)據(jù)存儲(chǔ)器的低 128個(gè)字節(jié)單元(00H7FH)特殊功能寄存器只能用直接尋址方式進(jìn)行訪問(wèn)位地址空間 如:MOV A,8AH ;8AH是定時(shí)器TL0的地址 MOV 82H,R0 ;82H是寄存器DPL的地址 3. 寄存器尋址寄存器包括8個(gè)工作寄存器R0R7, 累加器A, 寄存器B、數(shù)據(jù)指針DPTR和布爾處理器的位累加器C如:MOV DPH,A MOV DPL,R14. 寄存器間接尋址寄存器間接尋址只能使用寄存器R0、R1 作為地址指
3、針,尋址內(nèi)部RAM區(qū)的數(shù)據(jù),當(dāng)訪問(wèn)外部RAM時(shí), 可使用R0、R1及DPTR作為地址指針。寄存器間接尋址符號(hào)為“”5. 基址寄存器加變址寄存器間接尋址 這種尋址方式用于訪問(wèn)程序存儲(chǔ)器中的數(shù)據(jù)表格, 它以基址寄存器DPTR或PC的內(nèi)容為基本地址, 加上變址寄存器A的內(nèi)容作為操作數(shù)的地址, 例如: MOVC A, DPTR+AJMP A+DPTRMOVC A, PC+A 6. 相對(duì)尋址 在MCS -51 指令系統(tǒng)中設(shè)有轉(zhuǎn)移指令, 分為直接轉(zhuǎn)移和相對(duì)轉(zhuǎn)移指令, 在相對(duì)轉(zhuǎn)移指令中采用相對(duì)尋址方式。這種尋址方式是以PC的內(nèi)容為基本地址, 加上指令中給定的偏移量作為轉(zhuǎn)移地址。指令中給出的偏移量是一個(gè) 8
4、位帶符號(hào)的常數(shù), 可正可負(fù), 其范圍為128+127。7. 位尋址 該種尋址方式中, 操作數(shù)是內(nèi)部RAM單元中某一位的信息。 位 SETB 00H;20H字節(jié)單元的最低位置1操 SETB C; 標(biāo)志寄存器PSW的進(jìn)位置1作 CLR 93H; P1口的第4位清零 ANL C,0B1H;進(jìn)位C與P3口的第2位相與操作 ANL A,R1;是字節(jié)操作的指令語(yǔ)句 MOV 06H,A;06H等于第一組的R6寄存器 OR R3,A;直接尋址方式 ORL A,R1;間接尋址方式2.2 指令系統(tǒng)addr1111位的目的地址, 用于AJMP, ACALL指令。 目的地址必須與下一條指令的第一個(gè)字節(jié) 在同一個(gè)2 K
5、B程序存儲(chǔ)器地址空間之內(nèi)。rel 8 位帶符號(hào)的偏移量字節(jié), 用于SJMP和所有 條件轉(zhuǎn)移指令中。 偏移量相對(duì)于下一條指 的第一個(gè)字節(jié)計(jì)算, 在128+127 范圍內(nèi) 取值。bit 內(nèi)部數(shù)據(jù)RAM或特殊功能寄存器中的可直接。DPTR數(shù)據(jù)指針, 可用作 16 位的地址寄存器。A 累加器。 B 寄存器, 用于 MUL和 DIV指令中。C 進(jìn)位標(biāo)志或進(jìn)位位。 間接尋址寄存器或基址寄存器的前綴, 如Ri,DPTR。 / 位操作數(shù)的前綴, 表示對(duì)該位取反。(X) X中的內(nèi)容。 (X) 由 X尋址的單元中的內(nèi)容。 箭頭左邊的內(nèi)容被箭頭右邊的內(nèi)容 所代替。 2.1 數(shù)據(jù)傳送類指令一覽表2.2 算術(shù)運(yùn)算指令表
6、2.3 偽指令1、ORG 16位地址定義ORG下面的一條指令的地址如 ORG 1020H ORG $2、END 匯編結(jié)束指令 END;程序的最后寫(xiě),代表程序結(jié)束3、標(biāo)號(hào):DB 字節(jié)常數(shù)或字符 如 TAB1: DB 12H,45,0AAH標(biāo)號(hào)不一定必要的。4、EQU 賦值偽指令格式:字符名 EQU 數(shù)據(jù)或匯編符號(hào)如: TAB EQU 20H AB EQU R1:以后AB當(dāng)作R1使用*字定義偽指令DW*8位數(shù)據(jù)定義偽指令DATA*位定義偽指令BIT* 十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)方法一、整數(shù)部分用除2取舍法,如53和48 方法二 2倍數(shù)分解法0000001 = 1 53=32+16+0+4+0+1000
7、0010 = 2 =( 1 1 0 1 0 1)B0000100 = 4 =35H0001000 = 8 39=32+0+8+0+0+10010000 =16 = (1 0 1 0 0 1)B0100000 =32 = 29H1000000 = 642.4 時(shí)間常數(shù)的計(jì)算 1、延時(shí)時(shí)間的計(jì)算一個(gè)機(jī)器周期TC等于12個(gè)振蕩周期,因此若振蕩頻率為fc,則:振蕩周期T=機(jī)器周期Tc=12振蕩周期=如: 程序 執(zhí)行次數(shù) 機(jī)器周期DEL: MOV R6,#00H 1 1DL1: MOV R7,#80H 256 1 DL2: NOP 256128 1 DJNZ R7,DL2 256128 2 DJNZ R
8、6,DL1 256 2 RET 1 2延時(shí)時(shí)間為:延時(shí)時(shí)間=(11)+(256 128 1)+256 128 2)+(256 2)+(1 2)=99075 機(jī)器周期(s)=0.099075 機(jī)器周期(S)2.5 子程序的編寫(xiě)和調(diào)用MOV SP,#30HMOV A,#20HACALL 0050H ;短子程序調(diào)用MOV 20H,ASJMP $ ORG 0050H ;子程序入口地址PUSH A ;子程序開(kāi)始SETB PSW.3 RET2.6 程序設(shè)計(jì)方法1、程序指針的自動(dòng)改變程序指針 匯編程序 機(jī)器碼 存儲(chǔ)器分配(PC值) ORG 0000H0000H: MOV A,#30H 7430H0002H:
9、 LCALL 1000H 121000H0005H: MOV 00H,A F500H END PC值2、程序在存儲(chǔ)器中的分配例23(48頁(yè)) 機(jī)器碼 ORG 0000H MOV A,#00H 7400HADD A,#02H 2402HMOV DPTR,#0050H 900050HMOVC A,A+DPTR 93HMOV R0,A 0F6HSJMP $ 80FEHORG 0050HTAB: DB 00H,08H,0BH,06H,09H,0CH END3、程序的基本學(xué)法ORG 0000H ;程序執(zhí)行開(kāi)始地址LJMP START ;跳到標(biāo)號(hào)START執(zhí)行ORG 0003H ;外部中斷0中斷程序入口L
10、JMP INTT0 ;轉(zhuǎn)INTT0外部中斷服務(wù)程序ORG 000BH ;定時(shí)器T0中斷程序入口LJMP T0 ;跳至TO執(zhí)行ORG 0013H ;外中斷1中斷程序入口 LJMP INTT1 ;轉(zhuǎn)INTT1外部中斷服務(wù)程序 ORG 001BH ;定時(shí)器T1中斷程序入口LJMP T1 ;跳至T1執(zhí)行ORG 0023H ;串行中斷程序入口地址LJMP CHT1 ;轉(zhuǎn)串行中斷服務(wù)程序ORG 0050H ;主程序開(kāi)始執(zhí)行地址START: MOV SP,#5FH ;堆棧指針轉(zhuǎn)移 主程序INTT0: PUSH A ;INTT0中斷服務(wù)程序 入口處T0: PUSH A ;TO中斷服務(wù)程序 入口處 INTT1:
11、 PUSH A ;INTT1中斷服務(wù)程序 入口處 NTT1: PUSH A ;TO中斷服務(wù)程序 入口處 CHT1: PUSH A ;串行中斷程序入口地址4 簡(jiǎn)單程序設(shè)計(jì)例 1 兩個(gè)無(wú)符號(hào)雙字節(jié)數(shù)相加。 設(shè)被加數(shù)存放于內(nèi)部RAM的40H(高位字節(jié)), 41H(低位字節(jié)), 加數(shù)存放于50H(高位字節(jié)), 51H(低位字節(jié)), 和數(shù)存入 40H和41H單元中。 START: CLR C ; 將Cy清零 MOV R0,41H; 將被加數(shù)地址送數(shù)據(jù)指針R0 MOV R1,51H; 將加數(shù)地址送數(shù)據(jù)指針R1AD1: MOV A,R0; 被加數(shù)低字節(jié)的內(nèi)容送入AADD A,R1 ; 兩個(gè)低字節(jié)相加MOV
12、R0,A;低字節(jié)的和存入被加數(shù)低字節(jié)中DEC R0 ; 指向被加數(shù)高位字節(jié)DEC R1 ; 指向加數(shù)高位字節(jié)MOV A,R0 ; 被加數(shù)高位字節(jié)送入AADDC A,R1 ; 兩個(gè)高位字節(jié)帶Cy相加MOV R0,A;高位字節(jié)的和送被加數(shù)高位字節(jié) RET 5 分支程序設(shè)計(jì) 分支結(jié)構(gòu)框圖(a) 單分支流程; (b) 多分支流程例 2 x#, y均為8位二進(jìn)制數(shù), 設(shè) x存入R0, y存入R1, 求解:START: CJNE R0, 00H, SUL1; R0中的數(shù)與00比較不等轉(zhuǎn)移 MOV R1, 00H; 相等, R1 0 SJMP SUL2 SUL1: JC NEG;兩數(shù)不等, 若(R0)0,
13、則 R101H SJMP SUL2NEG: MOV R1,0FFH; (R0)0, 則 R10FFHSUL2: RET6 循環(huán)程序設(shè)計(jì)例3:在外部 RAM中, BLOCK開(kāi)始的單元中有一無(wú)符號(hào)數(shù)據(jù)塊, 其個(gè)數(shù)為 LEN個(gè)字節(jié)。試將這些無(wú)符號(hào)數(shù)按遞減次序重新排列, 并存入原存儲(chǔ)區(qū)。ORG 1000H SAR: MOV DPTR, BLOCK; 置地址指 MOV P2, DPH ; P2作地址指針高字節(jié) MOV R7, LEN ; 置外循環(huán)計(jì)數(shù)初值 DEC R7 ; 比較與交換 n-1次LP0: CLR F0 ; 交換標(biāo)志清 0 MOV R0, DPL ; MOV R1, DPL ;置相鄰兩數(shù)地址指針低字節(jié) INC R1 MOV R6, R7 ; 置內(nèi)循環(huán)計(jì)數(shù)器初值LP1: MOVX A, R0 ; 取數(shù) MOV B, A ; 暫存 MOVX A, R1 ; 取下一個(gè)數(shù) CJNE A, B, NEXT;相鄰兩數(shù)比較,不等轉(zhuǎn) SJMP NOCHA ; 相等不交換NXT
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子真空器件在汽車電子中的應(yīng)用考核試卷
- 拍賣行業(yè)公共服務(wù)效能提升考核試卷
- 玻璃制品超聲波焊接機(jī)考核試卷
- 洗衣機(jī)械的工業(yè)互聯(lián)網(wǎng)應(yīng)用考核試卷
- 石膏在印刷工業(yè)中的應(yīng)用考核試卷
- 手持設(shè)備按鍵故障修復(fù)考核試卷
- 水產(chǎn)罐頭產(chǎn)品創(chuàng)新設(shè)計(jì)與消費(fèi)者需求考核試卷
- 《三袋麥子》課件-2
- 動(dòng)物產(chǎn)科學(xué)模擬習(xí)題含參考答案
- 數(shù)字化轉(zhuǎn)型升級(jí)背景下濰坊市制造業(yè)高質(zhì)量發(fā)展模式研究
- 2022年河南省商丘市柘城縣實(shí)驗(yàn)中學(xué)中考一模地理試題(原卷版)
- 《篆刻基礎(chǔ)》課件
- 大學(xué)生心理健康教育(寧波大學(xué))知到智慧樹(shù)章節(jié)答案
- 數(shù)據(jù)中心通風(fēng)設(shè)備拆除施工方案
- 博物館布展項(xiàng)目施工組織設(shè)計(jì)
- 養(yǎng)殖工人合同范本
- 體育中國(guó)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 汽車吊起重吊裝方案-(范本)
- 房地產(chǎn)售樓部營(yíng)銷中心開(kāi)放活動(dòng)策劃方案
- 矩形的判定公開(kāi)課公開(kāi)課獲獎(jiǎng)?wù)n件百校聯(lián)賽一等獎(jiǎng)?wù)n件
- 醫(yī)療機(jī)構(gòu)消防安全突出火災(zāi)風(fēng)險(xiǎn)和檢查要點(diǎn)
評(píng)論
0/150
提交評(píng)論