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

正文內(nèi)容

[理學]第4章匯編語言程序設計-wenkub.com

2025-01-16 14:59 本頁面
   

【正文】 程序設計步驟。 單 片 機 指 令偽 指 令宏 指 令源 程 序編 輯 程 序交 叉 匯編 程 序列 表 文 件目 標 文 件單 片 機調(diào) 試 運 行語言處理 方 式 編譯執(zhí)行方式:將源程序編譯成機器 語言的目標,然后執(zhí)行, 生成并保留目標程序。 參見書 P67 除法轉(zhuǎn)換方式舉例 小 結 機器語言 ( Machine Language) 有三類 匯編語言 (Assemble) 高級語言 (High Level Language) 不同計算機語言的應用: 源程序通過編譯得到機器能執(zhí)行的目標程序。 “乘二加次低位”: D=D 2+di …. 。 *例 : 4位十進制數(shù)轉(zhuǎn)換成二進制數(shù)。 ( 參見書 P65) 0~ 9的 ASCII碼: 30~ 39H; ( 一 ) 十六進制數(shù)轉(zhuǎn)換為 ASCII碼: HASC: CJNE A, 0AH, N N: JNC N1( C=0跳 N1) ADD A, 30H SJMP SE N1: ADD A, 37H SE: RET A~ F的 ASCII碼: 41~ 46H。 功能: (R4R5)取補 → (R4R5)。 這樣需要進行補碼與原碼的轉(zhuǎn)換。 *帶符號二進制乘法 (1) 原碼乘法:對原碼表示的帶符號二進制數(shù),只需在乘法前,先按正數(shù)與正數(shù)相乘為正,正數(shù)與負數(shù)相乘為負,負數(shù)與負數(shù)相乘為正的原則,得出積的符號 (計算機中可用異或操作得出積符 ),然后清 0符號位,執(zhí)行不帶符號位的乘法,最后送積的符號。被除數(shù)所有位左移完否? 未考慮商溢出 *從前面所示的手算除法中,可以看出被除數(shù)的字長比除數(shù)和商的字長要長,一般在計算機中,被除數(shù)均為雙倍字長,即如果除數(shù)和商為雙字節(jié),則被除數(shù)為四字節(jié)。清 0CY MOV A, R3 RLC A MOV R3, A CLR C SUBB A, R4 JC MDIV3 MOV R3, A INC R6 MDIV3:DJNZ R2, MDIV2 …… 。除數(shù)非 0則執(zhí)行除法 。 舉例: 采用 “左移被除數(shù)相減法” 的無符號雙字節(jié)除法。首先把被除數(shù)移入余數(shù)單元的數(shù)與除數(shù)相比較,如余數(shù)大于除數(shù),則商位為 1,并從余數(shù)中減去除數(shù),形成一個部分余數(shù);否則商位為 0,不執(zhí)行減法。這樣重復移位、做減法,直到被除數(shù)全部左移入余數(shù)單元。下式說明兩個二進制數(shù) A=100100和 B=101的手算除法步驟: 01 00 部分余數(shù) 100100 247。以上程序完成的是雙字節(jié)乘以雙字節(jié),稱為四字節(jié)的乘法。準備加以前加法的進位 CY,( F0) =CY C ADDC A, B 。(R2)*(R6) ADD A, R5 。(A)= (R3*R6)H, (B)= (R6), ADDC A, R5 。(R5)=(R2*R7)H+CY MOV A, R6 MOV B, R3 MUL AB 。(A)=(R2*R7)L+(R3*R7)H ,可能產(chǎn)生 CY MOV R4, A 。(R3)*(R7) XCH A, R7 。在實時控制應用場合中,經(jīng)常需要在 100181。 入口: R2R3中存放被乘數(shù), R6R7中存放乘數(shù)。 只加進位 (R2*R6)H+CY+0→ A MOV C, 00H ADDC A, 00H 。(42H) ← (A) MOV A, R2 MOV B, R6 MUL AB 。(41H)= (R3*R7)H+ (R2*R7)L+(R3*R6)L ▽ 2 MOV A, 42H 。只加進位, (A)=(R2*R7)H+CY+0 MOV 42H, A 。(R2)*(R7) ADD A, 41H 。 462 多字節(jié)無符號數(shù)乘法運算 ? 計算原理如下式: 參 見 書 P 62 圖 ( R7) ( R6) ( R3) ( R2) + ( R3R7 ) L ( R3R7 ) H ( R2R7 ) L ( R2R7 ) H ( R3R6 ) L ( R3R6 ) H ( R2R6 ) L ( R2R6 ) H ( R5) ( R4) ( R7) ( R6) (43H) (42H) (41H) (40H) 程序: MOV A, R3 MOV B, R7 MUL AB 。 t=(1x1+1x100+ 3x1000+ 2x100+ 2x1)xT =3003X 2?s = ms 1 100 10 100 10 100 100 1 指令周期 (M) 指令執(zhí)行次數(shù) 46 算術運算程序 461 多字節(jié)加減運算程序 多字節(jié)加法子程序, Z=X+Y。 SORT: MOV A, N1 ; N個數(shù)據(jù)排序 MOV R4, A ; 外循環(huán)次數(shù) LOOP1: MOV A, R4 MOV R3, A ; 內(nèi)循環(huán)次數(shù) MOV R0, TAB ; 設數(shù)據(jù)指針 LOOP2: MOV A, R0 ; 取二數(shù) MOV B, A INC R0 MOV A, R0 CJNE A, B, L1 ; 比較( A≠B跳) SJMP UNEX L1: JNC UNEX ; A≥B , 不交換 DEC R0 ; 否則交換數(shù)據(jù) XCH A, R0 INC R0 MOV R0, A UNEX: DJNZ R3, LOOP2 ; 內(nèi)循環(huán)結束? DJNZ R4, LOOP1 ; 外循環(huán)結束? RET 開 始循 環(huán) 結 束YNA ≥ B ?外 循 環(huán) 次 數(shù) R4NYB ( R0) A ( R0+ 1 )內(nèi) 循 環(huán) 次 數(shù) R3 表 首 T A B R0( R0) ( R0+ 1 )R0 R0+ 1R3 R3 1 = 0 ?YR4 R4 1 = 0 ?N單循環(huán)定時程序:短延時 (參看 P58 ( 3)) MOV R5, TIME LOOP: NOP NOP DJNZ R5, LOOP 軟件延時程序: 1T 1T 1T 2T 設: fOSC=6MHz, 則 T=12/6MHz=2?s t=( 1+4 TIME) T =2+8 TIME( ?s) 用循環(huán)程序?qū)⒅噶钪貜投啻螆?zhí)行,實現(xiàn)軟件延時。 第二次循環(huán),比較 N2次,取到次大值。門限設為 MAX,以免漏比 NEXT: MOVX A, DPTR ; 取數(shù) INC DPTR ; 修改指針 CJNE A, 1, NEXT1 ; 是否為數(shù)表結尾?( A≠1跳) SJMP DONE ; 循環(huán)結束 NEXT1: CJNE A, B, NEXT2 ; 比較( A≠B跳) AJMP NEXT NEXT2: JNC NEXT ; C=0跳 MOV B, A ; 保存較小值 SJMP NEXT DONE: SJMP $ LIST: DB … DB … L I S T片 外 R A M. . . 1設定循環(huán)結束標志實現(xiàn)循環(huán)控制。 參見書 P13 如 ACC中 1的個數(shù) 為奇數(shù): P=1。 例: 求 n個單字節(jié)數(shù)據(jù)的累加,設數(shù)據(jù)串已在43H起始單元,數(shù)據(jù)串長度在 42H單元,累加和不超過 2個字節(jié),高位放入 41H、低位放入 40H。 :滿足循環(huán)條件,繼續(xù)循環(huán),否則退出循環(huán)。 45 循環(huán)程序 451 循環(huán)程序的構成 各個環(huán)節(jié)任務: 一、初始化部分: 循環(huán)準備工作。 分析:差值表 =分支入口地址 - 該表首址 利用查地址表法: (參見書 P51 例 3)。 參見書 P49 例 1 按分支號轉(zhuǎn)移 如:當分支號 =0,程序轉(zhuǎn)移到 ADDR0處; 當分支號 =1,程序轉(zhuǎn)移到 ADDR1處; … 。 (復習、參見書 P3839) (1)測試條件符合轉(zhuǎn)移,如: JZ、 JNB … 等 4 4 分支程序 (參見書 P4957) ( 2)比較不相等轉(zhuǎn)移,如: CJNE R0, 2FH, LOOP ( 3)減 1不為 0轉(zhuǎn)移,如: DJNZ R7, LOOP ( 4)根據(jù)某些單元或寄存器的內(nèi)容轉(zhuǎn)移,如: JMP A+DPTR 441單重分支程序 一個判斷決策框,程序有兩條出路。 例 : 三字節(jié)無符號數(shù)相加,其中被加數(shù)在內(nèi)部 RAM的 50H、 51H和 52H 單元中;加數(shù)在內(nèi)部 RAM的 53H、54H和 55H單元中;要求把相加之和存放在 50H、51H和 52H單元中,進位存放在位尋址區(qū)的 00H位中。 ,明確各程序 之間的相互關系。 匯編語言程序設計方法 單片機應用系統(tǒng)軟件一般由匯編語言 或其他高級語言寫成,一個單片機程序中由主程序、若干個子程序、中斷程序組成,從程序結構上分為順序程序、分支程序、循環(huán)程序、子程序、中斷程序等。此時匯編程序會生成與其對應的目標文件。 機器匯編一般是在 PC機上利用一些匯編軟件進行。如南京偉福 WAVE 6000 for Windows、DVCC軟件 、開發(fā)實驗箱等。 ORG 1000H DS 07H DB 20H, 20
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1