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

正文內(nèi)容

[電腦基礎(chǔ)知識(shí)]第2章mcs-51單片機(jī)應(yīng)用教程(參考版)

2025-01-22 08:50本頁面
  

【正文】 下列程序段運(yùn)行后,內(nèi)部 RAM中 61H、 62H、 30H、 31H以及 DPTR和 SP中的內(nèi)容將如何變化? PUSH 30H PUSH 31H POP DPL POP DPH MOV 30H, 00H MOV 31H,# 0FFH 216 試編寫條件轉(zhuǎn)移程序,當(dāng)寄存器 R3的內(nèi)容分別滿足下列條件時(shí)能轉(zhuǎn)移到 LOOP處執(zhí)行程序,條件不滿足時(shí)則停機(jī)。 下列程序運(yùn)行后,分析運(yùn)行結(jié)果。 213 試編寫程序完成以內(nèi)部 RAM的 30H為首地址的 20個(gè)數(shù)據(jù)傳送,目的地址為外部 RAM以 3000H為首地址的區(qū)域。 ( 4) 將 DPTR中的 4位壓縮 BCD數(shù)用非壓縮 BCD形式放在內(nèi)部 RAM的 40H~ 43H 4個(gè)單元中( 40H放高位)。 ( 2) 將 DPTR中間 8位取反,其余位不變。 MOV A, B ANL A, R0 PUSH ACC MOV A, R0 CPL A XRL A, B POP B ORL A, B 211 判斷下列指令是否合乎規(guī)定,且說明理由。 ( 5) 使內(nèi)部 RAM 50H單元中的所有位變反。 ( 3) 使內(nèi)部 RAM 50H單元中的高 3位變反,其余位不變。 28 寫出下段程序運(yùn)行每一步 A、 B中的結(jié)果: MOV A, 22H MOV B, 05H MOV R0, 08H MUL AB MOV B, R0 DIV AB 29 試寫出完成如下操作的程序: ( 1) 使外部 RAM 1000H單元中的低 4位變 “ 0” ,其余位不變。 ( 8) 外部 RAM 1000H單元中內(nèi)容送 SP。 ( 6) 外部 ROM 1000H單元中內(nèi)容送內(nèi)部 RAM 35H單元。 ( 7) 外部 ROM 4000H單元中內(nèi)容送外部 RAM 4000H單元。 ( 5) 外部 RAM 3000H單元中內(nèi)容送外部 RAM 25H單元。 ( 3) 內(nèi)部 RAM 25H單元中內(nèi)容送 P1口。 ( 1) R1內(nèi)容傳送到 R0。靈活運(yùn)用各種不同的尋址方式,可縮短程序長度,提高程序的執(zhí)行速度。 MCS51單片機(jī)執(zhí)行一條指令時(shí)一般分取指和執(zhí)行指令兩個(gè)步驟進(jìn)行。用于指示從標(biāo)號(hào)地址 開始留出一定量的存儲(chǔ)空間。執(zhí)行匯編程 序后,機(jī)器自動(dòng)按高字節(jié)在前、低字節(jié)在 后的格式排列。一個(gè)字相當(dāng)于兩個(gè)字節(jié)。 7. DW 功能: 定義字指令。用于在程序存儲(chǔ)器中定義 一個(gè)或多個(gè)字節(jié)。 格式: 字符名 BIT位地址 說明: 將右邊的位地址賦給左邊的字符名。 5. BIT 功能: 位地址賦值指令。 格式: 字符名 DATA表達(dá)式;賦成 8位數(shù)據(jù) 字符名 XDATA表達(dá)式;賦成 16位數(shù)據(jù)或地 址 說明: 指令功能與 EQU相似,可以先使用后定義。 4. DATA 功能: 數(shù)據(jù)(地址)賦值指令。用于給左邊的 “ 字符名 ” 賦值。 格式:[標(biāo)號(hào)]: END 說明: END后面的語句將不被匯編成機(jī)器碼。 2. END 功能: 匯編結(jié)束指令。一般用于規(guī)定匯編程序段 或數(shù)據(jù)塊的起始地址。位異或相應(yīng)算式 W=((M)∧ (N))∨ ((M)∧ (N)) 相應(yīng)程序?yàn)椋? MOV C, N ;( C) ← ( N) ANL C, /M ;( C) ← ( N) ∧ M MOV W, C ; 中間結(jié)果暫存于 W MOV C, M ;( C) ← ( M) ANL C, /N ;( C) ← ( M) ∧ ( N) ORL C, W ;( C) ←((M) ∧ (N))∨ ((M)∧ (N)) MOV W, C ; 結(jié)果存入 W SJMP $ ; 結(jié)束 偽指令沒有目標(biāo)代碼與之對(duì)應(yīng),它主要是為匯編程序服務(wù)的,常用的偽指令共有 8條。 ANL C, bit ; C←(C) ∧ bit ANL C, /bit ; C←(C) ∧ bit ORL C, bit ; C←(C) ∨ bit ORL C, /bit ; C←(C) ∨ bit 例 214 設(shè) M、 N和 W代表位地址,求 W=M ⊕ N。 2. 位變量修改指令 這組指令分別完成位清 0、置位及取反操作,執(zhí)行結(jié)果不影響其他標(biāo)志位。布爾處理器的累加器 Cy在指令中可簡寫成 C。 4. 空操作指令 NOP ;( PC) ← ( PC) +1 空操作即控制 CPU不作任何操作,只產(chǎn)生一個(gè)機(jī)器周期延遲。返回時(shí),先彈出 PC高 8位,后彈出 PC低 8位。目標(biāo)地址的形成方法與絕對(duì)轉(zhuǎn)移指令 AJMP相同。 構(gòu)造目的地址 把指令中提供的 16位子程序入口地址壓入 PC, 長調(diào)用指令的調(diào)用范圍是 64KB。調(diào)用指令在調(diào)用程序中使用,而返回指令則是子程序中最后一條指令。第 3條指令具有清 0功能。 ① 判斷 Cy轉(zhuǎn)移指令 JC rel ; 若 Cy=1, 則 PC← ( PC) +2+rel ; 若 Cy=0, 則 PC← ( PC) +2 JNC rel ; 若 Cy=0, 則 PC← ( PC) +2+rel ; 若 Cy=1, 則 PC← ( PC) +2 上述兩條指令以位累加器 C的狀態(tài)為轉(zhuǎn)移條件。第三條 DJNZ指令暫時(shí)不會(huì)執(zhí)行。 例 213 設(shè) R0、 R R2的內(nèi)容分別為 01H、 0AH、20H, 執(zhí)行下列程序: DJNZ R0, L1 DJNZ R1, L2 DJNZ R2, L3 執(zhí)行第一條 DJNZ后( R0) =0, 程序不轉(zhuǎn)移。 CJNE A, data, rel CJNE A, direct, rel CJNE Ri, data, rel CJNE Rn, data, rel ( 3) 循環(huán)轉(zhuǎn)移指令 DJNZ Rn, rel; Rn← ( Rn) ―1 ; 若( Rn) =0, 則 PC← ( PC) +2 ; 若( Rn) ≠0, 則 PC← ( PC) +2+rel DJNZ direct, rel; direct← ( direct) 1 ; 若( direct) =0, 則 PC← ( PC) +3 ; 若( direct) ≠0, 則 PC← ( PC) +3+rel 這是減 1后與 0比較指令,每執(zhí)行一次該指令,第一操作數(shù)字節(jié)變量減 1,結(jié)果送回第一操作數(shù)中,并判斷字節(jié)變量是否為 0,不為 0則轉(zhuǎn)移,否則順序執(zhí)行。若目的字節(jié)小于源字節(jié),則 Cy置 1,否則 Cy清 0。轉(zhuǎn)移指令中的相對(duì)偏移量 rel為 8位帶符號(hào)數(shù),表示條件轉(zhuǎn)移目標(biāo)地址在以下一條指令地址為中心的 256字節(jié)范圍內(nèi)(- 128~ +127)。 2. 條件轉(zhuǎn)移指令 條件轉(zhuǎn)移指令是依據(jù)某種特定條件而轉(zhuǎn)移的指令。 解: 程序如下: ORG 1000H STR: MOV DPTR, TAB RL A ; A←(A)*2 JMP A+DPTR TAB: AJMP KL0 AJMP KL1 AJMP KL2 … 當(dāng)( A) =00H時(shí),散轉(zhuǎn)到 KL0;( A) =02H時(shí)散轉(zhuǎn)到 KL2。在 DPTR中裝入多分支程序的首地址,由累加器 A的內(nèi)容來動(dòng)態(tài)選擇其中的某一個(gè)分支進(jìn)行分支轉(zhuǎn)移。 例如, 1000H SJMP 89H 則轉(zhuǎn)移地址 ( PC) =1000H+2+89H=1002H+FF89H=0F8BH ( 4) 間接轉(zhuǎn)移指令 JMP A+DPTR ; PC← ( A) + ( DPTR) 本指令將累加器 A中的 8位無符號(hào)數(shù)與 16位數(shù)據(jù)指針相加,其和裝入程序計(jì)數(shù)器 PC, 控制程序轉(zhuǎn)向目標(biāo)地址。 ( 3) 短轉(zhuǎn)移指令 SJMP rel ; PC← ( PC) + 2 ; PC← ( PC) + rel rel為地址偏移量,帶符號(hào) 8位二進(jìn)制數(shù)。 ( 2) 絕對(duì)轉(zhuǎn)移指令 AJMP addr11 指令中提供 11位地址,與 PC當(dāng)前值的高 5位共同組成 16位目標(biāo)地址,程序無條件轉(zhuǎn)向目標(biāo)地址。 控制轉(zhuǎn)移類指令 1. 無條件轉(zhuǎn)移指令 ( 1) 長轉(zhuǎn)移指令 LJMP addr16 ; PC←addr16 長轉(zhuǎn)移指令是把指令中 16位目標(biāo)地址裝入 PC, 使程序執(zhí)行下條指令時(shí)無條件轉(zhuǎn)移到 addr16處執(zhí)行。同理,累加器右移一位相當(dāng)于除以 2,讀者可以舉例驗(yàn)證。 2. 移位指令 RL A ; 累加器左環(huán)移 RLC A ; 累加器通過 Cy左環(huán)移 RR A ; 累加器右環(huán)移 RRC A ; 累加器通過 Cy右環(huán)移 每條指令操作過程如圖 27所示。 邏輯運(yùn)算指令 1. 邏輯“與”、“或”、“異或”指令 邏輯 “ 與 ” 、 “ 或 ” 、 “ 異或 ” 3種操作各有 6條指令,分別用助記符 ANL、 ORL、 XRL代表 “ 與 ” 、“ 或 ” 、 “ 異或 ” 。 ORG 2022H N1 DATA 20H CLR C ;( Cy) ← 0 MOV A, 9AH ;( A) ← 兩位 BCD的模 102 SUBB A, N1+1 ;( A) ← 減數(shù)的補(bǔ)數(shù) ADD A, N1 ;( A) ← 被減數(shù) +減數(shù)的補(bǔ)數(shù) DA ; 進(jìn)行調(diào)整 CPL C ; 取借位標(biāo)志 JNC L1 ; 借位標(biāo)志為 0則轉(zhuǎn)移 MOV N1+2, A ; 存差的補(bǔ)數(shù) MOV A, 9AH SUBB A, N1+2 ; 求差的絕對(duì)值 L1: MOV N1+2, A ; 存結(jié)果 SJMP $ ; 停機(jī) 若被減數(shù) 減數(shù),則差為正,借位標(biāo)志為 0;若被減數(shù) 減數(shù),則差為負(fù),借位標(biāo)志為 1。 解: 由于 DA指令不能直接用于減法操作的調(diào)整,因此采用對(duì)減數(shù)求補(bǔ)后再與被減數(shù)相加,然后再進(jìn)行 DA調(diào)整的方法實(shí)現(xiàn)。將兩個(gè)用壓縮 BCD碼表示的十進(jìn)制數(shù)相減,借位標(biāo)志存入 C累加器。 相應(yīng) BCD加法程序?yàn)椋? ORG 3000H MOV A, 78H ; A← 78H
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1