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

正文內(nèi)容

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

2025-09-17 23:03 本頁面


【正文】 是以 DPTR作為間址寄存器 , 其功能是將 DPTR所指定的外部 RAM單元與累加器 A之間傳送數(shù)據(jù) 。 后兩條指令是以 R0或 R1作為間址寄存器 , 其功能是將 R0或R1所指定的外部 RAM單元與累加器 A之間傳送數(shù)據(jù) 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 例 試編程 , 將片外 RAM的 2021H單元內(nèi)容送入片外 RAM的 0200H單元中 。 解:片外 RAM與片外 RAM之間不能直接傳送 , 需通過累加器 A, 另外 , 當(dāng)片外 RAM地址值大于 FFH時(shí) ,需用 DPTR作間址寄存器 。 編程如下: MOV DPTR, 2021H ;源地址送 DPTR MOVX A, @DPTR ;外部 RAM中取數(shù)送 A MOV DPTR, 0200H ;目的地址送 DPTR MOVX @DPTR, A ; A中內(nèi)容送外部 RAM 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 程序存儲器向累加器 A傳送數(shù)據(jù)指令 MOVC A, @A+DPTR ; ( A) ← (( A) +( DPTR)) MOVC A, @A+PC; ( A) ← (( A) +( PC)) 功能是從程序存儲器中讀取源操作數(shù)送入累加器 A中 ,源操作數(shù)均為變址尋址方式 。 適合于查閱在 ROM中建立的數(shù)據(jù)表格 , 故稱做查表指令 。 雖然這兩條指令的功能完全相同 , 但在具體使用中卻有一點(diǎn)差異 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 前一條指令是采用 DPTR作為基址寄存器 。 在使用前 , 表格首地址送入 DPTR, 實(shí)現(xiàn)在整個(gè) 64KB ROM空間向累加器A的數(shù)據(jù)傳送 。 即數(shù)據(jù)表格可以存放在 64KB程序存儲器的任意位置 , 稱為遠(yuǎn)程查表指令 。 后一條指令是以 PC作為基址寄存器 。 在程序中 , 執(zhí)行該查表指令時(shí) PC值是確定的 , 為下一條指令的地址 , 而不是表格首地址 。 在使用該查表指令之前 , 必須用一條加法指令進(jìn)行地址調(diào)整 , 地址調(diào)整只能通過對累加器 A的內(nèi)容進(jìn)行調(diào)整 , 使得 A+PC和所讀 ROM單元地址保持一致 。 累加器 A中的內(nèi)容為 8位無符號數(shù) , 該查表指令只能查找指令所在地址以后 256 B范圍內(nèi)的數(shù)據(jù) , 稱之為近程查表指令 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 數(shù)據(jù)交換指令 數(shù)據(jù)交換指令可完成累加器和內(nèi)部 RAM單元之間的字節(jié)或半字節(jié)交換 。 1 整字節(jié)交換指令 XCH A, Rn ; ( A) ←→ ( Rn) XCH A, direct ; ( A) ←→ ( direct) XCH A, @Ri ; ( A) ←→ (( Ri)) 2 半字節(jié)交換指令 XCHD A, @Ri ; ( A) 3~0←→ (( Ri)) 3~0 3 累加器高低半字節(jié)交換指令 SWAP A ; ( A) 7~4←→ ( A) 3~0 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 例 試編程 , 將外部 RAM1000H單元中的數(shù)據(jù)與內(nèi)部 RAM 6AH單元中的數(shù)據(jù)相互交換 。 解:數(shù)據(jù)交換指令只能完成累加器 A和內(nèi)部 RAM單元之間的數(shù)據(jù)交換 , 要完成外部 RAM與內(nèi)部RAM之間的數(shù)據(jù)交換 , 需先把外部 RAM中的數(shù)據(jù)取到 A中 , 交換后再送回到外部 RAM中 。編程如下: MOV DPTR, 1000H ;外部 RAM地址送 DPTR MOVX A, @DPTR ;從外部 RAM中取數(shù)送 A XCH A, 6AH; A與 6AH地址中的內(nèi)容進(jìn)行交換 MOV @DP39。IR, A ;交換結(jié)果送外部 RAM 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 堆找操作指令 堆棧操作指令可以實(shí)現(xiàn)對數(shù)據(jù)或斷點(diǎn)地址的保護(hù) 。 PUSH direct;( SP) ← ( SP) +1,( SP) ←( direct) POP direct;( direct) ← ( SP),( SP) ←( SP) 1 進(jìn)棧指令功能是先將棧指針 SP的內(nèi)容加 1, 使它指向棧頂空單元 , 然后將直接地址 direct單元的內(nèi)容送入棧頂空單元 。 出棧指令功能是將 SP所指的單元的內(nèi)容送入直接地址所指出的單元 , 然后將棧指針 SP的內(nèi)容減 1, 使之指向新的棧頂單元 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 算術(shù)運(yùn)算類指令 80C51系列單片機(jī)的算術(shù)運(yùn)算類指令共有 24條 , 可以完成加 、 減 、 乘 、 除等各種操作 , 全部指令都是 8位數(shù)運(yùn)算指令 。 如果需要做 16位數(shù)的運(yùn)算需編寫相應(yīng)的程序來實(shí)現(xiàn) 。 算術(shù)運(yùn)算類指令大多數(shù)要影響到程序狀態(tài)字寄存器PSW中的溢出標(biāo)志 OV、 進(jìn)位 ( 借位 ) 標(biāo)志 CY、輔助進(jìn)位標(biāo)志 AC和奇偶標(biāo)志位 P。 利用進(jìn)位 ( 借位 ) 標(biāo)志 CY, 可進(jìn)行多字節(jié)無符號整數(shù)的加 、 減運(yùn)算 , 利用溢出標(biāo)志可對帶符號數(shù)進(jìn)行補(bǔ)碼運(yùn)算 ,輔助進(jìn)位標(biāo)志則用于 BCD碼運(yùn)算的調(diào)整 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(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中 。 源操作數(shù)的尋址方式分別為立即尋址 、 直接尋址 、 寄存器尋址和寄存器間接尋址 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 運(yùn)算結(jié)果對程序狀態(tài)字 PSW中的 CY、 AC、 OV和 P的影響情況如下: 進(jìn)位標(biāo)志 CY:在加法運(yùn)算中 , 如果 D7位向上有進(jìn)位 , 則 CY= 1;否則 , CY=0。 半進(jìn)位標(biāo)志 AC:在加法運(yùn)算中 , 如果 D3位向上有進(jìn)位 , 則 AC= 1;否則 , AC= 0。 溢出標(biāo)志 OV:在加法運(yùn)算中 , 如果 D D6位只有一個(gè)向上有進(jìn)位時(shí) , OV= 1;如果 D D6位同時(shí)有進(jìn)位或同時(shí)無進(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)與匯編語言程序設(shè)計(jì) 例 A =94H,( 30H) =8DH,執(zhí)行指令 ADD A,30H,操作如下: 10010100 + 10001101 1 00100001 結(jié)果( A) =21H,( CY) =1,( AC) =1,( OV)=1,( P) =0 參加運(yùn)算的兩個(gè)數(shù),可以是無符號數(shù)( 0~255),也可以是有符號數(shù)( 128~+ 127)。用戶可以根據(jù)標(biāo)志位 CY或 OV來確定運(yùn)算結(jié)果或判斷結(jié)果是否正確。無符號數(shù)用 CY位表示進(jìn)位、溢出(不考慮 ov位),有符號數(shù)用 OV位表示溢出(不考慮 CY位)。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(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中 。源操作數(shù)的尋址方式分別為立即尋址 、 直接尋址 、寄存器尋址和寄存器間接尋址 。 運(yùn)算結(jié)果對 PSW標(biāo)志位的影響與 ADD指令相同 。 例 設(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)算 。 因低位字節(jié)相加時(shí)可能產(chǎn)生進(jìn)位 , 而在進(jìn)行高位字節(jié)相加時(shí) , 要考慮低位字節(jié)向高位字節(jié)的進(jìn)位 , 因此 ,必須使用帶進(jìn)位的加法指令 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 例 設(shè)有兩個(gè)無符號 16位二進(jìn)制數(shù) , 分別存放在30H、 31H單元和 40H、 41H單元中 ( 低 8位先存 ) ,寫出兩個(gè) 16位數(shù)的加法程序 , 將和存入 50H、 51H單元 。 ( 設(shè)和不超過 16位 ) 。 解:由于不存在 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)與匯編語言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 帶借位減法指令 SUBB A, data SUBB A, direct SUBB A, Rn SUBB A, @Ri 功能是將累加器 A中的數(shù)減去源操作數(shù)所指出的數(shù)和進(jìn)位位 CY,其結(jié)果存放在累加器 A中。減法運(yùn)算只有帶借位減法指令,而沒有不帶借位的減法指令。若要進(jìn)行不帶借位的減法運(yùn)算,應(yīng)該先用指令將 CY清零,然后再執(zhí)行 SUBB指令。 運(yùn)算結(jié)果對 PSW中各標(biāo)志位的影響情況如下: 借位標(biāo)志 CY:如果 D7位向上需借位 , 則 CY=l;否則 , CY=0。 半借位標(biāo)志 AC:如果 D3位向上需借位 , 則 AC= 1;否則 , AC= 0。 溢出標(biāo)志 OV:如果 D D6位只有一個(gè)向上有借位時(shí) , OV= 1;如果 D D6位同時(shí)有借位或同時(shí)無借位時(shí) , OV= 0。 奇偶標(biāo)志 P:當(dāng) A中 “ 1”的個(gè)數(shù)為奇數(shù)時(shí) , P= 1;為偶數(shù)時(shí) , P=0。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 加 1指令 INC A INC direct INC Rn INC DPTR 功能是將操作數(shù)所指定單元的內(nèi)容加 1。 本組指令除“ INC A”指令影響 P標(biāo)志外 , 其余指令均不影響PSW標(biāo)志 。 加 1指令常用來修改操作數(shù)的地址 , 以便于使用間接尋址方式 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 減 1指令 DEC A DEC direct DEC Rn 功能是將操作數(shù)所指定單元的內(nèi)容減 1。 除 “ DEC A”指令影響 P標(biāo)志外 , 其余指令均不影響 PSW標(biāo)志 。 乘除指令 1 乘法指令 MUL AB 功能是把累加器 A和寄存器 B中的兩個(gè) 8位無符號數(shù)相乘 , 所得 16位乘積的低 8位放在 A中 , 高 8位放在 B中 。 例 己知 ( A) =080H, ( B) = 32H, 執(zhí)行指令 MUL AB 結(jié)果 ( A) = 00H, ( B) = 19H, OV= 1,CY= 0, P= 0 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 2 除法指令 DIV AB 功能是將兩個(gè) 8位無符號數(shù)進(jìn)行除法運(yùn)算 , 其中被除數(shù)存放在累加器 A中 , 除數(shù)存放在寄存器 B中 。指令執(zhí)行后 , 商存于累加器 A中 , 余數(shù)存于寄存器 B中 。 例 已知 ( A) =87H, ( B) =0CH, 執(zhí)行指令 DIV AB 結(jié)果 ( A) = 0BH, ( B) = 03H, OV= 0, CY= 0,P=l 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 十進(jìn)制調(diào)整指令 DA A 功能是兩個(gè) BCD碼的加法結(jié)果進(jìn)行修正 。 該指令只影響進(jìn)位標(biāo)志 CY。 所謂 BCD碼就是采用 4位二進(jìn)制編碼表示的十進(jìn)制數(shù) 。 4位二進(jìn)制數(shù)共有 16個(gè)編碼 , BCD碼是取它前 10個(gè)的編碼 0000~ 1001來代表十進(jìn)制數(shù)的 0~9,這種編碼稱為 8421BCD碼 , 簡稱 BCD碼 。 一個(gè)字節(jié)可以存放 2位 BCD碼 ( 稱為壓縮的 BCD碼 ) 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計(jì) 如果兩個(gè) BCD碼數(shù)相加 , 結(jié)果也是 BCD碼 ,則該加法運(yùn)算稱為 B
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1