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

正文內(nèi)容

80c51的程序設(shè)計(jì)-wenkub

2022-08-29 14:38:25 本頁面
 

【正文】 4AH, 3CH … … 匯編后,( 1400H) =32H,( 1401H) = 4AH,( 1402H) =00H,( 1403H) =3CH。 LEN EQU 10 SUM EQU 21H BLOCK EQU 22H CLR A MOV R7,# LEN MOV R0,# BLOCK LOOP: ADD A, R0 INC R0 DJNZ R7, LOOP MOV SUM, A END 功能:把 BLOCK單元開始存放的 10個(gè)無符號(hào)數(shù)進(jìn)行求和,并將結(jié)果存入 SUM單元中。 基本程序結(jié)構(gòu) 順序程序 指無分支、無循環(huán)結(jié)構(gòu)的程序。 例 有一變量在片內(nèi) RAM的 20H單元,取值范圍: 00H~ 05H。 表格存放在 該 指令后的 256字節(jié)內(nèi) 。 設(shè)被加數(shù)存放在內(nèi)部 RAM的 51H、 50H單元,加數(shù)存放在內(nèi)部 RAM的 61H、 60H單元,相加的結(jié)果存放在內(nèi)部 RAM的 51H、 50H單元,進(jìn)位存放在位尋址區(qū)的 00H位中。 START: JNB , OK ;( A) 0,無需轉(zhuǎn)換 MOV C, ; MOV A, R0 ; CPL A ; 取補(bǔ) ADD A, 1 ; MOV , C ; 存符號(hào)位 OK: RET 二、雙分支程序 例 設(shè)變量 x 以補(bǔ)碼的形式存放在片內(nèi) RAM的 30H單元,變量 y 與 x 的關(guān)系是:當(dāng) x 大于 0時(shí), y =x;當(dāng) x =0時(shí), y =20H;當(dāng) x 小于 0時(shí), y =x+5。 START: MOV DPTR, TAB ;置分支入口地址表首址 MOV A, R7 ;分支轉(zhuǎn)移序號(hào)送 A ADD A, R7 ;分支轉(zhuǎn)移序號(hào)乘以 2 MOV R3, A ;暫存于 R3 MOVC A, A+DPTR ;取高位地址 XCH A, R3 INC A MOVC A, A+DPTR ;取低位地址 MOV DPL, A ;處理程序入口地址低 8位送 DPL MOV DPH, R3 ;處理程序入口地址高 8位送 DPH CLR A JMP A+DPTR TAB: DW PP0 DW PP1 … … … DW PPN 循環(huán)程序 有先執(zhí)行后判斷 和 先判斷后執(zhí)行 兩種結(jié)構(gòu) : 置 循 環(huán) 初 值開 始結(jié) 束循 環(huán) 處 理循 環(huán) 修 改結(jié) 束 處 理循 環(huán) 結(jié) 束 ?YN置 循 環(huán) 初 值開 始結(jié) 束循 環(huán) 處 理循 環(huán) 修 改結(jié) 束 處 理循 環(huán) 結(jié) 束 ?YN一、先執(zhí)行后判斷 例 50ms延時(shí)程序。程序段如下: DEL: MOV R7, 200 ; 1 μs DEL1: MOV R6, 123 ; 1 μs NOP ; 1 μs DEL2: DJNZ R6, DEL2 ; 2μs ,計(jì)( 2 123) μs DJNZ R7, DEL1 ; 2μs , RET 共計(jì) [( 2 123+ 2+ 2) 200+1] μs ,即 例 無符號(hào)數(shù)排序程序。從前向后進(jìn)行 相鄰數(shù)的比較 ,如數(shù)據(jù)的大小次序與要求的 順序不符 就將這兩個(gè)數(shù) 互換 ,否則不互換。 設(shè) R7為比較次數(shù)計(jì)數(shù)器,初始值為 07H,位地址00H為數(shù)據(jù)互換標(biāo)志位。 MOV R0, data MOV DPTR, buffer LOOP0: MOV A, R0 CJNE A, 24H, LOOP1 ;判是否為 ‘ $ ’字符 SJMP LOOP2 ;是 ‘ $ ’字符,轉(zhuǎn)結(jié)束 LOOP1: MOVX DPTR, A ;不是 ‘ $ ’字符,執(zhí)行傳送 INC R0 INC DPTR SJMP LOOP0 ;傳送下一數(shù)據(jù) LOOP2: … … 子程序及其調(diào)用 子程序的調(diào)用 對(duì)于通用性的問題,例如:數(shù)值轉(zhuǎn)換、數(shù)值計(jì)算等,往往要進(jìn)行多次。 現(xiàn)場(chǎng)保護(hù)與恢復(fù) 子程序經(jīng)常用到 R0~R A、 DPTR,以及 PSW等。 在主程序中實(shí)現(xiàn) PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC ; PUSH B ; MOV PSW, 10H ;換當(dāng)前工作寄存器組 LCALL addr16 ;子程序調(diào)用 POP B ;恢復(fù)現(xiàn)場(chǎng) POP ACC ; POP PSW ; … … 特點(diǎn)是結(jié)構(gòu)靈活 。 例 編寫程序,實(shí)現(xiàn) c=a2+b2 。 參數(shù)表建立在外部 RAM時(shí),用 DPTR作指針。 實(shí)現(xiàn)程序: NADD: MOV R7, 3 ;三字節(jié)加法 CLR C ; NADD1: MOV A, R0 ;取加數(shù)低字節(jié) ADDC A, R1 ;被加數(shù)低字節(jié)加 A MOV R0, A ; DEC R0 DEC R1 DJNZ R7, NADD1 INC R0 RET 利用堆棧 堆棧傳遞參數(shù)是在子程序嵌套中常采用的一種方法。 設(shè)兩個(gè) N字節(jié)的無符號(hào)數(shù)分別存放在內(nèi)部 RAM中以DATA1和 DATA2開始的單元中。 設(shè)兩 N字節(jié)數(shù)分別放在內(nèi)部 RAM中以 DATA1和 DATA2開始的單元中。 HASC: MOV A, R0 ;取 4位二進(jìn)制數(shù) ANL A, 0FH ;屏蔽掉高 4位 PUSH ACC ; 4位二進(jìn)制數(shù)入棧 CLR C ;清進(jìn)(借)位位 SUBB A, 0AH ;用借位位的
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1