《單片機(jī)技術(shù)與應(yīng)用》單片機(jī)指令系統(tǒng)(4)(考點(diǎn)練)-講義_第1頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》單片機(jī)指令系統(tǒng)(4)(考點(diǎn)練)-講義_第2頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》單片機(jī)指令系統(tǒng)(4)(考點(diǎn)練)-講義_第3頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》單片機(jī)指令系統(tǒng)(4)(考點(diǎn)練)-講義_第4頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》單片機(jī)指令系統(tǒng)(4)(考點(diǎn)練)-講義_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《單片機(jī)技術(shù)與應(yīng)用》單片機(jī)指令系統(tǒng)-講義一、堆棧的概念堆棧是一種數(shù)據(jù)結(jié)構(gòu),它按照后進(jìn)先出(LastInFirstOut,LIFO)的原則進(jìn)行數(shù)據(jù)的存儲(chǔ)和檢索。堆棧在單片機(jī)中通常用于暫存數(shù)據(jù)、中斷現(xiàn)場(chǎng)保護(hù)、函數(shù)調(diào)用等。二、堆棧指令PUSH的功能PUSH指令用于將一個(gè)字節(jié)的數(shù)據(jù)推入堆棧頂部。執(zhí)行PUSH指令時(shí),先將SP(堆棧指針)加1,然后將數(shù)據(jù)存儲(chǔ)在SP指向的內(nèi)存單元。例:PUSHBX執(zhí)行過(guò)程為:SP=SP-1,[SP]=BH;SP=SP-1,[SP]=BL,如圖所示若初始SP=1000H,則執(zhí)行后SP=OFFEH注意:①堆棧以字為單位操作PUSHBL錯(cuò)PUSH[DI]對(duì)②CS不能跟POPPUSHCS對(duì)POPCS錯(cuò)在匯編程序中,通??梢酝ㄟ^(guò)PUSH指令將指定寄存器內(nèi)容放入堆棧中保護(hù),也可以通過(guò)POP指令將堆棧中的內(nèi)容裝入寄存器,而對(duì)于代碼段寄存器CS,用戶程序只有PUSHCS操作,如寫出POPCS,編譯程序會(huì)報(bào)錯(cuò)。這是因?yàn)殡S意變更CS寄存器內(nèi)容,會(huì)造成程序跑亂,很可能造成系統(tǒng)癱瘓。③沒(méi)有立即尋址PUSH1234H錯(cuò)④存放數(shù)據(jù)的原則:先進(jìn)后出,后進(jìn)先出三、PUSH指令的格式尋址方式:直接尋址指令格式:PUSH操作數(shù)四、PUSH指令的操作過(guò)程將SP指針加1,指向堆棧的下一個(gè)空閑單元。將操作數(shù)(如累加器A、寄存器Rn等)的值存儲(chǔ)到SP指向的內(nèi)存單元。更新SP指針,使其指向新的堆棧頂部。五、注意事項(xiàng)堆棧空間有限,使用PUSH指令時(shí)要注意堆棧溢出。在使用PUSH指令前,需要確保堆棧指針SP已正確初始化。PUSH指令通常與POP指令配合使用,以實(shí)現(xiàn)數(shù)據(jù)的保護(hù)和恢復(fù)。六、示例以下是一個(gè)PUSH指令的示例:PUSHA該指令的功能是將累加器A的值推入堆棧。執(zhí)行過(guò)程如下:將SP指針加1。將累加器A的值存儲(chǔ)到SP指向的內(nèi)存單元。更新SP指針,使其指向新的堆棧頂部。(單項(xiàng)選擇題)下列關(guān)于單片機(jī)中PUSH指令的說(shuō)法,錯(cuò)誤的是?()A.PUSH指令用于將數(shù)據(jù)推入堆棧頂部B.執(zhí)行PUSH指令時(shí),先減少SP(堆棧指針)C.PUSH指令通常用于保護(hù)現(xiàn)場(chǎng)和暫存數(shù)據(jù)D.PUSH指令與POP指令配合使用可以實(shí)現(xiàn)數(shù)據(jù)的保護(hù)和恢復(fù)【答案】B【解析】執(zhí)行PUSH指令時(shí),是先將SP(堆棧指針)加1,而不是減少?!疽c(diǎn)】考查PUSH指令的基本操作。(單項(xiàng)選擇題)在單片機(jī)中,下列哪個(gè)寄存器不會(huì)被PUSH指令直接操作?()A.累加器AB.堆棧指針SPC.寄存器R0D.程序計(jì)數(shù)器PC【答案】D【解析】PUSH指令通常用于操作累加器A、寄存器Rn等,但不會(huì)直接操作程序計(jì)數(shù)器PC。【要點(diǎn)】考查PUSH指令的操作對(duì)象。(單項(xiàng)選擇題)以下關(guān)于堆棧的說(shuō)法,正確的是?()A.堆棧是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)B.堆棧的插入和刪除操作都在棧頂進(jìn)行C.堆棧的刪除操作在棧底進(jìn)行D.堆棧的插入操作可以在棧中的任意位置進(jìn)行【答案】B【解析】堆棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),插入和刪除操作都在棧頂進(jìn)行?!疽c(diǎn)】考查堆棧的基本概念。(判斷題)執(zhí)行PUSH指令后,堆棧指針SP的值會(huì)減少。()【答案】×【解析】執(zhí)行PUSH指令后,堆棧指針SP的值會(huì)增加?!疽c(diǎn)】考查PUSH指令對(duì)堆棧指針的影響。(判斷題)在使用PUSH指令時(shí),不需要考慮堆??臻g的大小。()【答案】×【解析】在使用PUSH指令時(shí),需要考慮堆??臻g的大小,以防止堆棧溢出?!疽c(diǎn)】考查PUSH指令使用時(shí)的注意事項(xiàng)。(填空題)執(zhí)行PUSH指令時(shí),首先將______加1,然后將數(shù)據(jù)存儲(chǔ)到______指向的內(nèi)存單元?!敬鸢浮縎P(堆棧指針)SP【解析】執(zhí)行PUSH指令時(shí),先將SP(堆棧指針)加1,然后將數(shù)據(jù)存儲(chǔ)到SP指向的內(nèi)存單元?!疽c(diǎn)】考查PUSH指令的操作過(guò)程。(填空題)在單片機(jī)中,PUSH指令通常與______指令配合使用,以實(shí)現(xiàn)數(shù)據(jù)的保護(hù)和恢復(fù)?!敬鸢浮縋OP【解析】PUSH指令與POP指令配合使用可以實(shí)現(xiàn)數(shù)據(jù)的保護(hù)和恢復(fù)。【要點(diǎn)】考查PUSH指令的配套使用。XCH(Exchange)指令概念:XCH指令是一種數(shù)據(jù)交換指令,用于將源操作數(shù)與累加器A中的數(shù)據(jù)相互交換。該指令可以用于寄存器與累加器A之間的數(shù)據(jù)交換,也可以用于寄存器與內(nèi)部RAM單元之間的數(shù)據(jù)交換。格式:XCHA,src其中,src表示源操作數(shù),可以是寄存器R0-R7或內(nèi)部RAM單元。功能:將累加器A中的數(shù)據(jù)與源操作數(shù)src中的數(shù)據(jù)相互交換。示例:XCHA,R0;將累加器A中的數(shù)據(jù)與寄存器R0中的數(shù)據(jù)交換注意事項(xiàng):XCH指令執(zhí)行后,累加器A中的數(shù)據(jù)將被替換為源操作數(shù)src中的數(shù)據(jù),同時(shí)源操作數(shù)src中的數(shù)據(jù)變?yōu)樵瓉?lái)的累加器A中的數(shù)據(jù)。XCH指令不影響程序狀態(tài)字(PSW)中的任何標(biāo)志位。XCHD(ExchangeData)指令概念:XCHD指令是一種數(shù)據(jù)交換指令,用于將累加器A中的低4位(即A.3~A.0)與內(nèi)部RAM單元的低4位相互交換。格式:XCHDA,@Ri其中,Ri表示寄存器R0或R1。功能:將累加器A中的低4位與內(nèi)部RAM單元的低4位相互交換,高4位保持不變。示例:XCHDA,@R0;將累加器A中的低4位與內(nèi)部RAM單元@R0的低4位交換注意事項(xiàng):XCHD指令僅對(duì)累加器A的低4位和內(nèi)部RAM單元的低4位進(jìn)行交換,高4位不參與交換。XCHD指令不影響程序狀態(tài)字(PSW)中的任何標(biāo)志位。SWAP(Swap)指令概念:SWAP指令是一種數(shù)據(jù)交換指令,用于將累加器A中的高4位和低4位相互交換。格式:SWAPA功能:將累加器A中的高4位和低4位相互交換。示例:SWAPA;將累加器A中的高4位和低4位交換注意事項(xiàng):SWAP指令僅對(duì)累加器A中的數(shù)據(jù)進(jìn)行操作,不涉及其他寄存器或內(nèi)部RAM單元。SWAP指令不影響程序狀態(tài)字(PSW)中的任何標(biāo)志位。(單項(xiàng)選擇題)在8051單片機(jī)中,下列關(guān)于XCH指令的描述,錯(cuò)誤的是?()A.XCH指令可以用于寄存器與累加器A之間的數(shù)據(jù)交換B.XCH指令執(zhí)行后,累加器A中的數(shù)據(jù)將被替換為源操作數(shù)中的數(shù)據(jù)C.XCH指令會(huì)影響程序狀態(tài)字(PSW)中的標(biāo)志位D.XCH指令可以用于寄存器與內(nèi)部RAM單元之間的數(shù)據(jù)交換【答案】C【解析】XCH指令執(zhí)行后,不會(huì)影響程序狀態(tài)字(PSW)中的任何標(biāo)志位?!疽c(diǎn)】考查XCH指令的功能及對(duì)PSW的影響。(單項(xiàng)選擇題)以下關(guān)于XCHD指令的說(shuō)法,正確的是?()A.XCHD指令用于將累加器A中的數(shù)據(jù)與內(nèi)部RAM單元的數(shù)據(jù)交換B.XCHD指令僅交換累加器A的低4位和內(nèi)部RAM單元的低4位C.XCHD指令會(huì)改變累加器A的高4位D.XCHD指令可以用于寄存器與累加器A之間的數(shù)據(jù)交換【答案】B【解析】XCHD指令僅交換累加器A的低4位和內(nèi)部RAM單元的低4位,高4位保持不變。【要點(diǎn)】考查XCHD指令的功能及操作范圍。(單項(xiàng)選擇題)關(guān)于SWAP指令,以下說(shuō)法正確的是?()A.SWAP指令用于交換累加器A與內(nèi)部RAM單元的數(shù)據(jù)B.SWAP指令會(huì)改變累加器A中的數(shù)據(jù)C.SWAP指令僅交換累加器A的高4位和低4位D.SWAP指令會(huì)影響程序狀態(tài)字(PSW)中的標(biāo)志位【答案】C【解析】SWAP指令用于交換累加器A中的高4位和低4位,不會(huì)影響PSW中的標(biāo)志位?!疽c(diǎn)】考查SWAP指令的功能及對(duì)PSW的影響。(判斷題)XCH指令可以用于寄存器與外部RAM單元之間的數(shù)據(jù)交換。()【答案】×【解析】XCH指令只能用于寄存器與累加器A之間或寄存器與內(nèi)部RAM單元之間的數(shù)據(jù)交換?!疽c(diǎn)】考查XCH指令的操作范圍。(判斷題)執(zhí)行XCHD指令后,累加器A的高4位會(huì)發(fā)生變化。()【答案】×【解析】XCHD指令僅交換累加器A的低4位和內(nèi)部RAM單元的低4位,高4位保持不變。【要點(diǎn)】考查XCHD指令對(duì)累加器A的影響。(填空題)在8051單片機(jī)中,指令________用于將累加器A中的高4位和低4位相互交換?!敬鸢浮縎WAPA【解析】SWAPA指令用于交換累加器A中的高4位和低4位?!疽c(diǎn)】考查SWAP指令的格式。(填空題)若要將累加器A中的數(shù)據(jù)與寄存器R1中的數(shù)據(jù)相互交換,應(yīng)使用指令________。【答案】XCHA,R1【解析】XCHA,R1指令用于將累加器A中的數(shù)據(jù)與寄存器R1中的數(shù)據(jù)相互交換?!疽c(diǎn)】考查XCH指令的格式及功能。一、ADD(加法指令)概念:ADD指令用于將源操作數(shù)與累加器A中的內(nèi)容相加,并將結(jié)果存儲(chǔ)在累加器A中。格式:ADDA,src其中,src代表源操作數(shù),可以是寄存器、直接地址或寄存器間接地址。操作數(shù)范圍:8位無(wú)符號(hào)數(shù)(00H-FFH)。例累加器A的內(nèi)容為043H,R1的內(nèi)容為10H,地址10H的內(nèi)容為20H。功能:將源操作數(shù)與累加器A中的內(nèi)容相加。將相加結(jié)果存儲(chǔ)在累加器A中。根據(jù)相加結(jié)果設(shè)置標(biāo)志位:CY(進(jìn)位標(biāo)志)、AC(輔助進(jìn)位標(biāo)志)、Z(零標(biāo)志)和P(奇偶標(biāo)志)。標(biāo)志位影響:CY:當(dāng)相加結(jié)果超過(guò)8位時(shí),CY置1,否則置0。AC:當(dāng)相加結(jié)果的低4位超過(guò)4位時(shí),AC置1,否則置0。Z:當(dāng)相加結(jié)果為0時(shí),Z置1,否則置0。P:根據(jù)相加結(jié)果的奇偶性設(shè)置。二、ADDC(帶進(jìn)位加法指令)概念:ADDC指令用于將源操作數(shù)、累加器A中的內(nèi)容和進(jìn)位標(biāo)志CY相加,并將結(jié)果存儲(chǔ)在累加器A中。格式:ADDCA,src其中,src代表源操作數(shù),可以是寄存器、直接地址或寄存器間接地址。操作數(shù)范圍:8位無(wú)符號(hào)數(shù)(00H-FFH)。例累加器A的內(nèi)容為0C3H,R0的內(nèi)容為0AAH,R1的內(nèi)容為10H,10H的內(nèi)容為0AAH,(CY)=1;功能:將源操作數(shù)、累加器A中的內(nèi)容和進(jìn)位標(biāo)志CY相加。將相加結(jié)果存儲(chǔ)在累加器A中。根據(jù)相加結(jié)果設(shè)置標(biāo)志位:CY、AC、Z和P。標(biāo)志位影響:CY、AC、Z和P的設(shè)置與ADD指令相同。三、SUBB(帶借位減法指令)概念:SUBB指令用于將源操作數(shù)、累加器A中的內(nèi)容和借位標(biāo)志CY的補(bǔ)碼相減,并將結(jié)果存儲(chǔ)在累加器A中。格式:SUBBA,src其中,src代表源操作數(shù),可以是寄存器、直接地址或寄存器間接地址。操作數(shù)范圍:8位無(wú)符號(hào)數(shù)(00H-FFH)。例累加器A的內(nèi)容為0C9H,R2的內(nèi)容54H,R1=10H,10H=54H,(CY)=1;功能:將源操作數(shù)、累加器A中的內(nèi)容和借位標(biāo)志CY的補(bǔ)碼相減。將相減結(jié)果存儲(chǔ)在累加器A中。根據(jù)相減結(jié)果設(shè)置標(biāo)志位:CY、AC、Z和P。標(biāo)志位影響:CY:當(dāng)累加器A中的內(nèi)容小于源操作數(shù)和借位標(biāo)志CY的補(bǔ)碼時(shí),CY置1,否則置0。AC:當(dāng)累加器A中的低4位小于源操作數(shù)的低4位和借位標(biāo)志CY的補(bǔ)碼時(shí),AC置1,否則置0。Z:當(dāng)相減結(jié)果為0時(shí),Z置1,否則置0。P:根據(jù)相減結(jié)果的奇偶性設(shè)置。(單項(xiàng)選擇題)下列關(guān)于ADD指令的說(shuō)法,錯(cuò)誤的是?()A.ADD指令用于將兩個(gè)操作數(shù)相加B.ADD指令的結(jié)果存儲(chǔ)在累加器A中C.ADD指令執(zhí)行后會(huì)影響CY、AC、Z和P標(biāo)志位D.ADD指令不能處理帶進(jìn)位的加法運(yùn)算【答案】D【解析】ADD指令可以處理不帶進(jìn)位的加法運(yùn)算,而ADDC指令用于處理帶進(jìn)位的加法運(yùn)算?!疽c(diǎn)】考查ADD指令的功能及特點(diǎn)。(單項(xiàng)選擇題)下列關(guān)于ADDC指令的說(shuō)法,正確的是?()A.ADDC指令執(zhí)行時(shí)不考慮進(jìn)位標(biāo)志CYB.ADDC指令的結(jié)果存儲(chǔ)在源操作數(shù)中C.ADDC指令用于將源操作數(shù)、累加器A和進(jìn)位標(biāo)志CY相加D.ADDC指令執(zhí)行后不會(huì)影響CY標(biāo)志位【答案】C【解析】ADDC指令用于將源操作數(shù)、累加器A和進(jìn)位標(biāo)志CY相加,結(jié)果存儲(chǔ)在累加器A中,并會(huì)影響CY標(biāo)志位?!疽c(diǎn)】考查ADDC指令的功能及操作。(單項(xiàng)選擇題)下列關(guān)于SUBB指令的說(shuō)法,錯(cuò)誤的是?()A.SUBB指令用于將源操作數(shù)、累加器A和借位標(biāo)志CY的補(bǔ)碼相減B.SUBB指令執(zhí)行后會(huì)影響CY標(biāo)志位C.SUBB指令的結(jié)果存儲(chǔ)在源操作數(shù)中D.SUBB指令執(zhí)行后會(huì)影響Z標(biāo)志位【答案】C【解析】SUBB指令的結(jié)果存儲(chǔ)在累加器A中,而不是源操作數(shù)中?!疽c(diǎn)】考查SUBB指令的功能及操作。(判斷題)ADD指令執(zhí)行后,若累加器A中的值為FFH,源操作數(shù)為01H,則進(jìn)位標(biāo)志CY一定為1。()【答案】√【解析】累加器A中的值為FFH,加上源操作數(shù)01H,結(jié)果為100H,超過(guò)8位,因此進(jìn)位標(biāo)志CY為1。【要點(diǎn)】考查ADD指令執(zhí)行后進(jìn)位標(biāo)志CY的設(shè)置。(判斷題)執(zhí)行ADDC指令時(shí),若累加器A中的值為80H,源操作數(shù)為80H,進(jìn)位標(biāo)志CY為1,則執(zhí)行后累加器A中的值為101H。()【答案】×【解析】執(zhí)行ADDC指令時(shí),累加器A中的值為80H,源操作數(shù)為80H,進(jìn)位標(biāo)志CY為1,相加結(jié)果為101H,但累加器A只能存儲(chǔ)8位,因此結(jié)果為01H,進(jìn)位標(biāo)志CY為1。【要點(diǎn)】考查ADDC指令執(zhí)行后的結(jié)果及進(jìn)位標(biāo)志CY的設(shè)置。(填空題)執(zhí)行ADD

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論