freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

06-第四章程序設計-閱讀頁

2025-01-24 03:15本頁面
  

【正文】 JNC CADn INC DPH ;有進位 DPTR高位加 1n CAD: MOV R2, A ;暫存 R2n MOVC A, A+DPTRn XCH A, R2 ;處理程序入口地址高 8位暫存 R2n INC An MOVC A, A+DPTRn MOV DPL, A ;處理程序入口地址低 8位暫存 DPLn MOV DPH, R2n CLR An JMP A+DPTRn TAB3: DW LOP0n DW LOP1n DW LOP2計算機與通信工程學院 子程序和參數(shù)傳遞方法n 在程序中,會多次進行一些相同的計算和操作,一般把他們寫成子程序n 如數(shù)制轉換、函數(shù)式計算等。n 子程序處理完畢,返回主程序,繼續(xù)進行以后的操作。n 簡化程序的邏輯結構,同時也便于子程序調試。n 有兩條調用子程序指令 ACALL及 LCALL,和一條返回主程序的指令 RET。n 參數(shù)的傳遞n 調用子程序時,主程序先把有關的參數(shù)(入口參數(shù))存放在約定的位置,n 子程序在執(zhí)行時,從約定的位置取得參數(shù),n 當子程序執(zhí)行完,將得到的結果(出口參數(shù))存入約定的位置,n 返回主程序后,主程序可以從這些約定的位置上取到需要的結果。n 使用這種方法程序最簡單,運算速度也最高。n 例 :請編出能把 R5單元內兩個 BCD數(shù)變換成相應 ASCII碼放在 R6(高位 BCD數(shù)的ASCII碼)和 R7(低位 BCD數(shù)的 ASCII碼)單元的程序。因此,僅需把 R5單元中兩個 BCD數(shù)拆開,分別和 30H相加就行了,可以編出程序如下:n ASCH:n MOV A,R5n ANL A,0F0Hn ORL A,30Hn MOV R6,An MOV A,R5n ANL A,0FHn ORL A,30Hn MOV R7,An RET計算機與通信工程學院用指針寄存器來傳遞參數(shù)n 由于數(shù)據(jù)一般存放在存貯器中,而不是工作寄存器中,故可用指針來指示數(shù)據(jù)的位置,n 可以節(jié)省傳遞數(shù)據(jù)的工作量,并可實現(xiàn)可變長度運算。n 可變長度運算時,可用一個寄存器來指出數(shù)據(jù)長度,也可在數(shù)據(jù)中指出其長度(如使用結束標記符)。入口時,( R0),( R1)分別指向加數(shù)和被加數(shù)的低位字節(jié),出口時( R0)指向結果的高位字節(jié)。n NADD: MOV R7, 3n CLR Cn NADD1: MOV A, R0n ADDC A, R1n MOV R0, An DEC R0n DEC R1n DJNZ R7, NADD1n INC R0n INC R0n INC R0n RET計算機與通信工程學院用堆棧來傳遞參數(shù)n 堆??梢杂糜趥鬟f參數(shù)。n 返回主程序后,可用 POP指令得到這些結果參數(shù)。n 使用這種方法時,由于參數(shù)在堆棧中,故大大簡化了中斷響應時的現(xiàn)場保護。保護累加器內容 (???? )n MOV A,R0 。低位 HEX的 ASCII碼放入堆棧中n SWAP An ANL A,0FHn MOVC A,A+DPTRn INC R0n XCH A,R0 。高位返回地址放入堆棧 ,并恢復累加器內容n RETn DATA1:n DB 39。n DB 39。n END計算機與通信工程學院例 22n 將內部 RAM中 50H、 51H中的內容以 4位十六進制數(shù)的 ASCII形式在串行發(fā)送出去,可如下調用HTA2程序:n ORG 0000Hn SCOT4: PUSH 50Hn ACALL HTA2n POP ACCn ACALL COUTn POP ACCn ACALL COUTn PUSH 51Hn ACALL HTA2n POP ACCn ACALL COUTn POP ACCn ACALL COUTn COUT: JNB TI, COUT ;字符發(fā)送子程序n CLR TIn MOV SBUF, An RETn END計算機與通信工程學院程序段參數(shù)傳遞n 參數(shù)傳遞方法,多數(shù)是在調用子程序前,把值裝入適當?shù)募拇嫫鱾鬟f參數(shù)。n 如果需要大量參數(shù),并且這些參數(shù)均為常數(shù)時,程序段參數(shù)傳遞方法(有時也稱為直接參數(shù)傳遞)是傳遞常數(shù)的有效方法。n 子程序根據(jù)棧內的返回地址,決定從何處找到這些常數(shù)n 然后在需要時,從程序存貯器中讀出這些參數(shù)。n 實際應用中,需要發(fā)送各種字符串。n 按通常方法,需要先把這些字符裝入 RAM中,然后用傳遞指針的方法來實現(xiàn)參數(shù)傳遞。n 子程序可按該地址用 MOVC指令從 EPROM中讀出并發(fā)送該字符串。n 下例中,字符串全以 0結束。n ACALL SOUTn DB ‘MCS51 CONTROLLER’n DB 0AH, 0DH, 0n 后面緊接其他程序。一開始的 POP指令已調整了棧指針的內容。調用程序可位于 MCS51全部地址空間的任何地方,因為 MOVC指令能訪問所有 64K字節(jié)。子程序在每一條 MOVC 指令前累加器裝入適當?shù)膮?shù),這樣基本上可 “隨機訪問 ”參數(shù)表。 計算機與通信工程學院n 查表程序是一種常用程序,它廣泛使用于 LED顯示器控制、打印機打印以及數(shù)據(jù)補償,計算、轉換等功能程序中,具有程序簡單、執(zhí)行速度快等優(yōu)點。計算機與通信工程學院用 MOVC A, A+PC查表指令編程n 例: 用查表方法編寫彩燈控制程序,編程使彩燈先順次點亮,再逆次點亮,然后連閃三下,反復循環(huán)。n 程序為:n ORG 0000Hn START: MOV DPTR, TABn LOOP: CLR A n MOVC A, A+DPTR n CJNE A, 03H, LOOP1 n JMP STARTn LOOP1: MOV P1, A n ACALL DEL n INC DPTR n JMP LOOPn TAB: DB 01H, 02H, 04H, 08H, 10H, 20H, 40H, 80H n DB 80H, 40H, 20H, 10H, 08H, 04H, 02H, 01H n DB 00H, 0FFH, 00H, 0FFH, 00H, 0FFH, 03Hn DEL: MOV R7, 0FFHn DEL1: MOV R6, 0FFHn DEL2: DJNZ R6, DEL2 n DJNZ R7, DEL1 n RETn END 計算機與通信工程學院n 已經(jīng)編過彩燈程序控制,使接于 P1口的紅發(fā)光二極管左移順次點亮,當時為了簡單易懂,用字節(jié)傳送方法編的,編的程序較長,實際上編程很靈活,方法很多,同一個問題有很多種編程方法,沒有千篇一律的格式,下面就彩燈順序點亮的程序的兩種編程方法作一比較,了解一些編程的技巧
點擊復制文檔內容
外語相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1