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

正文內(nèi)容

單片微型計(jì)算機(jī)原理與接口技術(shù)第二版第3章___80c51單片微機(jī)的指令系統(tǒng)-資料下載頁

2024-12-08 08:00本頁面
  

【正文】 110101B) , ( CY) = 0 CPL A 對進(jìn)行累加器的內(nèi)容逐位取反 , 結(jié)果仍存在 A中 。 不影響標(biāo)志位 。 例:設(shè) ( A) = 21H(0010 0001B), 執(zhí)行 CPL A指令 , 執(zhí)行結(jié)果:( A)= DEH (1101 1110B)。 累加器按位取反指令 CLR A 對累加器進(jìn)行清 0, 不影響標(biāo)志位 。 例:設(shè)( A)= 44H, 執(zhí)行 CLR A指令, 執(zhí)行結(jié)果:( A)= 00H。 累加器清 0指令 例 10: 數(shù)據(jù)的拆分與拼裝 要求:從 (30H)==X7X6X5X4X3X2X1X0中取出高 5位,從 (31H)=Y7Y6Y5Y4Y3Y2Y1Y0中取出低 3位,拼裝后存入 40H中, (40H)=Y2Y1Y0X7X6X5X4X3 地址 機(jī)器碼 ORG 0000H 0000 E5 30 MOV A, 30H 0002 C4 SWAP A ; X3X2X1X0 X7X6X5X4 0003 23 RL A ; X2X1X0 X7X6X5X4X3 左 移了 5位 0004 F5 40 MOV 40H, A 0006 53 40 1F ANL 40H, 00011111B 0009 E5 31 MOV A, 31H 000B 75 F0 20 MOV B, 20H 000E A4 MUL AB ; Y2Y1Y0 0 0 0 0 0左 移了 5位 000F 54 E0 ANL A, 11100000B 0011 42 40 ORL 40H, A 0013 21 13 HERE : AJMP HERE 注:實(shí)現(xiàn)左移 5位 , 采用了兩種方法 , 即移位和乘法 。 控制程序轉(zhuǎn)移類指令 程序的順序執(zhí)行是由 PC自動(dòng)加 1來實(shí)現(xiàn)的,但在應(yīng)用系統(tǒng)中,往往會(huì)遇到一些情況,需要強(qiáng)迫改變程序執(zhí)行順序,比如調(diào)用子程序,比如根據(jù)檢測值與設(shè)定值的比較結(jié)果要求程序轉(zhuǎn)移到不同的分支入口等。 80C5設(shè)有豐富的控制轉(zhuǎn)移指令,可分為無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令、子程序調(diào)用和返回指令及空操作指令等。但不包括布爾變量控制程序轉(zhuǎn)移指令。 采用助記符有: AJMP、 LJMP、 SJMP、 JZ、 JNZ、 CJNE、 DJNZ、 ACALL、 LCALL、 RET、 RETI、 NOP等 12種。 指令 機(jī)器碼 SJMP rel 80 rel AJMP addr11 a10 a9 a8 00001 a7~ a0 LJMP addrl6 02 addr15~ 8 addr7~ 0 JMP @ A+ DPTR 73 功能 ∶ 程序無條件地轉(zhuǎn)移到各自指定的目標(biāo)地址去執(zhí)行 , 不同的指令形成的目標(biāo)地址不同 。 無條件轉(zhuǎn)移指令 1. 短轉(zhuǎn)移指令 : SJMP rel 10000000 相對地址 目標(biāo)地址是由當(dāng)前 PC值和指令的第 2字節(jié)提供的8位帶符號(hào)的相對地址 rel相加而成的 。 指令可轉(zhuǎn)向 當(dāng)前 PC地址 的 后 128 B 或前 127 B。 (PC)=(PC)+2 ;當(dāng)前 PC地址 (PC)=(PC)+rel 當(dāng)相對地址為 FEH (02) 時(shí) , SJMP指令實(shí)現(xiàn)原地轉(zhuǎn)圈的運(yùn)行狀態(tài) 。 有兩種情況: ⑴ 根據(jù)偏移量計(jì)算轉(zhuǎn)移的目的地址 例:在 2100H地址上有 SJMP指令: 2100H SJMP 7FH 源地址為 2100H, 當(dāng)前 PC地址為 (2100H+02H)=2102H,偏移量 rel=7FH, 是正數(shù) , 執(zhí)行指令 SJMP 7FH后 , 程序轉(zhuǎn)移至 PC=2102H+7FH=2181H去執(zhí)行 。 例:在 2100H地址上有 SJMP指令 2100H SJMP 80H 當(dāng)前 PC地址為 (2100H+02H)=2102H, 偏移量 rel=80H,是負(fù)數(shù) , 程序轉(zhuǎn)移至 PC=2102H80H=2082H去執(zhí)行 。 ★ 采用符號(hào)位擴(kuò)展的方法進(jìn)行計(jì)算。 8位偏移量的符號(hào)位為 1,則高 8位為全 1,即 FFH,若 8位偏移量的符號(hào)位為 0,則高 8位為全 0,即 00H。 2102H 2102H + 007FH +FF80H 2181H 2082H ⑵ 根據(jù)目的地址計(jì)算偏移量 在人工進(jìn)行匯編時(shí) , 必須算出偏移量 rel, 才能得到機(jī)器碼 。 rel=(目標(biāo)地址-當(dāng)前 PC地址 ) 的低 8位 , 而 高 8位必須是 00H或 FFH, 否則超出短轉(zhuǎn)移范圍 , 溢出出錯(cuò) 。 例: 2100H 80 FE HERE:SJMP HERE rel:2100H- 2102H=FFFEH。高 8位是 FFH,表示負(fù)跳 ,偏移量為 FEH (- 2)。 ⒉ 絕對轉(zhuǎn)移指令 AJMP addr11 A10A9A8 0 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 ◆ 目標(biāo)地址由指令第 1字節(jié)的高 3位 a10~ a8和指令第 2字節(jié)的 a7~ a0所組成 。 以指令提供的 11位地址去取代當(dāng)前PC的低 11位 , 形成新的 PC值 , 即為本絕對轉(zhuǎn)移地址 。 ◆ 程序的目標(biāo)地址必須包含 AJMP指令后第 1條指令的第 1個(gè)字節(jié) (即當(dāng)前 PC地址 )在內(nèi)的 2KB范圍內(nèi) (即高 5位地址必須相同 )。 例:設(shè) ( PC) = 0456H, 標(biāo)號(hào) JMPADR所指的單元為0123H。 執(zhí)行指令 ∶ AJMP JMPADR 機(jī)器碼為 001 00001 00100011 執(zhí)行結(jié)果程序轉(zhuǎn)向?yàn)?( PC) = 0123H。 例: 0000H 21 11 AJMP 0111H ;轉(zhuǎn)移有效 07FEH 81 10 AJMP 0C10H ;當(dāng)前 PC值為 ; 0800H轉(zhuǎn)移有效 0100H AJMP 0B11H ;轉(zhuǎn)移無效 ⒊ 長轉(zhuǎn)移指令 LJMP addr16 ◆ 目標(biāo)地址由指令第 2字節(jié) (高 8位地址 )和第 3字節(jié)(低 8位地址 )組成 。 ◆ 程序轉(zhuǎn)向的目標(biāo)地址可以包含程序存儲(chǔ)器的整個(gè)64 KB空間 。 例:設(shè) ( PC) = 0123H, 標(biāo)號(hào) ADR所指單元地址為3456H。 執(zhí)行指令 ∶ LJMP ADR 執(zhí)行結(jié)果 ∶ ( PC) = 3456H ⒋ 間接轉(zhuǎn)移指令 JMP @A+DPTR ◆ 目標(biāo)地址是將累加器 A中的 8位無符號(hào)數(shù)與數(shù)據(jù)指針DPTR的內(nèi)容相加而得 (在程序運(yùn)行時(shí)動(dòng)態(tài)決定 )。 相加運(yùn)算不影響累加器 A和數(shù)據(jù)指針 DPTR的原內(nèi)容 。 若相加的結(jié)果大于 64 KB, 則從程序存儲(chǔ)器的零地址往下延續(xù) 。 ◆ 當(dāng) DPTR的值固定 , 而給 A賦以不同的值 , 即可實(shí)現(xiàn)程序的多分支轉(zhuǎn)移 。 如實(shí)現(xiàn)鍵盤譯碼散轉(zhuǎn)功能 。 例:設(shè)( A)= 5,( DPTR)= 4567H。 執(zhí)行指令為 JMP @ A+ DPTR 執(zhí)行結(jié)果為 : (PC)= (A)+ (DPTR)= 05H + 4567H= 456CH 程序轉(zhuǎn)向 456CH單元執(zhí)行。 例 11:散轉(zhuǎn)程序設(shè)計(jì) MOV R1, A ; (A) 3 RL A ADD A, R1 MOV DPTR , TABLE ; 散 轉(zhuǎn) 表 首 址 JMP @A+DPTR TABLE: LJMP PM0 ;轉(zhuǎn)程序 PM0 TABLE+ 3: LJMP PM1 ;轉(zhuǎn)程序 PM1 PM0: 在滿足指令中規(guī)定的條件 (如累加器內(nèi)容是否為零 , 兩個(gè)操作數(shù)是否相等 ) 時(shí)才執(zhí)行無條件轉(zhuǎn)移 , 否則程序順序執(zhí)行 。 6條指令可分為判零轉(zhuǎn)移指令和比較轉(zhuǎn)移指令兩部分 。 條件轉(zhuǎn)移指令 ⒈ 累加器判零轉(zhuǎn)移指令 JZ rel ;若 (A)=0, 則 (PC)=(PC+2)+rel ;若 (A)≠0, 則 (PC)=(PC)+2 JNZ rel ;若 (A)≠0, 則 (PC)= (PC+2)+rel ;若 (A)=0, 則 (PC)=(PC)+2 滿足各自條件時(shí) , 程序轉(zhuǎn)向指定的目標(biāo)地址執(zhí)行 (相當(dāng)于執(zhí)行SJMP rel) 。 當(dāng)不滿足各自條件時(shí) , 程序順序往下執(zhí)行 。 ★ rel=目標(biāo)地址一 PC的當(dāng)前值 注意:差值的最高兩位必須為 00H或 FFH, 否則超出偏移量允許范圍 。 rel取低兩位 。 ◆ 偏移量 rel是用補(bǔ)碼形式表示的帶符號(hào)的 8位數(shù) , 程序轉(zhuǎn)移的目標(biāo)地址為當(dāng)前 PC地址的后 128 B或前 127 B。 ◆ 指令執(zhí)行后不影響任何操作數(shù)和標(biāo)志位 。 例:設(shè) ( A) = 01H 執(zhí)行程序 JZ ABEL1 ;因?yàn)?( A) ≠ 0, 程序繼續(xù)執(zhí)行 DEC A ; ( A) 一 l= 00H JZ LABEL2 ;因?yàn)?( A) =00H, 程序轉(zhuǎn)向標(biāo)號(hào) ; LABEL2 指示的地址執(zhí)行 LABEL1: LABEL2: ⒉ 數(shù)值比較轉(zhuǎn)移指令 CJNE A, direct, rel CJNE A, # data, rel CJNE Rn, # data, rel CJNE @ Ri, # data, rel 其指令格式為: CJNE( 操作數(shù) 1) , ( 操作數(shù) 2) , rel ◆ 具有比較轉(zhuǎn)移和數(shù)值大小比較的功能 。 數(shù)值比較指令的第 1字節(jié)為操作碼 (或操作碼 +操作數(shù)1) ,第 2字節(jié)為操作數(shù) 2,第 3字節(jié)為偏移量 rel。 1 0 1 1 1 r r r data rel 這組指令的功能是對指定的兩操作數(shù)進(jìn)行比較,即 (操作數(shù) 1)- (操作數(shù) 2) , ◆ 比較結(jié)果均不改變兩個(gè)操作數(shù)的值,僅影響標(biāo)志位 CY。指令流程圖如 圖 3–10所示 。 比如 CJNE Rn, data, rel指令的編碼為 (1) 若值不等,程序轉(zhuǎn)移到 (PC)十 3加上第 3字節(jié)帶符號(hào) 的 8位偏移量( rel)所指向的目標(biāo)地址; 若 (操作數(shù) 1) > (操作數(shù) 2),清進(jìn)位標(biāo)志( CY)。 若 (操作數(shù) 1) < (操作數(shù) 2),則置位進(jìn)位標(biāo)志( CY)。 (2) 值相等,則程序繼續(xù)執(zhí)行。 程序轉(zhuǎn)移的范圍是從( PC)+ 3為起始的+ 127~一 128B的單元地址。 例:溫度控制程序 某溫度控制系統(tǒng), A中存溫度采樣值 Ta, (20H)=溫度下限值 T20, (30H)=溫度上限值 T30。若 Ta> T30,程序轉(zhuǎn)降溫 JW,若 Ta< T20,程序轉(zhuǎn)升溫 SW,若 T30≥Ta≥T20程序轉(zhuǎn) FH返回主程序。 CJNE A, 30H , LOOP AJMP FH ;等于 T30,轉(zhuǎn) FH
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1