《匯編語(yǔ)言程序設(shè)計(jì)》練習(xí)題二_第1頁(yè)
《匯編語(yǔ)言程序設(shè)計(jì)》練習(xí)題二_第2頁(yè)
《匯編語(yǔ)言程序設(shè)計(jì)》練習(xí)題二_第3頁(yè)
《匯編語(yǔ)言程序設(shè)計(jì)》練習(xí)題二_第4頁(yè)
《匯編語(yǔ)言程序設(shè)計(jì)》練習(xí)題二_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《匯編語(yǔ)言程序設(shè)計(jì)》練習(xí)題二一、簡(jiǎn)答題(40分)1、如果在一個(gè)程序開(kāi)始執(zhí)行以前(CS)=0A7F0H(如十六進(jìn)制數(shù)的最高位為字母,則應(yīng)在其前加一個(gè)0),(IP)=2B40H,試問(wèn)該程序的第一個(gè)字的物理地址是多少?答:該程序的第一個(gè)字的物理地址是0AAA40H。2、有兩個(gè)16位字1EE5H和2A3CH分別存放在8086微機(jī)的存儲(chǔ)器的000B0H和000B3H單元中,請(qǐng)用圖表示出它們?cè)诖鎯?chǔ)器里的存放情況。答:OOOBOOOQBlOC)Om2000B3000B43、現(xiàn)有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,試說(shuō)明下列各條指令執(zhí)行完后AX寄存器的內(nèi)容。(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[1200H](4)MOVAX,[BX](5)MOVAX,1100[BX](6)MOVAX,[BX][SI](7)MOVAX,1100[BX][SI](1)1200H(2)0100H(3)4C2AH(4)3412H(5)4C2AH(6)7856H(7)65B7H4、對(duì)于下面的數(shù)據(jù)定義,各條MOV指令單獨(dú)執(zhí)行后,有關(guān)寄存器的內(nèi)容是什么?FLDBDB?DW20DUP(?)DB'ABCD'(1)MOVAX,TYPEFLDB(2)MOVAX,TYPETABLEA(3)MOVCX,LENGTHTABLEA(4)MOVDX,SIZETABLEA(5)MOVCX,LENGTHTABLEB答:(AX)= 1(AX)= 2(CX)= 20(DX)= 40(CX)= 15、宏指令BIN_SUB完成多個(gè)字節(jié)數(shù)據(jù)連減的功能:RESULT(A-B-C-D-L)要相減的字節(jié)數(shù)據(jù)順序存放在首地址為OPERAND的數(shù)據(jù)區(qū)中,減數(shù)的個(gè)數(shù)存放在COUNT單元中,最后結(jié)果存入RESULT單元。請(qǐng)編寫(xiě)此宏指令。BIN_SUBMACROOPERAND,COUNT,RESULTLOCALNEXTLEABX,OPERANDMOVCX,COUNTDECCXMOVAL,[BX]NEXT:INCBXSUBAL,[BX]LOOPNEXTMOVRESULT,ALENDM6、在實(shí)模式下,段地址和偏移地址為3017:000A的存儲(chǔ)單元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢?答:3017:000A的存儲(chǔ)單元的物理地址是3017AH,3015:002A的存儲(chǔ)單元的物理地址是3017AH,3010:007A的存儲(chǔ)單元的物理地址是3017AH。7、在實(shí)模式下,存儲(chǔ)器中每一段最多可有10000H個(gè)字節(jié)。如果用調(diào)試程序Debug的r命令在終端上顯示出當(dāng)前各寄存器的內(nèi)容如下,請(qǐng)畫(huà)出此時(shí)存儲(chǔ)器分段的示意圖,以及條件標(biāo)志OF、SF、ZF、CF的值。C>debug-rAX=0000BX=0000CX=0079DX=0000SP=FFEEBP=0000SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FFIP=0100NVUPDIPLNZNAPONC條件標(biāo)志OF、SF、ZF、CF的值依次分別為0、0、0、0。1QE4OHldF40H2QE4OH20F40H2IFOOH3IFOOHJlFFOH4IFFOH8、試根據(jù)以下要求寫(xiě)出相應(yīng)的匯編語(yǔ)言指令。(1)把BX寄存器和DX寄存器的內(nèi)容相加,結(jié)果存入DX寄存器中。(2)用寄存器BX和SI的基址變址尋址方式把存儲(chǔ)器中的一個(gè)字節(jié)與AL寄存器的內(nèi)容相加,并把結(jié)果送到AL寄存器中。(3)用寄存器BX和位移量0B2H的寄存器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)字和(CX)相加,并把結(jié)果送回存儲(chǔ)器中。(4)用位移量為0524H的直接尋址方式把存儲(chǔ)器中的一個(gè)字與數(shù)2A59H相加,并把結(jié)果送回該存儲(chǔ)單元中。(5)把數(shù)0B5H與(AL)相加,并把結(jié)果送回AL中。答:ADDDX,BXADDAL,[BX][SI]ADD[BX+0B2H],CXADD[0524H],2A59HADDAL,0B5H9、假設(shè)VAR為字變量,LAB為標(biāo)號(hào),試指出下列指令的錯(cuò)誤之處:(1)SUBAL,VAR(2)MOV[BX],[SI](3)MOVAX,[SI][DI](4)MOVCS,AX(5)JMPNEARLAB(6)POPDH答:源操作數(shù)和目的操作數(shù)類(lèi)型不匹配。源操作數(shù)和目的操作數(shù)同為存儲(chǔ)器尋址方式。(3)SI、DI同為變址寄存器。(4)目的操作數(shù)不能是代碼段段寄存器CSo缺少PTR堆棧的存取必須以字為單位。10、宏指令STORE定義如下:STOREMACROX,NMOVX+I,II=I+1IFI-NSTOREX,NENDIFENDM試展開(kāi)下列調(diào)用:I=0STORETAB,7答:1MOVTAB,01MOVTAB+1,11MOVTAB+2,21MOVTAB+3,31MOVTAB+4,41MOVTAB+5,51MOVTAB+6,6二、寫(xiě)程序段題(20分)1、把AX中存放的16位二進(jìn)制數(shù)K看作是8個(gè)二進(jìn)制的"四分之一字節(jié)"。試編寫(xiě)一程序片段,要求數(shù)一下值為3(即11B)的四分之一字節(jié)數(shù),并將該數(shù)在終端上顯示出來(lái)。答:MOVCX,8MOVDL,0NEXT3:RORAX,1JNCNEXT1RORAX,1JNCNEXT2INCDLNEXT2:LOOPNEXT3ADDDL,30HMOVAH,2INT21HMOVAH,4CHINT21HNEXT1:RORAX,1JMPNEXT22.設(shè)有10個(gè)學(xué)生的成績(jī)分別是76,69,64,90,73,88,99,63,100和80分。試編制一個(gè)子程序統(tǒng)計(jì)60?69分,0?79分,80?89分,90?99分和100分的人數(shù)并分別存放到S6,S7,S8,S9和S10單元中。答:dsegsegmentnumdw76,69,84,90,73,88,99,63,100,80ndw10s6dw0s7dw0s8dw0s9dw0s10dw0dsegendscodesegmentmainprocfarassumecs:code,ds:dsegstart:pushdssubax,axpushaxmovax,dsegmovds,axcallsub1retmainendpsub1procnearushaxpushbxpushcxpushsimovsi,0movcx,nnext:movax,num[si]movbx,10divblmovbl,alcbwsubbx,6salbx,1incs6[bx]addsi,2loopnextpopsipopcxpopbxpopaxretsub1endpcodeendsendstart3.不用串操作指令,把字符串StringI的內(nèi)容傳送到字符串String2,字符長(zhǎng)度為count。movcx,countleasi,string1leadi,string2again:moval,[si]mov[di],alincsiincdiloopagain4.設(shè)有10個(gè)學(xué)生的成績(jī)分別是76,69,64,90,73,88,99,63,100和80分。試編制一個(gè)子程序統(tǒng)計(jì)60?69分,70?79分,80?89分,90?99分和100分的人數(shù)并分別存放到S6,S7,S8,S9和S10單元中。答:dsegsegmentnumdw76,69,84,90,73,88,99,63,100,80ndw10dw0dw0dw0dw0s10dw0dsegendscodesegmentmainprocfarassumecs:code,ds:dsegstart:pushdssubax,axpushaxmovax,dsegmovds,axcallsub1retmainendpsub1procnearpushaxpushbxpushcxpushsimovsi,0movcx,nnext:movax,num[si]movbx,10divblmovbl,alcbwsubbx,6salbx,1incs6[bx]addsi,2loopnextpopsipopcxpopbxpopaxretsub1endpcodeendsendstart三、讀程序題(20分)1、分析下面的程序,畫(huà)出堆棧最滿(mǎn)時(shí)各單元的地址及內(nèi)容。;********************************************************;s_segsegmentat1000h;definestacksegmentdw200dup(?)toslabelwords_segend;********************************************************;c_segsegment;definecodesegmentassumecs:c_seg,ss:s_segmovax,s_segmovss,axmovsp,offsettos;pushdsmovax,0pushaxpusht_addrpushaxpushfPopfpopaxpopt_addrretc_segends;endofcodesegment;*************************************************endc_seg;endofassembly答:IcarcIl潴

ioo?:θissiooa:oisA1000;018Ciooa:oisE1000:01902、試分析下面的程序段完成什么功能?MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL答:把(DX)(AX)中的雙字左移四位(乘以16)。3.分析下面的程序,畫(huà)出堆棧最滿(mǎn)時(shí)各單元的地址及內(nèi)容。;********************************************************;s_segsegmentat1000h;definestacksegmentdw200dup(?)toslabelwords_segend;********************************************************;c_segsegment;definecodesegmentassumecs:c_seg,ss:s_segmovax,s_segmovss,axmovsp,offsettos;pushdsmovax,0pushax...pusht_addrpushaxpushf...Popfpopaxpopt_addrretc_segends;endofcodesegment;*************************************************;endc_seg;endofassembly答:lθθ?:θise

lθθ?:θissiooa:oisAlθθ?:θiseicmciIgEiooa:oi9o4.試分析下面的程序段完成什么功能?MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL答:把(DX)(AX)中的雙字左移四位(乘以16)。四、寫(xiě)完整程序題(20分)一.在首地址為T(mén)ABLE的數(shù)組中按遞增次序存放著100H個(gè)16位補(bǔ)碼數(shù),試編寫(xiě)一個(gè)程序把出現(xiàn)次數(shù)最多的數(shù)及其出現(xiàn)次數(shù)分別存放于AX和CX中。tabledw100hdup(?)mdatadw?;存放出現(xiàn)次數(shù)最多的數(shù)countdw0;存放出現(xiàn)次數(shù)movbx,100hmovdi,0;di為數(shù)組TABLE的指針next:movdx,0movsi,0movax,table[di]movcx,100hcomp:cmptable[si],axjneaddrincdxaddr:addsi,2loopcompcmpdx,countjlechangmovcount,dxmovmdata,axchang:adddi,2decbxjnznextmovcx,countmovax,mdata二.試編寫(xiě)一程

溫馨提示

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