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

正文內(nèi)容

80c51的程序設(shè)計-文庫吧資料

2024-08-14 14:38本頁面
  

【正文】 ACALL RADD ; DEC R0 RET 十六進制數(shù)與 ASCII碼間的轉(zhuǎn)換 數(shù)在 0~ 9之間時, ASCII碼值為該數(shù)加 30H 數(shù)在 A~ F之間時, ASCII碼值為該數(shù)加 37H 碼型轉(zhuǎn)換 例: 將 1位十六進制數(shù)轉(zhuǎn)換成相應(yīng)的 ASCII碼。 設(shè)兩 N字節(jié)數(shù)分別放在內(nèi)部 RAM中以 DATA1和 DATA2開始的單元中。 MOV R0, DATA1 ; MOV R1, DATA2 ; MOV R7, N ;置字節(jié)數(shù) CLR C ; LOOP: MOV A, R0 ; ADDC A, R1 ;求和 MOV R1, A ;存結(jié)果 INC R0 ;修改指針 INC R1 ; DJNZ R7, LOOP ; 多字節(jié)數(shù) 乘法 運算 例 設(shè)雙字節(jié)無符號被乘數(shù)存放在 R R2中,乘數(shù)存放在 R R4中, R0指向積的高位。 設(shè)兩個 N字節(jié)的無符號數(shù)分別存放在內(nèi)部 RAM中以DATA1和 DATA2開始的單元中。 MAIN: MOV A, 20H ; SWAP A PUSH ACC ;參數(shù)入棧 ACALL HEASC POP ACC MOV R0, A ;存高位十六進制數(shù)轉(zhuǎn)換結(jié)果 INC R0 ;修改指針 PUSH 20H ;參數(shù)入棧 ACALL HEASC POP ACC MOV R0, A ;存低位十六進制數(shù)轉(zhuǎn)換結(jié)果 SJMP $ HEASC: MOV R1, SP ;借用 R1為堆棧指針 DEC R1 DEC R1 ; R1指向被轉(zhuǎn)換數(shù)據(jù) XCH A, R1 ;取被轉(zhuǎn)換數(shù)據(jù) ANL A, 0FH ;取一位十六進制數(shù) ADD A, 2 ; 所加值為 MOVC與 DB間字節(jié)數(shù) MOVC A, A+PC ;查表 XCH A, R1 ; 1字節(jié)指令,存結(jié)果于堆棧 RET ; 1字節(jié)指令 ASCTAB: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H DB 38H, 39H, 41H, 42H, 43H, 44H, 45H, 46H 一般說來: 數(shù)據(jù)較少 時,采用 寄存器 傳遞方式可以獲得較快的傳遞速度; 數(shù)據(jù)較多 時,宜采用 存儲器 或 堆棧 方式傳遞; 若是 子程序嵌套 ,宜采用 堆棧 方式。 實現(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ù)是在子程序嵌套中常采用的一種方法。入口時, R0和 R1分別指向加數(shù)和被加數(shù)的低位字節(jié);出口時, R0指向結(jié)果的高位字節(jié)。 參數(shù)表建立在外部 RAM時,用 DPTR作指針。 START: MOV A, 30H ;取 a ACALL SQR ;調(diào)用查平方表 MOV R1, A ; a2 暫存于 R1中 MOV A, 31H ;取 b ACALL SQR ;調(diào)用查平方表 ADD A, R1 ; a2+b2 存于 A中 MOV 32H, A ;存結(jié)果 SJMP $ SQR : MOV DPTR, TAB ;子程序 MOVC A, A+DPTR ; RET TAB : DB 0, 1, 4, 9, 16 , 25, 36, 49, 64, 81 利用存儲器 數(shù)據(jù)量比較大時,利用存儲器實現(xiàn)參數(shù)的傳遞,先建立一個參數(shù)表,用指針指示參數(shù)表所在位置。 例 編寫程序,實現(xiàn) c=a2+b2 。要注意保護與恢復(fù)的順序 。 在主程序中實現(xiàn) PUSH PSW ;保護現(xiàn)場 PUSH ACC ; PUSH B ; MOV PSW, 10H ;換當(dāng)前工作寄存器組 LCALL addr16 ;子程序調(diào)用 POP B ;恢復(fù)現(xiàn)場 POP ACC ; POP PSW ; … … 特點是結(jié)構(gòu)靈活 。 在執(zhí)行完子程序,返回繼續(xù)執(zhí)行主程序前恢復(fù)其原內(nèi)容,稱為 現(xiàn)場恢復(fù) 。 現(xiàn)場保護與恢復(fù) 子程序經(jīng)常用到 R0~R A、 DPTR,以及 PSW等。 子程序在執(zhí)行時需要由其它程序來調(diào)用 執(zhí)行完后又需要把執(zhí)行流程返回到調(dià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)用 對于通用性的問題,例如:數(shù)值轉(zhuǎn)換、數(shù)值計算等,往往要進行多次。由于循環(huán)次數(shù)事先不知道,但 循環(huán)條件可以測試到。 設(shè) R7為比較次數(shù)計數(shù)器,初始值為 07H,位地址00H為數(shù)據(jù)互換標志位。一次冒泡(相鄰數(shù)的互換),就會把 最大的數(shù)換到最后 。從前向后進行 相鄰數(shù)的比較 ,如數(shù)據(jù)的大小次序與要求的 順序不符 就將這兩個數(shù) 互換 ,否則不互換。試對這些無符號數(shù)進行升序排序。程序段如下: DEL: MOV R7, 200 ; 1
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1