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

正文內(nèi)容

06-第四章程序設(shè)計(已改無錯字)

2023-02-02 03:15:15 本頁面
  

【正文】 口地址高 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計算機與通信工程學(xué)院 子程序和參數(shù)傳遞方法n 在程序中,會多次進行一些相同的計算和操作,一般把他們寫成子程序n 如數(shù)制轉(zhuǎn)換、函數(shù)式計算等。n 一些常用的程序段,以子程序的形式,事先存放在存儲器的某一區(qū)域n 主程序在運行時,需要用子程序時,只要執(zhí)行調(diào)用子程序的指令,使程序轉(zhuǎn)至子程序。n 子程序處理完畢,返回主程序,繼續(xù)進行以后的操作。n 調(diào)用子程序有幾個優(yōu)點:n 避免對相同程序段的重復(fù)編制。n 簡化程序的邏輯結(jié)構(gòu),同時也便于子程序調(diào)試。n 節(jié)省存儲器空間。n 有兩條調(diào)用子程序指令 ACALL及 LCALL,和一條返回主程序的指令 RET。n 子程序的調(diào)用,一般包含兩個部分:保護現(xiàn)場和恢復(fù)現(xiàn)場。n 參數(shù)的傳遞n 調(diào)用子程序時,主程序先把有關(guān)的參數(shù)(入口參數(shù))存放在約定的位置,n 子程序在執(zhí)行時,從約定的位置取得參數(shù),n 當(dāng)子程序執(zhí)行完,將得到的結(jié)果(出口參數(shù))存入約定的位置,n 返回主程序后,主程序可以從這些約定的位置上取到需要的結(jié)果。計算機與通信工程學(xué)院工作寄存器或累加器傳遞參數(shù)n 把入口參數(shù)或出口參數(shù)放工作寄存器或累加器中。n 使用這種方法程序最簡單,運算速度也最高。n 缺點n 工作寄存器數(shù)量有限,不能傳遞太多的數(shù)據(jù);n 主程序必須先把數(shù)據(jù)送到工作寄存器;n 參數(shù)個數(shù)固定,不能由主程序任意改定。n 例 :請編出能把 R5單元內(nèi)兩個 BCD數(shù)變換成相應(yīng) ASCII碼放在 R6(高位 BCD數(shù)的ASCII碼)和 R7(低位 BCD數(shù)的 ASCII碼)單元的程序。n 根據(jù) ASCII字符表, 0- 9的 BCD數(shù)和它們的 ASCII碼之間僅相差 30H。因此,僅需把 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計算機與通信工程學(xué)院用指針寄存器來傳遞參數(shù)n 由于數(shù)據(jù)一般存放在存貯器中,而不是工作寄存器中,故可用指針來指示數(shù)據(jù)的位置,n 可以節(jié)省傳遞數(shù)據(jù)的工作量,并可實現(xiàn)可變長度運算。n 一般如參數(shù)在內(nèi)部 RAM中,可用 R0或 R1作指針。n 可變長度運算時,可用一個寄存器來指出數(shù)據(jù)長度,也可在數(shù)據(jù)中指出其長度(如使用結(jié)束標記符)。 n 例 : 將( R0)和( R1)指出的內(nèi)部 RAM中兩個 3字節(jié)無符號整數(shù)相加,結(jié)果送(R0)指出的內(nèi)部 RAM中。入口時,( R0),( R1)分別指向加數(shù)和被加數(shù)的低位字節(jié),出口時( R0)指向結(jié)果的高位字節(jié)。利用 MS51的帶進位加法指令,可以直接編寫出下面的程序。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計算機與通信工程學(xué)院用堆棧來傳遞參數(shù)n 堆??梢杂糜趥鬟f參數(shù)。n 調(diào)用時,主程序用 PUSH指令把參數(shù)壓入堆棧n 子程序可按棧指針訪問堆棧中的參數(shù),同時可把結(jié)果參數(shù)送回堆棧中。n 返回主程序后,可用 POP指令得到這些結(jié)果參數(shù)。n 這種方法的優(yōu)點是簡單,能傳遞大量參數(shù),不必為特定的參數(shù)分配存貯單元。n 使用這種方法時,由于參數(shù)在堆棧中,故大大簡化了中斷響應(yīng)時的現(xiàn)場保護。 計算機與通信工程學(xué)院例 419 一位十六進制數(shù)轉(zhuǎn)換為 ASCII碼子程序n HASC: MOV R0, SPn DEC R0n DEC R0 ; R0為參數(shù)指針n XCH A, R0 ;保護 ACC,取出參數(shù)n ANL A, 0FH n ADD A, 2 ;加偏移量n MOVC A, A+PCn XCH A, R0 ;查表結(jié)果放回堆棧中n RETn DB ‘0123456789’ ;十六進制數(shù)的 ASCII字符表n DB ‘ABCDEF’計算機與通信工程學(xué)院例 421 一個字節(jié)的兩位十六進制數(shù)為轉(zhuǎn)換為兩個 ASCII碼子程序n ORG 0000Hn AJMP STARTn ORG 0030Hn START:n MOV SP,60Hn MOV 40H,7FHn PUSH 40Hn MOV A,78hn LCALL HTA2n AJMP STARTn HTA2: MOV R0,SPn DEC R0n DEC R0n PUSH ACC 。保護累加器內(nèi)容 (???? )n MOV A,R0 。取出參數(shù)n ANL A,0FHn MOV DPTR,DATA1n MOVC A,A+DPTRn XCH A,R0 。低位 HEX的 ASCII碼放入堆棧中n SWAP An ANL A,0FHn MOVC A,A+DPTRn INC R0n XCH A,R0 。高位 HEX的 ASCII碼放入堆棧中n INC R0n XCH A,R0 。高位返回地址放入堆棧 ,并恢復(fù)累加器內(nèi)容n RETn DATA1:n DB 39。012345678939。n DB 39。ABCDEF39。n END計算機與通信工程學(xué)院例 22n 將內(nèi)部 RAM中 50H、 51H中的內(nèi)容以 4位十六進制數(shù)的 ASCII形式在串行發(fā)送出去,可如下調(diào)用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計算機與通信工程學(xué)院程序段參數(shù)傳遞n 參數(shù)傳遞方法,多數(shù)是在調(diào)用子程序前,把值裝入適當(dāng)?shù)募拇嫫鱾鬟f參數(shù)。n 如果有許多常數(shù)參數(shù),這種技術(shù)不太有效,每個參數(shù)需要一個寄存器傳遞,并且在每次調(diào)用子程序時需分別用指令把它們裝入寄存器中。n 如果需要大量參數(shù),并且這些參數(shù)均為常數(shù)時,程序段參數(shù)傳遞方法(有時也稱為直接參數(shù)傳遞)是傳遞常數(shù)的有效方法。n 調(diào)用時,常數(shù)作為程序代碼的一部分,
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1