東華大學(xué)微機(jī)系統(tǒng)及原理實(shí)驗(yàn)報(bào)告_第1頁
東華大學(xué)微機(jī)系統(tǒng)及原理實(shí)驗(yàn)報(bào)告_第2頁
東華大學(xué)微機(jī)系統(tǒng)及原理實(shí)驗(yàn)報(bào)告_第3頁
東華大學(xué)微機(jī)系統(tǒng)及原理實(shí)驗(yàn)報(bào)告_第4頁
東華大學(xué)微機(jī)系統(tǒng)及原理實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

總結(jié)資料總結(jié)資料微機(jī)系統(tǒng)及應(yīng)用實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一DEBUG的啟動(dòng)及其基本命令的使用實(shí)驗(yàn)內(nèi)容:6:設(shè)堆棧指針SP=2000H,AX=3000H,BX=5000H;請(qǐng)仿照例程的格式編—程序段將AX和BX的內(nèi)容進(jìn)行交換。請(qǐng)用堆棧作為兩寄存器交換內(nèi)容的中間存儲(chǔ)單元,用DEBUG調(diào)試程序進(jìn)行匯編與調(diào)試。寫出在DEBUG狀態(tài)下編寫、運(yùn)行步驟6所要求的程序過程(要求包含源程序)以及調(diào)試所中遇到的問題是如何解決的,并對(duì)調(diào)試過程中的問題進(jìn)行分析對(duì)執(zhí)行結(jié)果進(jìn)行分析。程序清單:STACKSEGMENTSTACKDB2003HDUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACKSTART:MOVAX,STACKMOVSS,AXMOVSP,2000HMOVAX,3000HMOVBX,5000HPUSHAXMOVAX,BXPOPBXMOVAH,4CHINT21HCODEENDSENDSTART運(yùn)行及調(diào)試:C:\nasm5.0>debug1.exe-gProgramtcrmin口tcsdnornally進(jìn)人調(diào)試后,運(yùn)行正常。進(jìn)行反匯編調(diào)試:0092:0090B8910BHOVnX.0B910092:00038ED0HOySS.flX0D920005BC0020HOVSPn20000092:0008B80030mOD92:000BBB0O5OHOyBX.5O0O0D92:000E50PUSHRX0D92:00OFHIM::】MOUMK.HX0092:00115BPOPBM0092:0012B44CHOyRH.4C0092:0014CD21INT21'

通過追蹤指令觀察SP、AX、BX變化-I購(gòu)-麗91麗-如的DS=0B31ES=9B810092:0008B89030—tCX-2026朋-汕師購(gòu)-麗91麗-如的DS=0B31ES=9B810092:0008B89030—tCX-2026朋-汕師SP-2R0ASS=0B91CS=0D92IP=O0O3Mnv購(gòu).noonnp-oafiflST-AOflfiDT-仙仙

NyUPElPLNZNRPONCflX=3O00BM=90O00D92:000BBB0050-tCX=2926DX=0O90SP=20O0(:S-MI)CPIP-HHHHMOVBX.5000BP=O060SI=0O9601=0000NUIJPFlIIH/Nn卩〔〕NCDS-RBH1FS-0R810D92:000E50ex-202bDX-0OyySP-20U0SS-0R91CS-AD92TP-OfiOFpushnxBP-UEJ00Sl-0Ua0D1-U0O0

憫IJPFTPIN?NAPONC可知對(duì)SP、AX、BX賦值正確。將可知對(duì)SP、AX、BX賦值正確。將AX人棧后-IfiX=3O00BX=5000DS-0BH1tS-0B810D92;0O0F8BC3CK=2026DN=00O0SP=1FFEBP=000OSI=0000DI=0000SS-UH91CS-aD92丄卩一如0NVUPtlPLNZNF1卩(JNUMHV盹,盹用顯示內(nèi)存單元內(nèi)容的命令D觀察堆棧段中SP為1FFF,2000的內(nèi)容-d0b93:lFF0OB93;1FFO0006606666300000-0F00%0D83959939[1FFF]=00,[2000]=30說明已經(jīng)AX=3000已經(jīng)放人到堆棧段中。0D92;000F8BC9-IMUVHH.BH0D92;000F8BC9-IMUVHH.BHfiX=5000BK=5000US-MB01LS-0U810D92;00115B-ICH=2026DK=0000SP=1FFESS-OByiCS-0D92IF-Utill

fiX=5000BK=5000US-MB01LS-0U810D92;00115B-ICH=2026DK=0000SP=1FFESS-OByiCS-0D92IF-Utill

POHUHBP=0000S>0000DI=0000

附UPLIPLNZNHPONCRX=5000BK=3000US-0BO1LS-0U810D92;0012Bi4CCH=2026DX=0000SP=2000SS-OB91CS-0Dy^1F-U012

MUVHII./jLBP=0000SI=0000DI=0000NVUPLIPLNZNHPONC結(jié)果可以看岀:AX=5000,BX=3000結(jié)果完成正確!實(shí)驗(yàn)二內(nèi)存操作數(shù)及尋址方法實(shí)驗(yàn)內(nèi)容:1、設(shè)堆棧指針SP=2000H,AX=3000H,BX=5000H;請(qǐng)編一程序段將AX和BX的內(nèi)容進(jìn)行交換。請(qǐng)用堆棧作為兩寄存器交換內(nèi)容的中間存儲(chǔ)單元,用字處理程序編輯程序,用masm.exe和link.exe對(duì)源程序進(jìn)行匯編程和連接,用DEBUG調(diào)試程序。2、用masm和link對(duì)以下程序進(jìn)行匯編和連接,調(diào)試程序在DEBUG調(diào)試程序狀態(tài)下進(jìn)行。用單步執(zhí)行的方法,分析每條指令源地址的形成過程,當(dāng)數(shù)據(jù)傳送完畢時(shí),AX中的內(nèi)容是什么。程序清單如下:DATASEGMENTORG0300HADB12H,23H,34H,45H,56H,67H,78H,89H,9AHDATAENDSPROGNAMSEGMENTASSUMECS:PROGNAM,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,BXMOVAX,0300HMOVAX,[0300H]MOVAX,[BX]MOVSI,2MOVAX,0001[BX]MOVAX,[BX][SI]MOVAX,0001[BX][SI]MOVAH,4CHINT21HPROGNAMENDSENDSTART對(duì)源程序文件匯編,生成目標(biāo)文件

C:\masn50>masm2.asmMicrosoft(R)MacroAssemblerVersion5.00Copyright(C)MicrosoftCorp1981-1985,1987.fillrightsreserved.Objectfilenane[2OBJ]:Sourcelisting[NHL丄ST]:Cross-reference[NUL.CR「]:50318+Rytsssymhole陽mfrAA0EarningErrors0Severetrrors將目標(biāo)文件LINK后,生成可執(zhí)行文件如下:C:\masm5.0>link2.objHicrosoft(R)OverlayLinkerVersion3.60Copyright(C)MicrosoftCorp1983-1987Al1rightsrpsprupdRunFile[2.EXE]:ListFile[NUIMfiPl:Libraries[.LIB]:LINK:warningLi021:nostacksegment進(jìn)人debug調(diào)試C:\masmb.y>dcbug.cxc222222222222ccccccccccccuBBBRBBBBBBBB-C:\masmb.y>dcbug.cxc222222222222ccccccccccccuBBBRBBBBBBBB-^3*57ADFD8916D8ED88BC3朋伽陽D860638B678B47618B60呂閔盹1BUCCD21HOVNOVMOVMfiVMOVNOVMOVMOVNOVMUVMfiVINTA?,0B91DS,AMmxRX,0300AH,0300fiXJBX]ST,0002AX.tBX-01]AHJBH-SI]HXJBX-Sl-WUPHAC21單步追蹤執(zhí)行:t=0bc2:0000HK=0U91UX=Oa0UUK=032L曲=00汕卯=汕如跖=如觀SL=U0O0L)丄DS=0B81ES=0B81SS=0B91CS=0BC2IP=0O03NVUPElPLNZNflPONC?BC2:0y?38bD8MUVUS.nXAX=0B91,為數(shù)據(jù)段的首地址。-IflM=0B91BX=0000CK=032EDX=0000SP=0000BP=0000ST=0000DI=0000DS=0B91ES=0B81SS=0B91CS=0BC2IP=0OO5NVUPElPLNZNOPONCOBC2:O0058BC91RX.BMAX不變,將數(shù)據(jù)段的首地址送至DS。執(zhí)行MOVAX,BX

Ft品-闕2匕dx-^oosp-^uuBP-yyyosi-a^oui-aayuDS=yB91tS=yB810BC2:0007B80003SS=yB91CS=0BC2丄卩二牝歸

MUVHX;y3U0NVUPtlPLNZNMPUNCAX同BX,清零。執(zhí)行MOVAX,0300H購(gòu)-陽朋醐-如的DS=0B91ES=0B810BC2:0O0AB80003cx-03?r曲-加師sp-nfiORnp-oflfiflst-加血Ft品-闕2匕dx-^oosp-^uuBP-yyyosi-a^oui-aayuDS=yB91tS=yB810BC2:0007B80003SS=yB91CS=0BC2丄卩二牝歸

MUVHX;y3U0NVUPtlPLNZNMPUNCAX同BX,清零。執(zhí)行MOVAX,0300H購(gòu)-陽朋醐-如的DS=0B91ES=0B810BC2:0O0AB80003cx-03?r曲-加師sp-nfiORnp-oflfiflst-加血dt-hboaSS=0B91CS=0BC2IP=O0OflNVUPElPLHZNRPONCMUV11乩陽汕AX=0300執(zhí)行MOVAX,[0300H]HX-B300BX-00OHj)S=0B91ES=0B810BC2;0OBD8B07閉-咼卄l】X-朋刖胖-如WBP-UHWHSI-13HWUI)I-小冊(cè)I代-汕汨CS-015C21P-0(]ODNVUPLIFL脫NAP(JMMOV伸.[呻]CS;0000-6009AX=0300可知MOVAX,0300H與MOVAX,[0300H]得到同樣結(jié)果帥-眥曲開-濾眥US-0L91LS-汕辺0BC2;B00FBEB206-IIX-吧2LDK-O0UO畀弋眥0SS-0byiCS-0UC2廿-。眥卜MUVS丄.0眥2BP-eaaosi-0000ui-oeao

耐UPLlPL虺NAPOHU的-肺汕閔-汕肺Iis-[ib910BD?:H012HHi/m-I〔:x-陰殲【慣-儲(chǔ)如sp-ntinw

SS-HH91IP-AEJ12MOVAKJBX*011HP-HHtM)l】l-帥朋盹UP卜IPIM/NAPHhl(:DS:0001000611X頤BX=090HIJS-EJB91FS-WKBI0BC2:fl0158B09-tCX032Fl)KH000SPmfASS=0B91CS-6BC2IP=0015MOV(IXJHM*SIIHPHHEIEJSItm?Ill肺朋NVUP卜I円M/NflPUN〔;DS:0092=0900I1H-師汕品-汕師(1S-0R91FS-AR81[用-盟汁[用-朋期SP-OEH^SS-OR^ICS-0RC2TP-0E117BP=ee9081=0002DI=0000

NlfU卩FTPIM?NflPONC0BC2:fl0178Ri901DS:0093=0900nH-oeeoBK-0000DS-0E91ES-0B810BC2:fl01flBitCCX-032EDK-6000SP-0060SS-0B91CS-6BC2IP-0O1A

MOVriH/cBP-G00OSI-00G2DI-0000

NTLI卩ElPLNZNflPONCAX均為0000.將原文中的指令清單改為DATASEGMENTADB12H,23H,34H,45H,56H,67H,78H,89H,9AHORG0300HBDB0BH,0CHDATAENDSPROGNAMSEGMENTASSUMECS:PROGNAM,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,BXMOVAX,0300HMOVAX,[0300H]MOVAX,[BX]MOVSI,2MOVAX,0001[BX]MOVAX,[BX][SI]MOVAX,0001[BX][SI]MOVAH,4CHINT21HPROGNAMENDSENDSTART

單步執(zhí)行后:|0BC2;Oe0AB8W3tMOV1AM.0309AH=03OGBx=meCN=032EDH=Q00aSP=0000BP=00fl0SI=G000DI=G00ODS=0B91ES-0B81SS-0B91CS-0BC2IP=000DNVIPElPLNZ麗卩DNDOBC2:O60Dkti8B07MOV1伸:[附]DS:0000=2312fiX=2312BX=9006CM-932FDK=0060£P(guān)=00Q9RP-0fifi9ST-fifiAODT-fifi90DS=0B91ES=9B81CS=0BC2IP=000FNVUPFlPlN/NflPOND[JBC2:Ofi0b-1BE0200MOV1%14朋7BX=0006CX=032EDM=0060SP=0000BP=0600SI-0002DI=0000DS=0B91ES=0BS1SS-0B91CS=0BC2IP=9012NVUFtlHL世riAPUNC0BC2;0612-t:8Bt?01MOV1AH.LBH-01JDS0601=3423AX=3423BM-90G0CX=032EDM-9000SP-0000EP-0009SI-0002DI-0090DS=0B91ES=0B81SS=0B91CS=0BC2IP=O015咽IP口PLNZ朋PONC0DC2;0ei5:8D90MOV1AM.DS:0002=4594-tOBC2:0O0O0BC2:00030BC2:00059BC2:09070BC2:O0On0BC2:000D0BC2:000F9BC2:09120BC2:00150BC2:00179BC2:091flOBC2:0O1C0BC2:001EB8910B8FH88BC3OBC2:0O0O0BC2:00030BC2:00059BC2:09070BC2:O0On0BC2:000D0BC2:000F9BC2:09120BC2:00150BC2:00179BC2:091flOBC2:0O1C0BC2:001EB8910B8FH88BC3B80003B800038B07BE0200牝妣1SRfifi8B4001BUGCL21C45E04MUVMOVNOVNOVMOVNOVNOVmMOVNOVMOVINILESMX,0B91DS,fiXAX,BXAX,0300RX,0300AX.tBX]SI,0002fiXJRX+ST1AXJBX-SI-01]AHAC21BX.tBP-04]AN-4J34開-測(cè)朗必-汕ZLLS-WBEJl0BC2;90178B40O1-LftN=5G65BM=0OOGDS=0B91CS=0B810BC2:0einB/.ACDN-yaocsp-yooeAN-4J34開-測(cè)朗必-汕ZLLS-WBEJl0BC2;90178B40O1-LftN=5G65BM=0OOGDS=0B91CS=0B810BC2:0einB/.ACSS-0D91鳥-汕呢IP-001/NVUPLIPL淞NMPUNDCM=032EDN=00OOSr=0OOGBr=00OGSI=09O2DI=0OOGS5=0B91CS=0BC2ir=0OLANVUPElPLMZNAPCMCHOVflH/C可知:隨著程序進(jìn)行,AX發(fā)生變化。算術(shù)運(yùn)算指令算術(shù)運(yùn)算指令實(shí)驗(yàn)內(nèi)容編寫三個(gè)完整的匯編語言源程序,完成以下計(jì)算。其中X、Y、Z、R、W均為存放16位帶符號(hào)數(shù)單元的地址。⑴Z《W+(Z-X)Z《W-(X+6)-(R+9)Z《(W*X)/(Y+6),R《余數(shù)實(shí)驗(yàn)前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對(duì)程序結(jié)果的分析等1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機(jī)調(diào)試的情況、上機(jī)調(diào)試步驟、調(diào)試所遇到的問題是如何解決的,并對(duì)調(diào)試過程中的問題進(jìn)行分析,對(duì)執(zhí)行結(jié)果進(jìn)行分析。3、寫出源程序清單和執(zhí)行結(jié)果。⑴Z《W+(Z-X)匯編程序清單DATASEGMENTXDW10ZDW20WDW10DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,ZSUBAX,X

ADDAX,WMOV乙AXMOVAH,4CHINT21HCODEENDSENDSTART進(jìn)入debug調(diào)試:C:\mdsii5.0>debuy2222999uBDB-OO02222222999uBDB-OO022229999DBR一Dooo0R8910B8ED8A102002BO6OO0O03060^00030200R血CD21MOVMOVHOVSUBADDHOVHOVTNTDS,AMAM,[00021RMJRRRR1AM,[00041[0002],flWAHM21DS=0B91ES=0B010392:0810A3920O-t盟UP口PLNEACPE1CDS=0B91ES=0B010392:0810A3920O-t盟UP口PLNEACPE1CDS:0e02=001tAH-0G14BM-090ODS=0B91ES=0B810392:6813BiiCCK-G027DH-OCO0SP-000GSS=GB91CS=0B?2IP=0013

HOVnH,gDP-C009SI-0000DI-0090

附II卩口PLhZACPE1C使用追蹤指令T單步執(zhí)行:0B92:0005ni0200MOVAX,[00021DS:000-tOX=0OliBH=O0OOCX=0O27DX=O0OOSP=0O00BP=O00OSI=0OO0DI=000Ons-RB9irs-nnmss-0B9ics-oh9?tp-加的nuup「tpinznrpnnc執(zhí)行結(jié)果是將20放入AX中。AX=0014H0092:96082B069060SUBAK.[60O9]DS:-tAM-O00nBM-0000CK-6027DX-0000SP-0000Br-0006SI-0000DI-6000DS-0ti91bS-0B81SS-(JB91詼-觀92丄L加嘰NVUPtlPLFkflCPbNC執(zhí)行結(jié)果AX=0014H-000AH=000A,結(jié)果正確。-t翱-傀2/DH-ooeasp-atjooSS=GB91CS=0B52ir=001OHOV帀朋?執(zhí)行結(jié)果顯示:AX=0014H,即為20,正確。然后將結(jié)果保存至Z存儲(chǔ)字中。最后觀察數(shù)據(jù)組中的數(shù)據(jù);-dOb91:00B91:0000OA00U00OA000000-0000OO0000000000顯示為X=10,Z=20,W=10。程序運(yùn)行結(jié)果正確(2)Z?W-(X+6)-(R+9)匯編程序清單:DATASEGMENTWDW100XDW20RDW30ZDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,WMOVBX,XADDBX,6SUBAX,BXMOVBX,RADDBX,9SUBAX,BXMOV乙AXMOVAH,4CH

INT21HCODEENDSENDSTART對(duì)程序進(jìn)行匯編后調(diào)試:C:XmasmSR>dphug2222222999999uBBBBBB000000222222999999uBBBBBB0000003000-L0002222299999BDDBBB_0--o-也iL.JCOHD111100000000B8910B8ED88BlE62e083C3662昭8RlFfi4fiR83C3092BC3口牝e■盹BAACCH21NOVMOVMOVNOVHDDSUBMOVADDSUBMOVMOVTMTfix,0B91DS.flKAX,[0000]BXJ0002]BXM6BXJ0004]BX.-09AX;BM[00061,fiXRH/iC21單步執(zhí)行:PB92:O0O38ED8HOVDS^RX-tfiH=0B91BX=O0Q0CX=Q031DX=0O0OSP=0O00BP=O0O0SI=0960DI=6O0ODS-aB91tS-0H81SS-UEJyiCS-0By2NVUPtlPLNZNNP(JNU此時(shí),對(duì)DS的段基址賦值為數(shù)據(jù)組的首地址9B92:0005A10000-tMOVAK.L0OOO105:0600=0864AK-O0G6DK-G09ODS-0D91匸S-GD810B92:0O0B8B1E02OB9B92:0005A10000-tMOVAK.L0OOO105:0600=0864AK-O0G6DK-G09ODS-0D91匸S-GD810B92:0O0B8B1E02OB-tCK-G03LDK-0090SP-G09OSS-GD91CS-0D92IP-G0OBmBK,[09021DP-G09OSI-0090DI-G09O陰UPElPLNZWAPONCDS:9602=0014AK=C066DK=G0L^CK=G03LDK=C00OSP=G00ODS=CD91匸S=GD8LSS=GD9LCS=CD92IP=G00CDP=G00OSI=C000DI=G0O0

IVUP□卩LNZNAPONC此時(shí),對(duì)AXBX分別賦值為100,20GB92;000C63C306麗=00創(chuàng)BH=001ACS-0B91ES-0B816B92:eO9F2BC3CK=003LD4OO00SP=0O00SS-0B91CS-0B92ip-oocr

SURAK.RMBP=0000SI=O00ODI=OO00

HVUPElPLNZNAP0NCHX-PUliH刖-MVm[:K-HH31SP-tU]fiWDS=0B91ES=0EJ?1SS=BB91CS=0B92IP=00110092:60116EJ1CO/I00MOVGB92;000C63C306麗=00創(chuàng)BH=001ACS-0B91ES-0B816B92:eO9F2BC3CK=003LD4OO00SP=0O00SS-0B91CS-0B92ip-oocr

SURAK.RMBP=0000SI=O00ODI=OO00

HVUPElPLNZNAP0NCHX-PUliH刖-MVm[:K-HH31SP-tU]fiWDS=0B91ES=0EJ?1SS=BB91CS=0B92IP=00110092:60116EJ1CO/I00MOV刖.[血附]-tKP-HtltH]SI-fiHtUlNVUPLIPLNZACP0HUDS;0004=G01EPH-0O/.ABH-001ErS-f)R91FS-AR810692:601589C309-ICK-0031DK-0600SP-0000SS-AR91CS-fiR92TP-9fi1SBP-0000SI-6000DI-C600

嗣腫FTPIN7(1C:卩0NCAH-0C4Mb^-002/DS-0B91ES-0B81DK-0031DH-0000SP-0000SS-0D91CS-0E92IP-9018BP-0000SL-000001-0000

麗UPElPLNZACFl:NC0B92;06132BC3_lAH=002OBH=0027DS-AB^lFS-0B810B92:061AAS9606-1CH=0DO1DH=00OGSP=00C6SS-RR^lCS-AB*)?IT-汕IDHE[朋朋1川XBP=0DC6SI=00OGDI=00C6nyupftnN?NnpnncDS:0906=9006AM-002015M-002iDS-0B91CS-0B81CM-aaoi肋-如twsp-0000SS-0B91CS-0B92IP-001C刖-0tHWS1-00UODl-0000NWJPElPLNAP0MC(3)Z《(W*X)/(Y+6),R《余數(shù)匯編程序清單:DATASEGMENTXDW10HZDW?WDW10HYDW3HRDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA

START:MOVAX,DATAMOVDS,AXMOVAX,WIMULXMOVBX,YADDBX,6IDIVBXMOV乙AXMOVR,DXMOVAH,4CHINT21HCODEENDSENDSTART編譯執(zhí)行結(jié)果如下:0B92:00000B92:0000B8910B0B92:00038ED80032:0005A104000B92:0008F72E00000B92:000C8B1E06000092:001083C3060B92:0013F7FB0B92:0015R302000092:6018891608000B92:O01CB44C0B92:001ECD21mmDS?fixM07[00041IMULWORDPTR[0000]mrx,ADD昭廣師IDI7BXmr30321.oxM07[00081.DMM07AHACTNT?1單步執(zhí)行結(jié)果如下:單步執(zhí)行結(jié)果如下:sms-tMOVDS.AKHH=UHCJL鼎=血(■川DS0B91E$0B8LtlH92:HHH5A10400-t(:H=aa30I訊=B(i曲SP=0000

SS0B91C5DB92IP0005NOVAK.IHEHKIBP=0000SI=9906DI=0009NVUPElPLNZNflPONG08:9904=0010CMDKOOflflSPOROObp0000stooflflnrooafiLis0B91ES0EJ81SSGB91CS0B92IP0008y[l(sms-tMOVDS.AKHH=UHCJL鼎=血(■川DS0B91E$0B8LtlH92:HHH5A10400-t(:H=aa30I訊=B(i曲SP=0000

SS0B91C5DB92IP0005NOVAK.IHEHKIBP=0000SI=9906DI=0009NVUPElPLNZNflPONG08:9904=0010CMDKOOflflSPOROObp0000stooflflnrooafiLis0B91ES0EJ81SSGB91CS0B92IP0008y[l(P:OO08iKAJKJIHORDPIIIL00O0JNVUPElPLNZHAPOHCDS:mH=0?10nMO1Q0BK0000CM0030DM0000SP0000I1S=AH91fS=HF?81SS=OB^1f:S=HB921P=[HH)C0B92:flflflC朗血0MOVBKJOOOGltGP0000SI0000DI0000NVUPElPlN/NRPONCDS:00060003flK0100閉0003l)S=0H91\S=OB?10092:001083C306CM0030DKD0O0SPOOOOSS=0B91CS=HB92IP=0010HDDGK.*0CbKvTm^TVJoTAX-B10RHX-0009DS=0B91ES-6H81BB92;0013F/FB-ICM-0O3BOX-OBB0SP-0000SS-0B91CS=0B92IP-0013LDIVLKBP-酗朋SI-BBOBIH-0000

NVUP"PIbl/NAPFNCAH-eeiCBK-0009DS-CB91ES-0D810D92;0015A30200cw-0000DH-oee^sp-0000SS-0B91CS-0D52IP-0015MOV[D0021.RKBP-0000SI-00OCDI-0000NVUPElPLNZNAPENCDS:0002=0000flM=OeiCBK=0009DS=CB91ES=0B81CM=0QOODM=OOO^SP=OOO0SS=0B9LCS=0D52IP=O0180B92:001889160800MOV[00081.DMBP=00OQSI=0OOODI=0000NVUPElPLNZNAPENCDS:0008=0000CBK-0009CH-0039DH-fififiinS-fiB91FS-0B81SS-0B91%-朋師SP-0000BP-0000ST-fifififiDT-OOOfiTP-001CNUUPFTPlWNAPFNC-dOB91:00B91:000010001C0010000300-0^執(zhí)行結(jié)果可得:商的整數(shù)部分z所指向的字單元內(nèi)容為001CH,余數(shù)本分R指向的字單元內(nèi)容為0004H。實(shí)驗(yàn)查表程序設(shè)計(jì)BB92:0H1H83C306〔恂BX?*06-I實(shí)驗(yàn)內(nèi)容:用查表的方法將一位十六進(jìn)制數(shù)轉(zhuǎn)換成與它相應(yīng)的ASCII碼,并將結(jié)果存放到ASCI單元中。匯編程序清單:TABLEDB30H,31H,32H,33H,34H,35H,36H,37HDB38H,39H,41H,42H,43H,44H,45H,46HHEXDB0AHASCIDB?DATAENDSDATASEGMENTCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETTABLEMOVAL,HEXXLATMOVASCI,ALMOVAH,4CHINT21HCODEENDSENDSTART對(duì)程序進(jìn)行編譯進(jìn)入debug調(diào)試

33333939999999uBBnDBBBB\0000000BCF6600000008FnRBB0000盹遼盹VilA21100CH21Moy

MOWM07Moy

XIATM07MDy33333939999999uBBnDBBBB\0000000BCF6600000008FnRBB0000盹遼盹VilA21100CH21Moy

MOWM07Moy

XIATM07MDyNTDS,AMBK,0000MLJaaiai[0011]?,AL使用t追蹤指令觀察數(shù)據(jù)變化HB93:09O5BB0O0H-iMOVftH=0B91E^=0OeeDS-fiB91FS-0R819B93:9908fl91000-iCX=0033DH=OOO0SP=000OSS-AB91宓-朋仞T卩-朋聽HO'JPlJflfilAlDP=CO00SI=00OGDI=G000

報(bào)UPFTPlN7HA卩DNCDS:001S=9AftK-OEJ0AE^-0OeeDS=0B91ES=9B81DB53:09OBD7-1CX-0033DH-0000SS=0D?LCS=0B?3

KLPTSP-0090IP=09GBDP-0000SI-00OGDI-G009

IVIPElPLNAPONCCX-0033DK-(J(JC0SP=0000AK-0B41EH-0(JO0DS=0旳1ES-dBSS=B旳:LCS=0B%工卩=觀肌5^-0000si-00(joDi-uyya

軟UPLJ.PL呢NHPUNC觀光:馳觀H211UUM刖LUU11J.MLDS;U(jll-00-tAH-f)Ri1RK-OOfifi陽-朋能nK-OOOfiSP-RfifiRRP-OOOfi£T-朋恥DT-加的DS-0UyiLS-UBJJ1SS-0UyiCS-UB901P-000FWUPLIPLNZNAP(JNC-d0b91:0AR91:胡甌313?酬弘鴿弘37-3A39i2竹iiiSM朗笛血幻R9(1RC:DFF0D31;O010OH410UOU泅(W000U-OU汕(W跑如詫師刖.AASCI所指向的字節(jié)單元的內(nèi)容正是十六進(jìn)制數(shù)0AH的ASCII值41。實(shí)驗(yàn)五系統(tǒng)功能調(diào)用實(shí)驗(yàn)內(nèi)容:試編寫一個(gè)匯編語言程序,要求對(duì)鍵盤輸入的小寫字母用大寫字母顯示出來。匯編程序清單:

CODESEGMENTASSUMECS:CODESTART:MOVAH,1INT21HSUBAL,20HMOVDL,ALMOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART對(duì)源程序編譯并進(jìn)入debug狀態(tài)OB91:0O0OB4610B910002CD210B9100042C200B91:00068AD00B91:0908B4020B91:000fiCD210B91:OB91:0O0OB4610B910002CD210B9100042C200B91:00068AD00B91:0908B4020B91:000fiCD210B91:@00C0B910O0ECD21MUVPH,01INT21SUBAL.20MOVDL,ALMOVAH,02INT21MfiVAHACINT21_gyVProgramterminatednorinally調(diào)試結(jié)果正確。<實(shí)驗(yàn)六分支程序設(shè)計(jì):實(shí)驗(yàn)內(nèi)容假設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,請(qǐng)編一程序,判斷:每個(gè)數(shù)大于0,等于0,還是小于0;并輸出其判斷結(jié)果。即:1當(dāng)x>0y=0當(dāng)x=0-1當(dāng)x<0匯編程序清單:DATASEGMENTTABLEDB5,-4,0,3,100,-51GDB'1',13,10,'$'ZDB'0',13,10,'$'LDB'-1',13,10,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,TABLEMOVCL,6COMP:CMPBYTEPTR[SI],0JGGREATJZEQUALLEADX,LJMPSHORTDISPGREAT:LEADX,GJMPSHORTDISPEQUAL:LEADX,ZDISP:MOVAH,9INT21HINCSILOOPCOMPMOVAH,4CHINT21HCODEENDSENDSTART對(duì)源程序進(jìn)行編譯并進(jìn)入調(diào)試狀態(tài)C:\mas:in5.fl>dAhiig3.amp0B93:0000B8919B0B93:00038ED80B93:00058D3600O00B93:0009B1060B93:000B8030000B93:000E7F080893:001074000B99:00129D160E000B93:0016EB0A0B93:00188D1606000B93:001CEB040B93:001E8D160A00MOVnM.0B91TOC\o"1-5"\h\zMOVDS.俶LFfiST.MOVCL.06chpbvTeptr[si],0eJG0018JZ0O1ELEADM.[000E1JMP0022IFARXJRRR61JMP0022LEADX.[060A1pVTCoVToNNooNMIIpVTCoVToNNooNMIILMI9c0Bi?sH110H1R2S0fi20B930022Bi090B93:0024CD210B93:0026U0B930027E2E20B93:0029B44C0R93002BCD21分布調(diào)試:AK-WU91AK-WU91囲-觀汕DS-0D81匸S-GD810B93:0O038ED8-tCK-eWWDK-0000SP-0000SS-6B91CS-GB93IP-CO03

MOVDS.AHBP-0000L1-0UB0N7UP口PLHZMAPONCDS-fiR91FS-0B819693:00058D369000-tCK-fifiiDDK-fifiROSP-0fifi9DS-fiR91FS-0B819693:00058D369000-tCK-fifiiDDK-fifiROSP-0fifi9SS=6B91CS=0B93IP=06fl5丨卜II£1.丨朋期IRP-nOfifiST-OOOfiDT-fm甌N?UPFTPIU?inpnHCDS:900e=FC05DS-0U91LS-0USJ1DS-0U91LS-0USJ10B93;G009B106-tLK-O04D[)K-(W00SP-0000SS-0U91cs-ouyjIP-0009MOVCL.G6BP-DO00U1-0UO0NVUPLIFLWl.1APUNCCK=G006DH=O00OSP=CO001BP=OG00SI=0CG0CI=0O60

NUIIPFTPIN7MflPDHC0B53:90GB803C0O-tCMPBYTEPTR[Sil.00DS:8000=05nK-fiB91RK-fiflAOnS-fiB91FS-fiB81汕嗚:川州卜/l-HH-+CX=0BflSSS-0B91J[;CS-0R93TP-胡0F0918FP-OfififiST-OOfiflDT-flOOfi

NUUPFTPI17NnPFMC〔:K-l〔:K-l怡恥I

SS-(3H91ILtABP=0060SI=000001=0006MHUP卜IPIFVNHPFNCDS:8006=0031DS-HK910B93:001B8D160600-tl)K-刖汕SP-0000CS=0B93IP=0018DK,[00061BP-0060SI-O0G0DI-OOCOBP-0060SI-O0G0DI-OOCO

NVIPElPL1ZNAPENCAK-6D91DK-G009CK-0006DH-CG06SP-OG00DS-0D9LCS-eBDlSS-GEJ91CS-CE93IP-061C0B93:001CFRfii-tJHPPM-0R91PM-0R91RK-00朋LS-UB91LS-0UO10B93:0022B409-tCX-麗朋DK-flORSSP-fiOfifi

SS-0L91CS-汕畀1P-U022HOVAH?A9RP-0909nT-0009NVUPLIHLNZNHPLHCPM-0991RK-flARALS-UB91LS-0UO1PM-0991RK-flARALS-UB91LS-0UO1DK-汕胚SP-flOfiOSS-BL91CS-汕畀lP-002/iBP-0009nT-0009HVUPLIHLNZNHPLHC從結(jié)果可知經(jīng)過第一次循環(huán),DX所代表的要輸出的字符串的地址0006H即為數(shù)據(jù)段中Z字符串的EA,所以輸出內(nèi)容為1。且SI自增1,CL減1。以下循環(huán)原理同上。全部運(yùn)行的:F91-1911-1Programterminatednormally程序運(yùn)行正確。思考題:程序中的原始數(shù)據(jù)是以怎樣的形式存放在數(shù)據(jù)區(qū)中的?請(qǐng)用DEBUG調(diào)試程序觀察并分析。答:程序中的原始數(shù)據(jù)是以補(bǔ)碼的十六進(jìn)制的形式存放在數(shù)據(jù)區(qū)中的。|-d0b91:00B91OOOO05rC0003CD316D-6A24060D0A242D31丄:00丄0OD朋2&呱腕甌腕甌-盹盹盹盹創(chuàng)也創(chuàng)也實(shí)驗(yàn)七循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容與要求編制程序計(jì)算S=1+23+34+45+......+N(N+1)+......直到N(N+1)大于200為止,并將結(jié)果由屏幕上顯示出來。其程序的流程圖如圖7.1所示。將從3000H內(nèi)存單元開始的100個(gè)字節(jié)存儲(chǔ)單元全部清0。本實(shí)驗(yàn)要求在DEBUG調(diào)試狀態(tài)下進(jìn)行,包括匯編程序、運(yùn)行程序、檢

查結(jié)果。程序框圖圖查結(jié)果。程序框圖圖7.1程序框圖實(shí)驗(yàn)步驟實(shí)驗(yàn)內(nèi)容一:1)按程序流程圖編制實(shí)驗(yàn)程序。2)輸入源程序。3)匯編、連接程序,執(zhí)行程序,檢查結(jié)果。實(shí)驗(yàn)內(nèi)容二:1)輸入源程序并檢查無誤。2)對(duì)內(nèi)存單元3000H開始的100個(gè)存儲(chǔ)單元用E命令輸入任意數(shù)。3)程序的執(zhí)行可用DEBUG的G命令,也可用T命令單步跟蹤執(zhí)行。用D命令檢查執(zhí)行結(jié)果。實(shí)驗(yàn)內(nèi)容1的程序清單:DATASEGMENTSTRDB5DUP(0)DB'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,1MOVBL,2LOP:MOVAL,BLINCBLMULBLADDDX,AXCMPAX,200JBELOPMOVAX,DXLEADI,STR+4LOP2:MOVCL,10DIVCLADDAH,30HMOV[DI],AHANDAX,OOFFHDECDICMPAL,0JNELOP2LEADX,STRMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART程序運(yùn)行及結(jié)果:D:\masm5>TEST71119I■—

D:\masm5>debugTEST7.EXE-U1447:00001447:00031U7:00051447:00081447:000A1U7:000C1447:000E1447:00101447:00121447:00151447:00171447:00191447:00101U7:001F_G1447:00001447:00031U7:00051447:00081447:000A1U7:000C1447:000E1447:00101447:00121447:00151447:00171447:00191447:00101U7:001F_G1119B846148ED8BA0100B3028AC3FEC3F6E303D03DC80076F38BC28D3E0400B10flF6F1MOVnxjueMOVDS,AXHOVDH;0001MOVBL,02MOVAL,BLINCBLMULBLHDDCHP敝腕8JBE000AMOVAX,DXLEADI,[00041MOVCL,0ADIVCLProgramterminatednormally-TSP-0000IP=0O93SP-0000IP=0O93BP-0000SI-0000DI-0006NVUPElPLNZNflPONCfiK-1446BX-0006DS=li35ES<i36CM-064ADK-0000SS=1446CS=l;i71^47:0003BEDS-TMOWDS.AXBX=OOO0BX=OOO0DS-14i6ES-14361447:0005BAOIOO-ICX=00/iflDK=0009SP=OO00SS-1446CS-lii7IP-000^M07昭,0001BP=0000SI=00OODI=9000

NVUPElPLNZNAPONCAK-liUBX-0006AK-liUBX-0006DS=1V,6tS=lA361447:0008B302-TCM=004ADK=0001SP=0000SS=l/,/r,6CS=U/,/!P=00y8MOWBl.112BP-0000SI-0000DI-0006NVUPblPLNZNMPONCDS-1446ES-1406lU7:000fi8DS-1446ES-1406lU7:000fi8甌3SS-1446CS-1447IP-OOBAMOyfiL.BLRP=朋朋ST^tinnNVUPElPLNZNAPONC程序循環(huán)體如下圖:AM-1Li02BX-9002CK=004ADM-6001DS-1LiteES-1136SS=1446CS=14471U7:000CrEC3INCBL-TAH=1Li02BK=0003CK=004ADH=0001DS=1LiteES=1436SS=1446CS=li471U7:000Er6E3MULBL-TAK=0006BX=0003CK=004ADK=0OO1DS=1U6LS-1W6SS-1446CS=14471U7;0010O3D0ADDDK-TP-0000BP-0000SI-0000DI-00OOP-0O0CNVU卩FIPLNZNA卩0NC卩=0000DP=O000SI=0000DI=0000P=0O0ENVUP口PLNZNA卩匸訊卩=0000DP=0000SI=0000DI=000OP-0010NVUPElPLNZNAPEhCAX-0006BK-0063DS-1446ES-1W61U7:0O123DC800-TC^-ee^ADK-0007SP-0000SS-1446CS-14i7IP-0012OHPDP-0000SI-9060DI-0000NVUPElPLNZNAPONC側(cè)-麗眥HX-麗勵(lì)HS-UifiFS-11361U7:001576F3DK-fi007SP-Ollflflss-iu^ns-ui?TP-om^JBF如舶ST-flRfifiDT-fifiOONVIJPFTNfiN7fiCPDCV結(jié)束循環(huán):RM-00D2BM-OOOFCK-0O4RDX-045FSP-0000BP-9000SI-000001-0000DS-Ui6ES-U36SS-1U6CS-1U7IP-0012NVUPElPLNZNAPENCyui-.m?-t!3DC809HMP1醐,麗飾RM-O0D2BH-OO0FCK-0O4RDX-045FSP-0000BP-9000SI-0000DI-0000DS-Ui6ES-U36SS-1U6CS-1U7IP-0015NVUPElPLNZfiCPENC1i47:Rfl1S-tiJRFoosn1H=0OD2BM=0O0FCX=O04fiDX=045FSP=0B00BP=0060SI=000001=0000DS-1446ES-1436SS-1446CS-1447IP-0017NVUPElPLNZACPENC1447:Rfln-tF8RC2m1AXnnw1K=045FBK=000FCX=004fiDX=045FSP=0B00BP=900OSI=000001=0000DS-UtSES=U36ss-iusCS-14i7TP—朋19NVUPFTpin?nopfNr1石門:朋19*RDSFfU師1FH1DTJfiOOtlDS:0004=2439下部分程序?yàn)槔贸?0取余法將計(jì)算結(jié)果用十進(jìn)制在屏幕上顯示:nx-onn?BX-nAfiFDS=U46ES=14361447:00178BC2-tnx-onn?BX-nAfiFDS=U46ES=14361447:00178BC2-tCX-AfliHDK-A45FSP-fiAfiOSS=U46CS=U47TP=flfll7

MUVMM.DMRP-fifiOOST-fillOODT-noon

NyUPrTPlN7ACFTNCHX-tl心卜BX-U00Fins-utfiFS-U3fiHX-tl心卜BX-U00Fins-utfiFS-U3fi:1447:00190D3C0/.G0-tCX-00^iHUK-跚b卜SP-y0UOss-14ifiCS-1447TP-RA19iLEADI.[900;]NUIIPFTPIN7ACPFNCDS:0064=2439AX=045FBX=000FCX=004RDX=045FSP=B000US-U讓ts-1^6SS-1V.6CS-lVi/1P-001D1447:0010BlfinAX=045FBX=000FCX=004RDX=045FSP=B000US-U讓ts-1^6SS-1V.6CS-lVi/1P-001D1447:0010Blfin-tfiX=045FBM-O00Fcx-eeonDM-0i5Fsp-0000BP-0090SI-0000DI-0OOtDS-1446ES-1436SS-1446CS-1447IP-001FNVUPElPLNZncPENCU47:001F-tF6F1DIV1CLfiX=fi%rBH=000Fcx=000flDM=0i5FSP=0B00BP=0000SI=0000nT=0ootDS=1U61S=1436SS=14i6CS=li47IP=HH21NVU卩11flN/H〔:PlN【:1他:唧1HHl)l]1AH.3HAX-U%FBM=0O0FCX=00OfiDH=045FSP=0000BP=0000Sl-0000DI=0004DS-IV16ES-1436SS-1446CS-1/J.7IP-002/iNWUPElPLNZNOPENC11447:00248825MOV![DI],RHDS:6004-39HOVcion計(jì)算結(jié)果在DS的存儲(chǔ):AKW96FBM=0O0FDS-IV16ES-1^3614i7:002625FF00AKW96FBM=0O0FDS-IV16ES-1^3614i7:002625FF00-dl446:01146:00000031CX=0O0fiDX=0i5FSP=0O0OSS-IV16CS-l/Ji?IP-0026HNI)卜卜3131392t0000-000000BP=OO00SI=009ODI=O004NUUPElPLNZNAPENC0000000000.1119$實(shí)驗(yàn)內(nèi)容與要求(2)將從3000H內(nèi)存單元開始的100個(gè)字節(jié)存儲(chǔ)單元全部清0。本實(shí)驗(yàn)要求在DEBUG調(diào)試狀態(tài)下進(jìn)行,包括匯編程序、運(yùn)行程序、檢查結(jié)果。實(shí)驗(yàn)步驟實(shí)驗(yàn)內(nèi)容二:1)輸入源程序并檢查無誤。2)對(duì)內(nèi)存單元3000H開始的100個(gè)存儲(chǔ)單元用E命令輸入任意數(shù)。3)程序的執(zhí)彳丁可用DEBUG的G命令,也可用T命令單步跟蹤執(zhí)彳丁。4)用D命令檢查執(zhí)行結(jié)果。匯編程序清單:CODESEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0PUSHAXMOVBX,3000HMOVCL,100

LOP:MOVBYTEPTR[BX],0INCBXLOOPLOPMOVAH,4CHINT21HCODEENDSENDSTART運(yùn)行及調(diào)試:D:\Masm5>debugtest7-2.exe1447:0000IEPUSHDS1447:0001B80OO0MOVAX,00001U7:000450PUSHm1447:0005BB0030NOVBX.90001447:0098B164MOVCL?1U7:000AC60700MOVBYTEPTR[BX1J01U7:000DA3INCBX1U7:009EE2FALOOP000A1U7:0010BUCMOVAH,4C|1U7:0012CD21INT21-gProgramterminatednormally-rdsDS14371437:3000000000001437:30000000000000000000-00000000000000001437:30100000000000000000-00000000000000001437:30200000000000000000-00000000000000001437:30300000000000000000-000000000000000Q1437:30400000000000000000-00000000000000001437:30500000000000000000-00000000000000001437:306000@000004F02780A-8B37FF078A042AE41437:3070EB0RFF362621E8DF-2R83U02A310193D-dl437:30O0E命令修改:礙!.-61437:39101437:301000.35-el437:30231437:302380.RflX-0000BM-3002□S=1^37ES=1437U47:000D43-tCH-0062DX-0000SP-FFFCSS=lt47CAIflX-0000BM-3002□S=1^37ES=1437U47:000D43-tCH-0062DX-0000SP-FFFCSS=lt47CAI輯?IP=00ODINC貂BP-0000SI-0000DI-0000

NVUPElPLNZNflPONCnx-Aons麗-朗陽HS-U37FS-U371W7:000EE2FA-+CK-OAS?DX-fiOAASP-FFFnSS-U47CS-Ut7TP-RflOFIOOP朋加RP-ORAOST-nOfiADT-麗(W

NVU卩FTPINZNAPFNCUS-l/jJ/LS-1/.3/li47;000fiC6G700CH=0O61DX=00O0SP=f11Css-iv^cs-ivt/ip-yaoHBP=0000SI=0000DI=0006

NVUFLIPLNZNHPLNCMoyUS-l/jJ/LS-1/.3/li47;000fiC6G700CH=0O61DX=00O0SP=f11Css-iv^cs-ivt/ip-yaoHBP=0000SI=0000DI=0006

NVUFLIPLNZNHPLNCMoy旳ILPIHLUHJ:00-dl437:30001437:30000000001437:30100000001437:30200000001497:90300000001437:30t00000001437:30500000001497:90600000001437:3070EB0AFF0000000000-000000000000-000000000000-000000000000-000000000000-000000000000-0000tF02780A-8B362621E8DF-2A00000000000000000000000000000000000000000000000000000000000000000000000000000000000037FF078fl042AE483C402A310193DDS;3009=001437::30090000000000000000-00000000000000001437::30103500000000000000-00000000000000001437::30200000000A00000000-00000000000000001437::30300000000000D80000-00000000000000001437::30t00000000000000000-00000000000000001497::30500000000000000000-00000000000000001437::306000000000tF02780O-8B37FF078fl042AE41437:303500.d8-dl437:3000T追蹤:甜=3加2US-l/jJ/LS-l/iJ/li47;000fiC6Q700-ICK=U062DX=0U00SP=IFILSI=0U0aD1=00U0SS-1V|/CS-lVt/1P-00OHNVUPLIPLNZNMPUNCMOWUVILPIKLUHJ.0UDS:UO02-Ot1實(shí)驗(yàn)八子程序設(shè)計(jì)1、程序說明:編制一程序,要求鍵入一個(gè)班的學(xué)生成績(jī),并存放于50字的ERADE數(shù)組中,然后根據(jù)ERADE中的成績(jī),把學(xué)生名次填入50字的RANK數(shù)組中,再按學(xué)號(hào)順序把名次從終端上顯示出來。提示:程序MAIN功能:根據(jù)輸入的學(xué)生成績(jī),計(jì)算并顯示出學(xué)生名次。子程序INPUT功能:接收一個(gè)班級(jí)學(xué)生的成績(jī),各成績(jī)之間用空格隔開。子程序RANKP功能:計(jì)算一個(gè)班級(jí)學(xué)生的名次。子程序OUTPUT功能:輸出(顯示)一個(gè)班級(jí)的學(xué)生名次子程序DECIBIN功能:十進(jìn)制轉(zhuǎn)換二進(jìn)制,存入BX子程序BINDEC功能:十進(jìn)制轉(zhuǎn)換二進(jìn)制,并在屏幕上顯示。子程序DEC_DIV功能:BX的內(nèi)容除以CX的內(nèi)容,并在屏幕上顯示一位商。源程序:DATASEGMENTGRADEDW50DUP()RANKDW50DUP()ENTERDB'Grades:',24H;提示用戶輸入成績(jī)ERRORDB13,10,'Error!',13,10,24H;用戶輸入的格式出錯(cuò)SHOWDB'Rank:',24HCOUNTDW0;統(tǒng)計(jì)輸入的成績(jī)個(gè)數(shù)CRDB13,10,24h;換行

DATAENDSSTACKSEGMENTSTACKDB400DUP(0)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXCALLINPUTCALLRANKPCALLOUTPUTMOVAH,01HINT21HMOVAX,4CHINT21H;INPUT程序段;以學(xué)號(hào)為序從鍵盤輸入一個(gè)班的學(xué)生成績(jī),各個(gè)成績(jī)之間用逗號(hào)格開,最后以回車符結(jié)束。;然后把一個(gè)班的成績(jī)存人grade數(shù)組。INPUTPROCNEARDX,ENTERAH,921H;提示用戶輸入LEAMOVINTMOVSI,0MOVCOUNT,0;將輸入用戶的輸入個(gè)數(shù)置0ENTER:;對(duì)用戶的輸入進(jìn)行監(jiān)視,對(duì)錯(cuò)誤輸入立即進(jìn)行出錯(cuò)處理CALLDECIBIN;調(diào)用DECIBIN;對(duì)用戶輸人進(jìn)行處理INCCOUNTCMPDL,',';與','比較,相同則保存成績(jī),不同出錯(cuò)JE_STORECMPDL,0DH;與回車鍵進(jìn)行比較,回車則成績(jī)輸入結(jié)束JE_ENDENTERJNE_ERROR;出錯(cuò)處理:顯示出錯(cuò)信息STORE:;保存成績(jī)MOVGRADE[SI],BXADDSI,2JMP_ENTERERROR:

LEAMOVINTLEAMOVINT_ENDENTER:MOVMOVMOVINTRETINPUTENDPDX,ERRORAH,921HGRADE[SI],BXDX,OFFSETCRAH,921H;用戶結(jié)束成績(jī)輸入;換行;RANKP程序段;從grade數(shù)組取得一個(gè)班的成績(jī),以學(xué)號(hào)為序計(jì)算岀該班每個(gè)學(xué)生的名次存人rank數(shù)組。;算法為:一個(gè)學(xué)生的名次等于成績(jī)高于該生的學(xué)生人數(shù)加1RANKPPROCNEARLOOP:NEXT1:JUMP:MOVLOOP:NEXT1:JUMP:MOVMOVDI,COUNTBX,0MOVAX,GRADE[BX];取學(xué)生成績(jī)MOVWORDPTRRANK[BX],0;初始化RANK[BX]的值為0MOVCX,COUNTLEASI,GRADE;第一個(gè)學(xué)生的成績(jī)CMPAX,[SI];比較兩個(gè)成績(jī)JG_JUMP;成績(jī)大于被比較的跳過INCWORDPTRRANK[BX]ADDSI,2;取下一個(gè)被比較成績(jī)的地址LOOP_NEXT1ADDBX,2;下一個(gè)成績(jī)DECDI;未比較成績(jī)個(gè)數(shù)減1JNE_LOOPRETRANKPENDP;OUTPUT程序段;從rank數(shù)組取得一個(gè)班的學(xué)生名次。把一個(gè)班的學(xué)生名次以學(xué)號(hào)為序在終端顯示岀來;調(diào)用子模塊binidec,以便把rank數(shù)組中的二進(jìn)制數(shù)轉(zhuǎn)成十進(jìn)制數(shù)并在終端上顯示岀來?調(diào)用子模塊crlf完成回車,換行功能.OUTPUTPROCNEARLEADX,SHOW

MOVINTAH,09H21HMOVSI,0MOVDI,COUNT_NEXT2:MOVBX,RANK[SI];將成績(jī)保存到BX中CALLBINIDEC;調(diào)用BINIDECCMPDI,1;將剩余的成績(jī)個(gè)數(shù)與1比較,若為1則不顯示',JE_N

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論