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

正文內容

[信息與通信]第03章mcs-51單片機匯編語言程序設計(編輯修改稿)

2024-11-12 17:33 本頁面
 

【文章內容簡介】 MOV RESULT, A LJMP END1 MEMSP1: MOV A, R0 ;相減分支 CLR C SUBB A, R1 MOV RESULT, A LJMP END1 MEMSP2: MOV A, R0 ;乘法分支 MOV B, R1 CLR C MUL AB MOV RESULT, A MOV RESULT+1, B LJMP END1 MEMSP3: MOV A, R0 ;除法分支 MOV B, R1 CLR C DIV AB MOV RESULT, A MOV RESULT+1, B LJMP END1 MEMSP4: MOV A, R0 ;邏輯與分支 ANL A, R1 MOV RESULT, A LJMP END1 MEMSP5: MOV A, R0 ;邏輯或分支 ORL A, R1 MOV RESULT, A LJMP END1 END ? 【 例 】 兩個無符號數比較大小。設外部RAM單元 ST1和 ST2中存放兩個無符號二進制數,要找出其中的大數存入 ST3單元中。程序流程框圖如圖 36所示。 圖 36 求大數程序流程 參考程序如下: ORG 0000H LJMP START ORG 0100H START: MOV A, addr1 ;將 addr1中內容送 A CJNE A, addr2, LOOP1 ;兩數比較,不相等則 轉 LOOP1 LOOP3: AJMP $ ;結束 LOOP1: JC LOOP2 ;當 CY= 1,轉 LOOP2 MOV addr3, A ; CY= 0, (A)> (addr2) SJMP LOOP3 ;轉結束 LOOP2: MOV addr3, addr2 ; CY= 1, (addr2)> (A) SJMP LOOP3 END 循環(huán)程序設計 在實際應用中經常會遇到功能相同,需要多次重復執(zhí)行某段 程序的情況,這時可把這段程序設計成循環(huán)結構,這有助于 節(jié)省程序的存儲空間,提高程序的質量。循環(huán)程序一般由 4部 分組成。 1. 初始化。即設置循環(huán)過程中有關工作單元的初始值,如置循環(huán)次數、地址指針及工作單元清零等。 2. 循環(huán)體。即循環(huán)處理部分,完成主要的計算或操作任務,是重復執(zhí)行的程序段。 3. 循環(huán)控制。每循環(huán)一次,就要修改循環(huán)次數、數據及地址指針等循環(huán)變量。并根據循環(huán)結束條件,判斷是否結束循環(huán)。 4. 循環(huán)結束處理。對結果進行分析、處理、保存。 循環(huán)程序結構有兩種,如圖 37所示 。 圖 37 循環(huán)程序結構 ? 圖 (a)是“先執(zhí)行后判斷”結構,適用于循環(huán)次數已知的情況。其特點是進入循環(huán)后,先執(zhí)行循環(huán)處理部分,然后根據循環(huán)次數判斷是否結束循環(huán)。 ? 圖 (b)是“先判斷后執(zhí)行”結構,適用于循環(huán)次數未知的情況。其特點是將循環(huán)控制部分放在循環(huán)的入口處,先根據循環(huán)控制條件判斷是否結束循環(huán),若不結束,則執(zhí)行循環(huán)操作;若結束,則退出循環(huán)。 【 例 】 50 ms軟件延時程序。軟件延時程序一般都是由 DJNZ Rn, rel指令構成。執(zhí)行一條 DJNZ指令需要兩個機器周期。軟件延時程序的延時時間主要與機器周期和延時程序中的循環(huán)次數有關,在使用 12 MHz晶振時,一個機器周期為1μs,執(zhí)行一條 DJNZ指令需要兩個機器周期,即 2μs。適當設置循環(huán)次數,即可實現延時功能。 參考程序如下: ORG 0000H LJMP MEMS ORG 0100H MEMS: DEL: MOV R7, 125 ;外循環(huán)次數,該指令為一個機器周期 DEL1: MOV R6, 200 ;內循環(huán)次數 DEL2: DJNZ R6, DEL2 ; 200 2= 400μs (內循環(huán)時間 ) DJNZ R7, DEL1 ; ms 125= 50 ms(外循環(huán)時間 ) SJMP $ END 【 例 】 排序程序。設在內部 RAM中存一無符號數的數組,其長度為 n,起始地址是 30H,要求將它們按從大到小排序,排序后仍存放在原區(qū)域中。 按“冒泡法”對 n個數排序時,可能用不到 n1次循環(huán),排序就結束了。為了提高排序速度,程序中可設一交換標志位,如 10H位,每次循環(huán)中,若有交換則執(zhí)行 SETB 10H,表明排序未完成;若無交換,則執(zhí)行 CLR 10H,表明排序已經完成。每次循環(huán)結束時,測 10H位,判斷排序是否結束。 參考程序如下: ORG 0000H LJMP BUBBLE ORG 0100H BUBBLE: MOV R0, 30H MOV B, 64H CLR 10H DEC B ;長度計數 LOOP: MOV A, @R0 ;內循環(huán)的入口 MOV 20H, A ;暫存,為交換作準備 INC R0 MOV 21H, @R0 CJNE A, 21H, BUEU ;若 (20H)≠(21H)轉移 BUEU: JNC BUNEXT ; (20H)≥(21H)轉移 M
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1