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

正文內(nèi)容

[計(jì)算機(jī)]第4章80c51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)-文庫(kù)吧資料

2024-10-22 23:03本頁(yè)面
  

【正文】 斷 點(diǎn) 1 地 址 低 8 位斷 點(diǎn) 2 地 址 高 8 位斷 點(diǎn) 2 地 址 低 8 位斷 點(diǎn) 1 地 址 高 8 位( a ) 子 程 序 嵌 套 示 意 圖( b ) 堆 棧 操 作 示 意 圖圖 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 1 子程序調(diào)用指令 80C51共有兩條子程序調(diào)用指令: LCALL addr16 ACALL addr11 LCALL指令稱為長(zhǎng)調(diào)用指令 , 指令的操作數(shù)部分給出了子程序的 16位地址 。 解: MOV R0, DATA;首地址送入間址寄存器 R0 MOV R7, 0AH ;計(jì)數(shù)器 R7送入計(jì)數(shù)初值 CLR A ;累加器 A存放累加和 , 先清零 LOOP: ADD A, R0 ;加一個(gè)數(shù) INC R0 ;地址加 1, 指向下一個(gè)單元 DJNZ R7, LOOP;循環(huán) MOV SUM, A ;累加和存入指定單元 SJMP $ ;結(jié)束 子程序調(diào)用及返回指令 在程序設(shè)計(jì)中 , 常常出現(xiàn)幾個(gè)地方都需要進(jìn)行功能完全相同的處理 , 如果重復(fù)編寫這樣的程序段 , 會(huì)使程序變得冗長(zhǎng)而雜亂 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 414試編寫程序 , 將內(nèi)部 RAM從 DATA為起始地址的 10個(gè)單元中的數(shù)據(jù)求和 , 并將結(jié)果送入SUM單元 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 3 減 1條件轉(zhuǎn)移指令 這是一組把減 1與條件轉(zhuǎn)移兩種功能結(jié)合在一起的指令 。 因此 CJNE指令不能直接用于有符號(hào)數(shù)大小的比較 。 ( 2) 比較操作實(shí)際就是做減法操作 , 只是不保存減法所得到的差 ( 即不改變兩個(gè)操作數(shù)本身 ) ,而將結(jié)果反映在標(biāo)志位 CY上 。 通常在該組指令之后 , 選用以 CY為條件的轉(zhuǎn)移指令 , 則可以判別兩個(gè)數(shù)的大小 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 2 比較條件轉(zhuǎn)移指令 比較條件轉(zhuǎn)移指令共有 4條 , 其差別只在于操作數(shù)的尋址方式不同: CJNE A, data, rel CJNE A, direct, re1 CJNE Rn, data, rel CJNE Ri, data, rel 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 該組指令在執(zhí)行時(shí)首先對(duì)兩個(gè)規(guī)定的操作數(shù)進(jìn)行比較 , 然后根據(jù)比較的結(jié)果來(lái)決定是否轉(zhuǎn)移:若兩個(gè)操作數(shù)相等 , 程序按順序往下執(zhí)行;若兩個(gè)操作數(shù)不相等 , 則進(jìn)行轉(zhuǎn)移 。JZ指令的功能是:累加器 ( A) = 0則轉(zhuǎn)移;否則就按順序執(zhí)行 。 ( 1) 所有的條件轉(zhuǎn)移指令都屬于相對(duì)轉(zhuǎn)移指令 , 轉(zhuǎn)移范圍相同 , 都在以 PC當(dāng)前值為基準(zhǔn)的 256B范圍內(nèi) ( 128+127) ; ( 2) 計(jì)算轉(zhuǎn)移地址的方法相同 , 即轉(zhuǎn)移地址= PC當(dāng)前值 +rel。 JPTAB: AJMP KPRG0 JPTAB: AJMP KPRG0 AJMP KPRG1 AMP KPRG2 AJMP KPRG3 KPRG0: … KPRG1: … HPRG2: … KPRG3: … 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 條件轉(zhuǎn)移指令 條件轉(zhuǎn)移指令是指當(dāng)某種條件滿足時(shí) , 轉(zhuǎn)移才進(jìn)行;而條件不滿足時(shí) , 程序就按順序往下執(zhí)行 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 413設(shè)累加器 A中存有用戶從鍵盤輸入的鍵值 0~3, 鍵處理程序分別存放在 KPRG0、 KPRG KPRG KPRG3處 , 試編寫程序 , 根據(jù)用戶輸入的鍵值 , 轉(zhuǎn)入相應(yīng)的鍵處理程序 。 例如 , 在 DPTR中裝入多分支轉(zhuǎn)移指令表的首地址 , 而由累加器 A中的內(nèi)容來(lái)動(dòng)態(tài)選擇該時(shí)刻應(yīng)轉(zhuǎn)向哪一條分支 , 實(shí)現(xiàn)由一條指令完成多分支轉(zhuǎn)移的功能 。 指令執(zhí)行后不改變 A和 DPTR中的內(nèi)容 , 也不影響任何標(biāo)志位 。 即:目的地址= ( PC) +2+rel rel是一個(gè)帶符號(hào)的相對(duì)偏移量 , 其范圍為 128+127,負(fù)數(shù)表示向后轉(zhuǎn)移 , 正數(shù)表示向前轉(zhuǎn)移 。 此時(shí) PC自身加 2形成 PC的當(dāng)前值 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 3 短轉(zhuǎn)移指令 SJMP rel SJMP是無(wú)條件相對(duì)轉(zhuǎn)移指令 , rel是相對(duì)轉(zhuǎn)移的偏移量 。 即:新的 PC值為 1781H, 所以指令執(zhí)行結(jié)果就是轉(zhuǎn)移到1781 H處執(zhí)行程序 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) RO MA JM PA ddr 11PCPC + 1PC + 22 K 轉(zhuǎn)移范圍( PC + 2 ) 15 ~ 11( PC + 2 ) 15 ~ 11 0000000000011111111111 圖 AJMP指令轉(zhuǎn)移范圍 例 分析下面絕對(duì)轉(zhuǎn)移指令的執(zhí)行情況 。如圖 。 11位地址的范圍為 00000000000~11111111111,即可轉(zhuǎn)移的范圍是 2K。 此時(shí) PC自身加 2指向下一條指令的起始地址 ( PC當(dāng)前值 ) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 2 絕對(duì)轉(zhuǎn)移指令 AJMP addr11 這是一條兩字節(jié)指令 , 其指令格式為: 指令中提供了 11位目的地址 , 其中位 a7a0在第二字節(jié) , a10a8則占據(jù)第一字節(jié)的高 3位 , 而00001是這條指令特有的操作碼 , 占據(jù)第一字節(jié)的低 5位 。 1 長(zhǎng)轉(zhuǎn)移指令 LJMP addr16 其功能是把指令中給出的 16位目的地址 addr16送入程序計(jì)數(shù)器 PC, 使程序無(wú)條件轉(zhuǎn)移到addr16處執(zhí)行 。 80C51有比較豐富的控制轉(zhuǎn)移指令 , 包括無(wú)條件轉(zhuǎn)移指令 , 條件轉(zhuǎn)移指令和子程序調(diào)用及返回指令 , 這類指令一般不影響標(biāo)志位 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 控制轉(zhuǎn)移類指令 通常情況下 , 程序的執(zhí)行是按順序進(jìn)行的 , 這是由 PC自動(dòng)加 1實(shí)現(xiàn)的 , 有時(shí)因任務(wù)要求 , 需要改變程序的執(zhí)行順序 , 這時(shí)就需要改變程序計(jì)數(shù)器 PC中的內(nèi)容 , 這種情況稱做程序轉(zhuǎn)移 。 ( 1) RL A; A的內(nèi)容左移一位 , 結(jié)果 ( A) =10H RL A ; A的內(nèi)容左移一位 , 結(jié)果 ( A) =20H RL A ; A的內(nèi)容左移一位 , 結(jié)果 ( A) =40H 即左移一位 , 相當(dāng)于原數(shù)乘 2( 原數(shù)小于 80H時(shí) ) 。 循環(huán)移位指令 80C51系列單片機(jī)的移位指令只能對(duì)累加器A進(jìn)行移位 , 共有循環(huán)左移 、 循環(huán)右移 、帶進(jìn)位的循環(huán)左移和右移 4種: 循環(huán)左移 RL A 循環(huán)右移 RR A 帶進(jìn)位循環(huán)左移 RLC A 帶進(jìn)位循環(huán)右移 RRC A ; 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 可用圖形表示 , 如圖 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 累加器清零 、 取反指令 累加器清零指令 1條: CLR A 累加器按位取反指令 1條: CPL A 80C51系列單片機(jī)只有對(duì) A的取反指令 , 沒(méi)有求補(bǔ)指令 。 程序如下: ANL A, 0FH ;屏蔽 A的高 4位 , 保留低 4位 ANL P1, 0F0H;屏蔽 P1的低 4位 , 保留高 4位 ORL P1, A ;通過(guò)或運(yùn)算 , 完成所需操作 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) XRL A, data XRL A, direct XRL A, Rn XRL A, Ri XRL direct, A XRL direct, data 邏輯異或運(yùn)算指令常用于將某些位取反 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 A的低 4位送到 P1門的低 4位輸出 ,而 P1的高 4位保持不變 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 邏輯或運(yùn)算指令 ORL A, data ORL A, direct ORL A, Rn ORL A, Ri ORL direct, A ORL direct, data 邏輯或運(yùn)算指令常用于將某些位置位 ( 即使之為 1) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 邏輯與運(yùn)算指令 ANL A, data ANL A, direct ANL A, Rn ANL A, Ri ANL direct, A ANL direct, data 邏輯與運(yùn)算指令常用于將某些位屏蔽 ( 即使之為零 ) 。 邏輯運(yùn)算包括與 、 或 、異或三類 , 每類都有 6條指令 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 試編寫程序 , 實(shí)現(xiàn) 95+59的 BCD碼加法 、 并將結(jié)果存入 30H、 31H單元 。 該指令的功能為:若在加法過(guò)程中低 4位向高 4位有進(jìn)位 ( 即 AC= 1) 或累加器 A中低 4位大于 9, 則累加器 A做加 6調(diào)整 , 若在加法過(guò)程中最高位有進(jìn)位 ( 即 CY= 1) 或累加器 A中高 4位大于 9, 則累加器 A做加 60H調(diào)整 ( 即高 4位做加 6調(diào)整 ) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 如果兩個(gè) BCD碼數(shù)相加 , 結(jié)果也是 BCD碼 ,則該加法運(yùn)算稱為 BCD碼加法 。 4位二進(jìn)制數(shù)共有 16個(gè)編碼 , BCD碼是取它前 10個(gè)的編碼 0000~ 1001來(lái)代表十進(jìn)制數(shù)的 0~9,這種編碼稱為 8421BCD碼 , 簡(jiǎn)稱 BCD碼 。 該指令只影響進(jìn)位標(biāo)志 CY。指令執(zhí)行后 , 商存于累加器 A中 , 余數(shù)存于寄存器 B中 。 乘除指令 1 乘法指令 MUL AB 功能是把累加器 A和寄存器 B中的兩個(gè) 8位無(wú)符號(hào)數(shù)相乘 , 所得 16位乘積的低 8位放在 A中 , 高 8位放在 B中 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 減 1指令 DEC A DEC direct DEC Rn 功能是將操作數(shù)所指定單元的內(nèi)容減 1。 本組指令除“ INC A”指令影響 P標(biāo)志外 , 其余指令均不影響PSW標(biāo)志 。 奇偶標(biāo)志 P:當(dāng) A中 “ 1”的個(gè)數(shù)為奇數(shù)時(shí) , P= 1;為偶數(shù)時(shí) , P=0。 半借位標(biāo)志 AC:如果 D3位向上需借位 , 則 AC= 1;否則 , AC= 0。若要進(jìn)行不帶借位的減法運(yùn)算,應(yīng)該先用指令將 CY清零,然后再執(zhí)行 SUBB指令。 解:由于不存在 16位數(shù)的加法指令 , 所以只能先加低 8位 , 后加高 8位 , 而在加高 8位時(shí)要連低位相加的進(jìn)位一起相加 , 編程如下: MOV A, 30H ;取一個(gè)加數(shù)的低字節(jié)送 A中 ADD A, 40H ;兩個(gè)低字節(jié)數(shù)相加 MOV 50H, A ;結(jié)果送 50H單元 MOV A, 31H ;取一個(gè)加數(shù)的高字節(jié)送 A中 ADDC A, 41H ;高字節(jié)數(shù)相加 , 同時(shí)加低字節(jié)產(chǎn)生的進(jìn)位 MOV 51H, A ;結(jié)果送 51H單元 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 帶借位減法指令 SUBB A, data SUBB A, direct SUBB A, Rn SUBB A, Ri 功能是將累加器 A中的數(shù)減去源操作數(shù)所指出的數(shù)和進(jìn)位位 CY,其結(jié)果存放在累加器 A中。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 設(shè)有兩個(gè)無(wú)符號(hào) 16位二進(jìn)制數(shù) , 分別存放在30H、 31H單元和 40H、 41H單元中 ( 低 8位先存 ) ,寫出兩個(gè) 16位數(shù)的加法程序 , 將和存入 50H、 51H單元 。 例 設(shè) ( A) = AEH, ( R1) = 81H, ( CY) = 80H 執(zhí)行指令 ADDC A, R1, 則操作如下: 10101110 10000001 + 1← ( CY) 1 00110000 結(jié)果 ( A) =30H, ( CY) =1, ( OV) =1, ( AC)=1, ( P) =0 帶進(jìn)位加法指令主要用于多字節(jié)數(shù)的加法運(yùn)算 。源操作數(shù)的尋址
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1