單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)課后習(xí)題答案第4章_第1頁(yè)
單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)課后習(xí)題答案第4章_第2頁(yè)
單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)課后習(xí)題答案第4章_第3頁(yè)
單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)課后習(xí)題答案第4章_第4頁(yè)
單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)課后習(xí)題答案第4章_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)課后習(xí)題答案第4章4-1分別指出下列指令中的源操作數(shù)和目的操作數(shù)的尋址方式源操作數(shù)尋址方式目的操作數(shù)尋址方式(1)MOVP1,20H直接尋址直接尋址(2)MOVA,#30H立即數(shù)尋址寄存器尋址(3)ADDA,@R1寄存器間接尋址寄存器尋址(4)ANLA,B寄存器尋址寄存器尋址(5)MOV33H,A寄存器尋址直接尋址(6)SETBC位尋址位尋址(7)CLRC位尋址位尋址4-2試述指令MOVA,R0和MOVA,@R0的區(qū)別兩條指令的目的操作數(shù)相同,兩條指令的區(qū)別在于源操作數(shù)來(lái)源不同:MOVA,R0指令的源操作數(shù)就是R0寄存器的內(nèi)容;而MOVA,@R0指令的源操作數(shù)是位于存儲(chǔ)器單元內(nèi),且存儲(chǔ)器單元的地址是R0寄存器的內(nèi)容。4-3試述指令MOVA,20H和MOVA,#20H的區(qū)別MOVA,20H源操作數(shù)是直接尋址,20H表示源操作數(shù)所在存儲(chǔ)器單元的地址。MOVA,#20H源操作數(shù)是立即數(shù)尋址,#20H是立即數(shù),也就是源操作數(shù)。4-4說(shuō)明一下指令中源操作數(shù)所在的存儲(chǔ)器類(lèi)型。(1)MOVA,#30H;立即數(shù)#30H,就是源操作數(shù),存在于指令中,所以位于程序存儲(chǔ)器。(2)MOVA,30H;30H是源操作數(shù)所在數(shù)據(jù)存儲(chǔ)單元的地址,所以源操作數(shù)位于數(shù)據(jù)存儲(chǔ)器。(3)MOVCA,@A+DPTR;源操作數(shù)是變址尋址,助記符MOVC表示源操作數(shù)位于程序存儲(chǔ)器。(4)MOVXA,@DPTR;源操作數(shù)是寄存器間接尋址,助記符MOVX表示源操作數(shù)位于外部數(shù)據(jù)存儲(chǔ)器。4-5判斷下列指令書(shū)寫(xiě)是否正確:(1)MOVA,B;?(2)MOVA,#3000H;?,因?yàn)锳是8位寄存器,而#3000H是16位數(shù)值,沒(méi)法全部存到A里(3)INC,#20H;?只能INCA/direct/Rn/@Ri/DPTR(4)MOV5,A;?,注意目的操作數(shù)是直接尋址方式,不是立即尋址(5)MOV30H,40H;?(6)MOVB,@DPTR;?,@DPTR尋址用于MOVX指令,不能用于MOV指R(7)CJNE30H,#80H,NEXT;?,CJNE指令格式只能是CJNEA/Rn/@Ri,#data,rel或CJNEA,direct,rel(8)POPA;?只能是直接尋址方式POPdirect,正確的是POPACC(9)PUSHACC;?(10)SJMP2000H;?rel的范圍是-128~127(用補(bǔ)碼表示其值)共256B范圍4-6設(shè)ACC=12H,B=64H,SP=60H,30H中存放的是78H,試分析下列程序執(zhí)行后,ACC、B、30H、SP中的內(nèi)容分別為多少,并畫(huà)出堆棧示意圖。程序:PUSHACCPUSHBPUSH30HPOPACCPOPBPOP30H62H62H61HSP61HSP60H12H60HSPSP62H78H62H64H61H64H61H12H60H12H60HSP62H62H62H64H61HSP61H61H12H60H12H60HSP60HACC=78H;B=64H;(30H)=12H;SP=60H4-7下面是一個(gè)壓縮BCD碼相加的程序,參考其設(shè)計(jì)1個(gè)2字節(jié)壓縮BCD碼加法程序。BCDAD:CLRCMOVA,30H;A中為加數(shù)ADDCA,40H;實(shí)現(xiàn)8位相加DAA;十進(jìn)制調(diào)整MOV30H,A;送回原處RET答:假設(shè)2字節(jié)壓縮BCD碼分別存儲(chǔ)在地址30H和40H開(kāi)始的存儲(chǔ)單元中,結(jié)果存到50H開(kāi)始的存儲(chǔ)單元中,其中高位地址存放高位數(shù)據(jù)(例BCD碼分別1001H,2002H,則(30H)=10H;(31H)=01H;(40H)=20H;(41H)=02H),BCDAD:MOVR0,#31HMOVR1,#41HMOVA,@R0;取第一(低)字節(jié)(BCD碼)ADDA,@R1;加第一(低)字節(jié)(BCD碼)DAAMOV51H,A;存第一字節(jié)和(BCD碼)DECR0;R0指向第二(高)字節(jié)BCD碼DECR1;R1指向第二(高)字節(jié)BCD碼MOVA,@R0;取第二(高)字節(jié)BCD碼ADDA,@R1;加第二(高)字節(jié)(BCD碼)DAAMOV50H,A;存第一字節(jié)和(BCD碼)RET4-8已知在33H-30H中放有一個(gè)32位二進(jìn)制數(shù)(設(shè)為原碼數(shù)),要求將其轉(zhuǎn)換為補(bǔ)碼送入原地址中,其中高位地址存放高位數(shù)據(jù)答:嚴(yán)格說(shuō)本題需要先判斷32位二進(jìn)制數(shù)是正數(shù)還是負(fù)數(shù),也就是判斷33H的D7位是否為1,若是1,表明此32位數(shù)是負(fù)數(shù),就進(jìn)行補(bǔ)碼運(yùn)算,若是正數(shù),就不需要求補(bǔ)碼運(yùn)算。SUBCPL:MOVA,33HJNCACC.7,SUBRETURNMOVA,30HCPLAADDA,#01H;這里不但加1,而且還要關(guān)心加1后數(shù)據(jù)是否有進(jìn)位,所以不能用INCAMOV30H,AMOVA,31HCPLAADDCA,#00H;這里加法的作用是將前數(shù)加1后的進(jìn)位加進(jìn)來(lái),所以不能用INCAMOV31H,AMOVA,32HCPLAADDCA,#00H;這里加法的作用是將前數(shù)加進(jìn)位后,若有進(jìn)位也加進(jìn)來(lái),所以不能用INCAMOV32H,AMOVA,33HCPLAADDCA,#00H;這里加法的作用是將前數(shù)加進(jìn)位后,若有進(jìn)位也加進(jìn)來(lái),所以不能用INCASETBACC.7;這里加法的作用MOV33H,ASUBRETURN:RETEND4-9執(zhí)行下面的指令MOVA,#34HMOVB,#40HMULAB執(zhí)行后,A寄存器中的數(shù)據(jù)是(00H),B寄存器中的數(shù)據(jù)是(0DH)4-10;XRLA,A;該指令有錯(cuò),編譯時(shí)會(huì)顯示錯(cuò)誤:INVALIDREGISTER,應(yīng)該修改為:XRLA,ACC;(或者改為XRLACC,A)INCAADDCA,#0A6HDAA上述指令執(zhí)行后,A的內(nèi)容是(07H),CY是(1)4-11假定30H單元開(kāi)始的4個(gè)字節(jié)存放的是1個(gè)32位無(wú)符號(hào)數(shù),40H單元開(kāi)始的4個(gè)字節(jié)存放的是另一個(gè)32位無(wú)符號(hào)數(shù),低位地址中存放低位數(shù)據(jù),使說(shuō)明下列程序段完成什么功能?請(qǐng)給每條指令后加上注釋。MOVR0,#33H;將立即數(shù)33存放到工作寄存器R0中MOVR1,#43H;將立即數(shù)43存放到工作寄存器R1中MOVR2,#04;將立即數(shù)43存放到工作寄存器R1中LOOPA:MOVA,@R0;將R0的內(nèi)容33H送ACJNEA,@R1,L1;比較33H和R1的內(nèi)容43H的大小,如果相等,就繼續(xù)向下執(zhí)行,如果不相等,且(33H)<(43H),CY=1,轉(zhuǎn)L1執(zhí)行DECR0;R0R0-1,指向下個(gè)存儲(chǔ)單元32H(31H,30H)DECR1;R1R1-1,指向下個(gè)存儲(chǔ)單元42H(41H,40H)DJNZR2,LOOPA;若R2-1=0,則向下執(zhí)行,若R2-1≠0,則執(zhí)行循環(huán)LOOPAEQUAL:SJMPL3;轉(zhuǎn)L3執(zhí)行L1:JNCL4;若CY=1,即(R0)<(R1),繼續(xù)執(zhí)行;若CY≠1,即(R0)>(R1),轉(zhuǎn)L4執(zhí)行SJMPL5;轉(zhuǎn)L5執(zhí)行…L3:……L4:……L5:……功能:比較兩個(gè)32位無(wú)符號(hào)數(shù)(30H開(kāi)始的4個(gè)字節(jié)單元和40H開(kāi)始的4個(gè)字節(jié)單元)的大小,并且根據(jù)比較結(jié)果(相等,大于,小于),分別執(zhí)行不同的操作。4-12指令DJNZR0,LOOPN的循環(huán)執(zhí)行條件是(D)(A)R0≠0且R0-1=0(B)R0≠0或CY=1(C)R0≠0或R0+1=0(D)R0≠0且R0-1≠0注:本題指令DJNZR0,LOOPN,在R0=0時(shí)也執(zhí)行循環(huán),因R0-1=255≠0。4-13已知一數(shù)據(jù)區(qū)中的數(shù)據(jù)為:(本題是微機(jī)原理的程序,對(duì)單片機(jī)錯(cuò)誤較多,取消,或者做如下改正)STR1DB0,1;改為:STR1:DB0,1;STR2DB'45';改為:STR2:DB'45';NUMBDB2DUP(0);改為:NUMB:DB‘2DUP(0)’;NUMWDB10H,-60H;改為:NUMW:DB10H,-60H請(qǐng)畫(huà)出該數(shù)據(jù)區(qū)中數(shù)據(jù)存儲(chǔ)的形式4-14根據(jù)下列程序段回答問(wèn)題(1)至(5),其中BUF1、BUF2均為字節(jié)存儲(chǔ)區(qū)首址。MOVR0,#BUF1MOVR1,#BUF2MOVR2,#16LOOPA:MOVA,@R0MOV@R1,AINCR0INCR1DJNZR2,LOOPA(1)該程序段完成了什么工作?(2)若將指令“MOVR2,#16”誤寫(xiě)成“MOVR2,#0”,循環(huán)體被執(zhí)行多少次?(3)若漏掉了指令“MOVR2,#16”,循環(huán)體執(zhí)行次數(shù)能確定嗎,為什么?(4)若漏掉了指令“INCR0”,程序運(yùn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論