微機(jī)系統(tǒng)原理與接口技術(shù)第三章習(xí)題解答_第1頁(yè)
微機(jī)系統(tǒng)原理與接口技術(shù)第三章習(xí)題解答_第2頁(yè)
微機(jī)系統(tǒng)原理與接口技術(shù)第三章習(xí)題解答_第3頁(yè)
微機(jī)系統(tǒng)原理與接口技術(shù)第三章習(xí)題解答_第4頁(yè)
微機(jī)系統(tǒng)原理與接口技術(shù)第三章習(xí)題解答_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、“微機(jī)系統(tǒng)原理與接口技術(shù)”第三章習(xí)題解答1 下列各條指令是否有錯(cuò)?如果有,請(qǐng)指出錯(cuò)誤之處并改正。(1) MOVDS,1000H(2) MOV100,23H(3) ADDAX,BXBP6(4) PUSHDL(5) INAX,3FH(6) OUT3FFH,AL(7) LESSS,SI(8) POPAX(9) IMUL4CH(10) SHLBX,5(11) INT300(12) XCHGDX,0FFFH答:(1)錯(cuò)誤。不允許直接向段寄存器送立即數(shù),可改為:MOVAX,1000HMOVDS,AX(2)錯(cuò)誤。該指令在語(yǔ)法上是對(duì)的,即可以把一個(gè)立即數(shù)送入一個(gè)存儲(chǔ)單元;但是如果考慮實(shí)際編譯,則第一操作數(shù)前應(yīng)

2、加上BYTE PTR或WORD PTR說(shuō)明,否則匯編程序會(huì)因不能確定操作數(shù)長(zhǎng)度而指示出錯(cuò)??筛臑椋篗OVBYTE PTR 100,23H(3)錯(cuò)誤。不能同時(shí)使用兩個(gè)基址寄存器BX、BP進(jìn)行間接尋址,可改為:ADDAX,BXDI6(4)錯(cuò)誤。堆棧操作應(yīng)以字為單位進(jìn)行,而DL是一個(gè)字節(jié)。可改為:PUSHDX(5)錯(cuò)誤。在輸入/輸出指令中,8位端口地址應(yīng)直接寫在操作數(shù)處??筛臑椋篒NAX,3FH(6)錯(cuò)誤。端口地址3FFH已超出8位二進(jìn)制表示范圍,16位端口地址應(yīng)用DX??筛臑椋篗OVDX,3FFHOUTDX,AL(7)錯(cuò)誤。LES指令的目操作數(shù)應(yīng)該是通用寄存器,不能是段寄存器??筛臑椋篖ESAX,

3、SI(8)錯(cuò)誤。AX不能用于間接尋址,間接尋址只能用BX、BP、SI、DI四個(gè)寄存器之一??筛臑椋篜OPBX(9)錯(cuò)誤。立即數(shù)不能做乘法指令的操作數(shù),可改為:MOVBL,4CHIMULBL(10)錯(cuò)誤。當(dāng)邏輯移位的次數(shù)大于1時(shí),應(yīng)該用CL指示次數(shù)??筛臑椋篗OVCL,5SHLBX,CL(11)錯(cuò)誤。操作數(shù)300 > 255,已超出有效的中斷類型碼范圍。(12)錯(cuò)誤。XCHG指令不允許立即數(shù)做它的操作數(shù)??筛臑椋篗OVCX,0FFFHXCHGDX,CX2 請(qǐng)指出以下各指令的源、目的操作數(shù)所使用的尋址方式。(1) MOVSI,2100H(2) SBBDISPBX,7(3) ANDDI,AX(

4、4) ORAX,609EH(5) MOVBXDI30H,CX(6) PUSHES:BP(7) CALLDIDISP(8) JNZShort_ label答:(1)源操作數(shù):立即數(shù)尋址;目的操作數(shù):寄存器尋址(2)源操作數(shù):立即數(shù)尋址;目的操作數(shù):(帶位移量的)基址尋址(3)源操作數(shù):寄存器尋址;目的操作數(shù):變址尋址(4)源操作數(shù):直接尋址; 目的操作數(shù):寄存器尋址(5)源操作數(shù):寄存器尋址;目的操作數(shù):(帶位移量的)基址變址尋址(6)源操作數(shù):帶段超越的基址尋址;目的操作數(shù):隱含尋址(7)只有一個(gè)操作數(shù),為(帶位移量的)變址尋址(8)只有一個(gè)操作數(shù),為相對(duì)尋址3 在已學(xué)的指令中,可實(shí)現(xiàn)累加器清

5、0的單條指令有哪些?比較它們的功能。答:共有以下四種方法:(1) MOV AX,0;僅將累加器清0,不會(huì)影響任何標(biāo)志位(2) SUB AX,AX;累加器清0的同時(shí)影響所有狀態(tài)標(biāo)志,具體地有:;ZF、PF置1,CF、AF、SF、OF均清0(3) AND AX,0;將累加器清0,ZF、PF置1,CF、OF 、SF清0(4) XOR AX,AX;將累加器清0,ZF、PF置1,CF、OF 、SF清04 若要判斷某帶符號(hào)數(shù)的正、負(fù)而不影響其原值,可使用哪些方法?答:設(shè)帶符號(hào)數(shù)為oprd,判斷方法可有如下幾種:(1) 執(zhí)行指令 ADD oprd,0 之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù)。(

6、2) 執(zhí)行指令 SUB oprd,0 之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù)。(3) 執(zhí)行指令 CMP oprd,0 之后,可直接判斷SF:SF =0,oprd為正數(shù),否則為負(fù);或者再接著執(zhí)行指令 JGE NOMINUS(即同時(shí)判斷SF、OF),若程序轉(zhuǎn)移至NOMINUS處,則oprd為正數(shù),否則為負(fù);同理,亦可在在執(zhí)行完CMP oprd,0 之后再接著執(zhí)行指令 JL NOMINUS,若程序轉(zhuǎn)移至NOMINUS處,則oprd為負(fù)數(shù),否則為正。(4) 執(zhí)行指令 CMP oprd,80H(或8000H)之后,判斷CF:CF =1,oprd為正數(shù),否則為負(fù)。(5) 執(zhí)行指令 AND o

7、prd,oprd(或全“1”)之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù)。(6) 執(zhí)行指令 TEST oprd,oprd(或全“1”)之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù)。(7) 執(zhí)行指令 TEST oprd,80H(或8000H)之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù);或判斷ZF:ZF =1,oprd為正數(shù),否則為負(fù)。(8) 執(zhí)行指令 OR oprd,oprd(或全“0”)之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù)。(9) 執(zhí)行指令 XOR oprd,0 之后,判斷SF:SF =0,oprd為正數(shù),否則為負(fù)。5 已知DS=2000H,有關(guān)的內(nèi)

8、存單元值為:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符號(hào)COUNT的偏移地址為1200H。執(zhí)行下列指令后,寄存器AX、BX、SI的值分別是多少?MOVBX,OFFSET COUNTMOVSI,BXMOVAX,COUNTSIBX答:執(zhí)行結(jié)果為BX=1200H,SI=1000H,AX=3040H。6 設(shè)標(biāo)志寄存器值原為0401H,AX=3272H,BX=42A2H。執(zhí)行指令SBB

9、AL,BH之后,AX和標(biāo)志寄存器的值分別是多少?答:由標(biāo)志寄存器的原值0401H可知,CF的原值為1,故指令執(zhí)行之后AX=322FH,標(biāo)志寄存器的值為0410H,即AF變?yōu)?,CF變?yōu)?,其余不變。7 設(shè)若標(biāo)志寄存器原值為0A11H,SP=0060H,AL=4。下列幾條指令執(zhí)行后,標(biāo)志寄存器、AX、SP的值分別是多少?PUSHFLAHFXCHGAH,ALPUSHAX SAHFPOPF答:指令執(zhí)行后標(biāo)志寄存器的值為0411H,AX=0411H ,SP=005EH。8 設(shè)若內(nèi)存單元DATA在數(shù)據(jù)段中偏移量為24C0H處,24C0H24C3H單元中依次存放著55H、66H、77H、88H。下列幾條指

10、令執(zhí)行后,寄存器AX、BX、CL、SI、DS的值分別是多少?MOVAX,DATALEASI,DATAMOVCL,SILDSBX,DATA答:執(zhí)行結(jié)果為AX=6655H,BX=6655H,CL=55H,SI=24C0H,DS=8877H。9 若AX=26D3H,CX=7908H,CF=1,執(zhí)行下列指令后,寄存器AX、CX的值分別是多少?CF=?OF=?SALCH,1RCRAX,CLROLAL,1答:執(zhí)行結(jié)果為AX=0A64CH,CX=0F208H,CF=OF=0。10 已知IP=1000H,CF=0,則執(zhí)行指令JNC Short label后,下列各數(shù)中哪一個(gè)是可能的IP值?(A)0FFFFH(

11、B)0FFEH(C)10FEH(D)1100H答:(B)簡(jiǎn)析:條件轉(zhuǎn)移指令執(zhí)行前IP=1000H,執(zhí)行JNC指令后IP=1002H;又因CF=0,所以應(yīng)跳轉(zhuǎn)至目標(biāo)地址處,該處對(duì)應(yīng)的新IP值=1002H相對(duì)位移量。由于條件轉(zhuǎn)移指令的跳轉(zhuǎn)范圍在距本條指令128+127個(gè)字節(jié)內(nèi),即新IP值可能的取值范圍為0F82H1081H,因此只有答案B符合條件。11 設(shè)DS=4500H,AX=0508H,BX=4000H,SI=0320H。當(dāng)8086CPU在最小組態(tài)下執(zhí)行指令MOV BXSI0100H,AX 時(shí),各控制信號(hào)M/、DT/、在有效期間的狀態(tài)分別是什么?數(shù)據(jù)總線和地址總線上的數(shù)分別是多少?答:各控制信

12、號(hào)M/、DT/、在有效期間的電平分別是:高、高、高、低。數(shù)據(jù)總線上的數(shù)是0508H,地址總線上的地址是49420H。12 已知有某字串BUF1的首址為0000H,BUF2的首址為0010H,數(shù)據(jù)段與附加段重合。欲從BUF1處開(kāi)始將10個(gè)字?jǐn)?shù)據(jù)順序傳送至BUF2處,試在下面程序段的空白處填上適當(dāng)?shù)闹噶罨虿僮鲾?shù)以實(shí)現(xiàn)上述功能。LEASI,BUF1ADDSI, 18 LEADI,BUF2ADDDI,18 STDMOVCX, 10 REPMOVSW13 附加段中有某字符串首址為BLOCK,長(zhǎng)17個(gè)字節(jié)。欲查找其中第一次出現(xiàn)字符“e”的位置,并將該位置所在的偏移量入棧保護(hù)。試在下面程序段的空白處填上適當(dāng)

13、的指令或操作數(shù)以實(shí)現(xiàn)上述功能。MOVDI, OFFSET BLOCK MOVAL, e MOVCX,17 CLDREPNESCASBJNEOTHERDECDIPUSHDI OTHER:(略)14 已知附加段中有一塊長(zhǎng)50個(gè)字的數(shù)據(jù)區(qū),首址為DEST。欲編程將它們?nèi)砍跏蓟癁?FFFFH值,試在下面程序段的空白處填上適當(dāng)?shù)闹噶罨虿僮鲾?shù),以實(shí)現(xiàn)上述功能。LEADI,DESTMOVCX, 100 CLDMOVAL,0FFHREP STOSB 15 已知有程序段如下:MOVAL,35HMOVDL,ALANDDL,0FHANDAL,0F0HMOVCL,4SHRAL,CLMOVBL,10MULBLADDA

14、L,DL執(zhí)行之后,AL等于多少?該程序段完成了什么功能?答:程序段執(zhí)行后AL=23H。該程序段實(shí)現(xiàn)了將AL中的1個(gè)組合BCD碼轉(zhuǎn)換為十六進(jìn)制數(shù)并存回AL中的功能。16 以HEX為首址的字節(jié)單元處存放著一串ASCII字符:“0123456789ABCDEF”,并有程序段如下:MOVBX,OFFSET HEXLEADI,HCODINCDISTDMOVAL,5CHMOVAH,ALANDAL,0FHXLATHEXSTOSBMOVAL,AHMOVCL,4SHRAL,CLXLATHEXSTOSB上述程序段執(zhí)行后,字節(jié)單元HCOD及其相鄰單元HCOD1的內(nèi)容是多少?該程序段的功能是什么?答:程序段執(zhí)行后,H

15、COD單元的內(nèi)容是5,HCOD+1單元的內(nèi)容是C。該程序段將AL中存放的1字節(jié)十六進(jìn)制數(shù)轉(zhuǎn)換為2個(gè)對(duì)應(yīng)的ASCII字符存放在HCOD及其相鄰單元HCOD1中。17 有程序段如下:MOVAL,DB1MOVAH,0MOVDL,10L1:DIVDLMOVBL,AHMOVBH,0PUSHBXMOVAH,0CMPAL,0JNZL1若內(nèi)存單元DB1的值為7BH,則程序?qū)⒁来蜗蚨褩喝肽男?shù)據(jù)?該程序段實(shí)現(xiàn)了什么功能?答:先后存入堆棧中的字?jǐn)?shù)據(jù)依次是3、2、1。該程序段實(shí)現(xiàn)了將一個(gè)字節(jié)的無(wú)符號(hào)十六進(jìn)制數(shù)DB1轉(zhuǎn)換為非組合BCD碼存入堆棧的功能,堆棧中最先壓入的是十進(jìn)制數(shù)的個(gè)位(每個(gè)十進(jìn)制位在堆棧中占1個(gè)字單

16、元)。18 下面的程序執(zhí)行后,DX、AX的值分別是多少?;以X為首址的字單元中的數(shù)據(jù)依次為1234H、5678H;以Y為首址的字單元中的數(shù)據(jù)依次為8765H、4321HLEASI,XLEADI,YMOVDX,SI2MOVAX,XADDAX,XADCDX,SI2CMPDX,DI2JLL2CMPAX,YJLL1JMPEXITL1:MOVAX,1JMPEXITL2:MOVAX,2EXIT:答:執(zhí)行結(jié)果為AX=2,DX=0ACF0H。19 已知組合BCD碼的存放情況如圖所示,按要求編寫計(jì)算程序:94H DATA116H26H89H30H DATA255H04H74H RES(1) 從DATA1單元開(kāi)始

17、,將8個(gè)組合BCD碼累加起來(lái),其和(超過(guò)1字節(jié))存入以RES為首址的單元中(低位在前)。答:一種可能的程序段實(shí)現(xiàn)如下:;8個(gè)組合BCD碼累加LEA SI,DATA1;SI指向DATA1處CLD;清DF,地址自動(dòng)增量LODSB;AL中裝入第一個(gè)BCD碼,并修改SIMOVCX,7;共加7次MOVAH,0;AH用作高位,記錄低位字節(jié)的進(jìn)位AGAIN:ADDAL,SI;多個(gè)數(shù)累加,位權(quán)相同,不能用ADCDAA;組合碼十進(jìn)制調(diào)整ADCAH,0;DAA不影響AH,只影響標(biāo)志位INCSI;修改指針LOOPAGAINMOVRES,AX;將AX的全部16位送至字單元(2) 將它們看作2個(gè)分別以DATA1、DAT

18、A2為首址的8位十進(jìn)制數(shù)(低位在前),求此兩數(shù)之差并存入以RES為首址的單元中。答:一種可能的程序段實(shí)現(xiàn)如下:;2個(gè)8位十進(jìn)數(shù)(4字節(jié)組合BCD碼)相減LEASI,DATA2;SI指向被減數(shù)最低位LEABX,DATA1;BX指向減數(shù)最低位LEADI,RES;DI指向結(jié)果單元最低位CLD;清DF,地址自動(dòng)增量MOVCX,4;共減4次CLC;清CF,使首次執(zhí)行SBB時(shí)結(jié)果正確NEXT:LODSB;向AL裝入被減數(shù),并修改SISBBAL,BX;帶借位相減DAS;組合碼的十進(jìn)制調(diào)整,影響標(biāo)志位STOSB;存放結(jié)果,并修改DIINCBX;修改BXLOOPNEXT20 有一個(gè)64位二進(jìn)制數(shù),由高位字到低位字分別存放在DX、CX、BX、AX四個(gè)16位數(shù)據(jù)寄存器中。將該數(shù)視為無(wú)符號(hào)數(shù),編程把它左移1位;再當(dāng)作帶符號(hào)數(shù),編程把它右移2位。答:(1)一種可能的無(wú)符號(hào)數(shù)左移的程序段實(shí)現(xiàn)如下: SALAX,1RCLBX,1RCLCX,1RCLDX,1簡(jiǎn)析:64位數(shù)的整體左移應(yīng)從最低位字開(kāi)始,借助CF把每次向左移出的D15位移入高位字的D0位。在SAL/SHL、ROL、RCL幾條左移指令中,只有RCL能夠把CF移入D0位,故應(yīng)選用該循環(huán)移位指令。注意,若第一次左移AX時(shí)也使用RCL,

溫馨提示

  • 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)論