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

正文內(nèi)容

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

 

【正文】 0表示 PSW中的 。主要用于數(shù)據(jù)的傳送、保存及交換數(shù)據(jù)等場(chǎng)合。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 3 間接尋址 MOV Ri, A ; (( Ri)) ← ( A) MOV A, Ri ; ( A) ← (( Ri)) MOV direct, Ri ; ( direct) ← (( Ri)) 通過(guò)址傳送操作數(shù)到 A和傳送到直接地址 。 后兩條指令是以 R0或 R1作為間址寄存器 , 其功能是將 R0或R1所指定的外部 RAM單元與累加器 A之間傳送數(shù)據(jù) 。 適合于查閱在 ROM中建立的數(shù)據(jù)表格 , 故稱做查表指令 。 即數(shù)據(jù)表格可以存放在 64KB程序存儲(chǔ)器的任意位置 , 稱為遠(yuǎn)程查表指令 。 累加器 A中的內(nèi)容為 8位無(wú)符號(hào)數(shù) , 該查表指令只能查找指令所在地址以后 256 B范圍內(nèi)的數(shù)據(jù) , 稱之為近程查表指令 。編程如下: MOV DPTR, 1000H ;外部 RAM地址送 DPTR MOVX A, DPTR ;從外部 RAM中取數(shù)送 A XCH A, 6AH; A與 6AH地址中的內(nèi)容進(jìn)行交換 MOV DP39。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 算術(shù)運(yùn)算類指令 80C51系列單片機(jī)的算術(shù)運(yùn)算類指令共有 24條 , 可以完成加 、 減 、 乘 、 除等各種操作 , 全部指令都是 8位數(shù)運(yùn)算指令 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 加法指令 ADD A, data ; ( A) ← ( A) +data ADD A, direct ; ( A) ← ( A) +( direct) ADD A, Rn ; ( A) ← ( A) +( Rn) ADD A, Ri ; ( A) ← ( A) +(( Ri)) 功能是把源操作數(shù)所指出的內(nèi)容與累加器 A的內(nèi)容相加 , 其結(jié)果存放在 A中 。 溢出標(biāo)志 OV:在加法運(yùn)算中 , 如果 D D6位只有一個(gè)向上有進(jìn)位時(shí) , OV= 1;如果 D D6位同時(shí)有進(jìn)位或同時(shí)無(wú)進(jìn)位時(shí) , OV= 0; 奇偶標(biāo)志 P:當(dāng) A中 “ 1”的個(gè)數(shù)為奇數(shù)時(shí) , P= 1;為偶數(shù)時(shí) , P= 0。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 帶進(jìn)位加法指令 ADDC A, data ADDC A, direct ADDC A, Rn ADDC A, Ri 功能是把源操作數(shù)所指出的內(nèi)容與累加器 A的內(nèi)容相加 、 再加上進(jìn)位標(biāo)志 CY的值 , 其結(jié)果存放在 A中 。 因低位字節(jié)相加時(shí)可能產(chǎn)生進(jìn)位 , 而在進(jìn)行高位字節(jié)相加時(shí) , 要考慮低位字節(jié)向高位字節(jié)的進(jìn)位 , 因此 ,必須使用帶進(jìn)位的加法指令 。減法運(yùn)算只有帶借位減法指令,而沒(méi)有不帶借位的減法指令。 溢出標(biāo)志 OV:如果 D D6位只有一個(gè)向上有借位時(shí) , OV= 1;如果 D D6位同時(shí)有借位或同時(shí)無(wú)借位時(shí) , OV= 0。 加 1指令常用來(lái)修改操作數(shù)的地址 , 以便于使用間接尋址方式 。 例 己知 ( A) =080H, ( B) = 32H, 執(zhí)行指令 MUL AB 結(jié)果 ( A) = 00H, ( B) = 19H, OV= 1,CY= 0, P= 0 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 2 除法指令 DIV AB 功能是將兩個(gè) 8位無(wú)符號(hào)數(shù)進(jìn)行除法運(yùn)算 , 其中被除數(shù)存放在累加器 A中 , 除數(shù)存放在寄存器 B中 。 所謂 BCD碼就是采用 4位二進(jìn)制編碼表示的十進(jìn)制數(shù) 。 在 80C51中沒(méi)有專門(mén)的 BCD碼加法指令 , 要進(jìn)行 BCD碼加法運(yùn)算 , 也要用加法指令 ADD或 ADDC, 然而計(jì)算機(jī)在執(zhí)行 ADD或 ADDC指令進(jìn)行加法運(yùn)算時(shí) ,是按照二進(jìn)制規(guī)則進(jìn)行的 , 對(duì)于 4位二進(jìn)制數(shù)是按逢 2二進(jìn)位;而 BCD碼是逢 10進(jìn)位 , 兩者存在進(jìn)位差 。 解: MOV A, 95H ; 95的 BCD碼數(shù)送 A中 ADD A, 59H DA A ;對(duì)相加結(jié)果進(jìn)行十進(jìn)制調(diào)整 MOV 30H, A ; A中的和存入 30H MOV A, 00H ; A清零 ADDC A, 00H ;加進(jìn)位 DA A ; BCD碼調(diào)整 MOV 31H, A ;存進(jìn)位 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 邏輯運(yùn)算及移位類指令 邏輯運(yùn)算的特點(diǎn)是按位進(jìn)行 。 方法是將要屏蔽的位和 “ 0”相與 , 要保留的位同 “ 1”相與 。 解:這種操作不能簡(jiǎn)單地用 MOV指令實(shí)現(xiàn) , 而可以借助與 、 或邏輯運(yùn)算 。 若要進(jìn)行求補(bǔ)操作 , 可按 “ 求反加 1”來(lái)進(jìn)行 。 ( 2) RR A; A的內(nèi)容右移一位 , 結(jié)果 ( A) =04H RR A ; A的內(nèi)容右移一位 , 結(jié)果 ( A) =02H RR A ; A的內(nèi)容右移一位 , 結(jié)果 ( A) =01H 即右移一位 , 相當(dāng)于原數(shù)除 2( 原數(shù)為偶數(shù)時(shí) ) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 無(wú)條件轉(zhuǎn)移指令 80C51系列單片機(jī)有 4條無(wú)條件轉(zhuǎn)移指令 , 提供了不同的轉(zhuǎn)移范圍和方式 , 可使程序無(wú)條件地轉(zhuǎn)到指令所提供的地址上去 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) a1 0a9a80 0 0 0 1 a7a6a5a4a3a2a1a0絕對(duì)轉(zhuǎn)移指令的執(zhí)行分為兩步: 第一步 , 取指令 。轉(zhuǎn)移可以向前也可以向后。 1234H: AJMP 0781 H 解:在指令執(zhí)行前 , ( PC) =1234H;取出該指令后 , ( PC) 十 2形成 PC當(dāng)前值 , 它等于 1236H,指令執(zhí)行過(guò)程就是用指令給出的 11位地址11110000001B替換 PC當(dāng)前值的低 11位 。 指令的執(zhí)行分兩步完成: 第一步 , 取指令 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 4 變址尋址轉(zhuǎn)移指令 JMP A+DPTR 指令采用的是變址尋址方式 , 功能是把累加器 A中的 8位無(wú)符號(hào)數(shù)與基址寄存器 DPTR中的 16位地址相加 ,所得的和作為目的地址送入 PC。 該指令又稱散轉(zhuǎn)指令 、 間接轉(zhuǎn)移指令 。 條件轉(zhuǎn)移指令的共同特點(diǎn)是以下兩點(diǎn) 。 JNZ指令的操作正好與之相反 。 在使用 CJNE指令時(shí)應(yīng)注意以下幾點(diǎn): ( 1) 比較條件轉(zhuǎn)移指令都是三字節(jié)指令 , 此 PC當(dāng)前值= PC +3 ( PC是該指令所在地址 ) , 轉(zhuǎn)移的目的地址應(yīng)是 PC加 3以后再加偏移量 rel。 若進(jìn)行兩個(gè)有符號(hào)數(shù)大小的比較 , 則應(yīng)依據(jù)符號(hào)位和 CY位進(jìn)行判別比較 。 設(shè)和不大于 255。 該指令功能是:先將 PC加 3, 指向下條指令地址 ( 即斷點(diǎn)地址 ) ,然后將斷點(diǎn)地址壓入堆棧 , 再把指令中的 16位子程序入口地址裝入 PC。 使程序轉(zhuǎn)移到對(duì)應(yīng)的子程序入口處 。 其功能也是從堆棧中自動(dòng)取出斷點(diǎn)地址送入程序計(jì)數(shù)器 PC, 使程序返回到主程序斷點(diǎn)處繼續(xù)往下執(zhí)行 。 位地址在指令中都用 bit表示 , bit有四種表示形式 。 兩個(gè)可尋址位之間沒(méi)有直接的傳送指令 , 若要完成這種傳送 , 需要通過(guò) CY來(lái)進(jìn)行 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 設(shè) E, B, D都代表位地址 , 試編寫(xiě)程序完成 E、 B內(nèi)容的異或操作 , 并將結(jié)果存入 D中 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) C J NE 指令兩操作數(shù)相等 JC 或 J NC 指令Cy = 0NYNY分支 1 分支 2 分支 3 圖 CJNE和 JC(或 JNC)形成三個(gè)分支 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 A和 30H單元內(nèi)容的大小 , 若 A=( 30H) ,轉(zhuǎn)向 LOOP1, 若 A( 30H) , 則轉(zhuǎn)向 LOOP2, 若 A( 30H) , 則轉(zhuǎn)向 LOOP3。 然后再用 CJNE指令和 JC( JNC) 指令形成三個(gè)分支 。 如: 2 匯編結(jié)束偽指令 END 格式: [標(biāo)號(hào): ] END [表達(dá)式 ] 功能:結(jié)束匯編 。 6 賦值偽指令 EQU( 或= ) 格式:符號(hào) EQU 表達(dá)式 或 符號(hào)名=表達(dá)式 功能:將表達(dá)式的值定義為一個(gè)指定的符號(hào)名 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 匯編語(yǔ)言程序設(shè)計(jì)舉例 用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì)的過(guò)程與用高級(jí)語(yǔ)言進(jìn)行程序設(shè)計(jì)很相似。在程序設(shè)計(jì)過(guò)程中 , 應(yīng)在完成規(guī)定功能的前提下 ,使程序占用空間小 , 執(zhí)行時(shí)間短 。 ( 3) 根據(jù)流程圖編寫(xiě)程序 。 但是 , 結(jié)構(gòu)化程序的基本結(jié)構(gòu)只有三種:順序結(jié)構(gòu) 、 分支結(jié)構(gòu) 、 循環(huán)結(jié)構(gòu) 。 解: ORG 1000H START: MOV A, 20H ;取數(shù) , ( A) ← ( 20H) ANL A, 0F0H ;屏蔽低 4位 SWAP A ;高低 4位互換 MOV B, 10H ; ( B) ← 10H MUL AB ; BCD數(shù)的高 4位乘以 10 MOV B, A ;寄過(guò)暫存 B MOV A, 20H ;取數(shù) ANL A, 0FH ;屏蔽高 4位 ADD A, B ;得到結(jié)果 END 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 分支程序設(shè)計(jì) 分支程序就是條件分支程序,即根據(jù)不同的條件,執(zhí)行不同的程序段。 ( 2) 循環(huán)體 。 解: ORG 1000H MAIN: MOV DPTR, 2021H MOV R7, 20 MOV R5, 00H LOOP: MOVX A, DPTR CLR C SUBB A, R5 JC NEXT MOVX A, OPTR MOV R5, A INC DPTR NEXT: DJNZ R7, LOOP MOV 30H, R5 END 例 。 過(guò)程類似水中氣泡上浮 ,故稱冒泡法 。 編程中選用 R7做比較次數(shù)計(jì)數(shù)器 , 初始值為 09H, 位地址 00H作為冒泡過(guò)程中是否有數(shù)據(jù)互換的標(biāo)志位 , 若 ( 00H) = 0, 表明無(wú)互換發(fā)生 , 已排序完畢 。 解:軟件延時(shí)程序一般都是由 DJNZ Rn , rel指令構(gòu)成 。在編程時(shí)可以很方便地通過(guò) DB偽指令把表格的內(nèi)容存入ROM。 源程序如下: SQR: MOV DPTR, TAB MOV A, 20H MOVC A, A+DPTR MOV 21H, A RET TAB: DB 0, 1, 4, 9, 16 DB 25, 36, 49, 64, 81 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 子程序 在一個(gè)程序中 , 往往有許多地方需要執(zhí)行同樣的一種操作 , 但又不能用循環(huán)程序來(lái)實(shí)現(xiàn) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 80C51單片機(jī)指令系統(tǒng)提供了兩條子程序調(diào)用指令A(yù)CALL addr11和 LCALL addr16。 執(zhí)行 RET指令時(shí)單片機(jī)將原來(lái)存在堆棧中的斷點(diǎn)送回 PC, 保證了子程序返回主程序中調(diào)用的地方繼續(xù)執(zhí)行 。 當(dāng)用堆棧保護(hù)現(xiàn)場(chǎng)時(shí) , 還應(yīng)注意恢復(fù)現(xiàn)場(chǎng)的順序不能搞錯(cuò) , 否則不能正確地恢復(fù)主程序的現(xiàn)場(chǎng) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 例 用程序?qū)崿F(xiàn) 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) ORG 1000H MOV A, 30H ;取第一個(gè)操作數(shù) ACALL SQR ;第一次調(diào)用 MOV R1, A ;暫存于 R1 MOV A, 31H ;取第二個(gè)操作數(shù) ACALL SQR ;再次調(diào)用 ADD A, R1 ;完成 MOV 32H, A SJMP $ ;暫停 SQR: INC A ;查表位置調(diào)整 MOVC A, A+PC ;查平方表 RET TAB: DB 0, 1, 4, 9, 16 DB 25, 36, 49, 64, 81 END 2 返回指令 返回指令也有兩條: RET RETI RET指令被稱為子程序返回指令 , 放在子程序的末尾 。 第 4章 80C51的指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì) 本章小結(jié) 主要講述了 80C51指令的尋址方式以及各指令的格式 、 功能和使用方法等 。 介紹了偽指令和匯編語(yǔ)言程序的基本結(jié)構(gòu):順序結(jié)構(gòu) 、 分支結(jié)構(gòu) 、 循環(huán)結(jié)構(gòu)和子程
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1