合工大匯編語言程序設計試驗報告_第1頁
合工大匯編語言程序設計試驗報告_第2頁
合工大匯編語言程序設計試驗報告_第3頁
合工大匯編語言程序設計試驗報告_第4頁
合工大匯編語言程序設計試驗報告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、合肥工業大學計算機與信息學院實驗報告課程:匯編語言程序設計專業班級:*號:*姓名:*Word文檔目錄實驗一3實驗二7實驗三12實驗四22Word文檔實驗一Debug程序的使用一.實驗目的1、熟悉DEBUG程序中的命令,學會在DEBUG下調試運行匯編語言源程序。2、掌握8086/8088的尋址方式及多字節數據的處理方法。二.實驗內容1、利用DEBUG程序中的E命令,將兩個多字節數“003F1AE7HT和006BE5c4H'分別送入起始地址為DS:0200H和DS:0204H兩個單元中。2、分別用直接尋址方式和寄存器間接尋址方式編寫程序段,實現將DS:0200H單元和DS:0204H單元中

2、的數據相加,并將運算結果存放在DS:0208H單元中。要求:本次實驗的內容均在DEBUG下完成,實現數據的裝入、修改、顯示;匯編語言程序段的編輯、匯編和反匯編;程序的運行和結果檢查。三.實驗過程和程序實驗內容一:eds:0200E71A3F00eds:0204C4E56B00實驗內容二:(1)直接尋址方式MOVAX,0200MOVBX,0202ADDAX,0204ADCBX,0206MOV0208,AXMOV020A,BX(2)寄存器間接尋址方式MOVSI,0200HMOVDI,0204HMOVBX,0208HMOVAX,SIMOVDX,SI+2ADDAX,DIADCDX,DI+2Word文檔

3、MOVBX,AXMOVBX+2,DX四.實驗結果(包括必要的截圖)實驗內容一:輸入數據:t:XMASM>DEBUG32-Urrsinn1.0-Copyright.(ClLflrrtnnCnmputinj1啊4CPU=4M,RealMode,Id/Step=AZOdisabled-E»S:6E00E73Y00-E»S:0EGKC4E56E00顯示數據:C:SMASM>DEBU632Debug3Z-Itersion1.6-Copyright(C)LarsonComputing1羽4CPU=486,RealMode,Id/Step=GH0E,AZOdisabledED

4、S:0Z0OE71A3F«3ED3;配04C4E56B的-DES:Q2001C8B:位tX)E71A3F06C4Eb6HOtHABRBt«0(J00GOg.7.l)ek.*.+1C0B:GE1O960000OGGO0009©0-008電0900000000*DuplirateLine*)*1CBB:GE700000000GGOQ©0900-00G0000000Q00000實驗內容二:(1)直接尋址方式程序段編輯:0?3F:0100movaxfI0G001moubx.IOE國073F:0167addax.呢M0?3F:010Badebx,0Z66JtfF:

5、0WFmovQ2G81,ax073F;0112mov0S6al»bx073F;O116反匯編:Word文檔u?3F:0109A10Q0EHOURX.10ZO0J?3F:01©38B1EGEQZMOUBX.I6E0273F:61B76306848ZADDAX,0204J>?3F:01GB131EQ6GGADCBX,Q2G61I73F:0ieFA3080EMOU0208,A*?3F:0112891E0A02HDUIQ20ALBXI073F:G116O0G0ADDrBX*SIl,AL?3F:01166000ADDIBXtSIliAL?3F:011A0000ADDIBXtSI

6、JfAL?3F:011C3400XDRAL,9073F:811EZEcs:P3F:G11FG?POPES運行:結果在DS:0208單元中為00AB00ABH卜g=1600116PiX-OOADBX-OOADpS=0f?3FES=073F073F:91160000CX-0000DX-00003r-O0FDDP-000031-0000DI-OOGGSS=G)73FCSM973FIF=©116NUUPEIPLMZACPOMCADDBXtSH.AL-d0208Q?3F:GZQ0073F:QZ100?3F:GGZ0073F:GZ30073r:GE4D073F;GE50O73F:0ETO073F

7、;6za®000066660080000oeGQ006060GO000600600060GOGO0006b»3M3>0M3eeA00000o-0©-©©-©®-。©-陽91selael01。0000DO00000000000000000000OQGQ000Ooo00000O0&OO00DS:OQAB=00(2)寄存器間接尋址方式程序段編輯:O*?3F:01tl0«novsi»?3F:01fnwivdi.OK04EV73F;01G6nnvbx.GSeefr73F:O1tyinnvax

8、.tsi1A(73F:G1OBmiudx,Tki-r-23FT73P:Q10E«rL1B73F;011OdrtcdK/df+ZJO73r;0113rovFbxlxEM73F:0115“JU:bx+ZJ,lx反匯編:-u073F:0106EE的呢MUUSI,0206973F:0103BF04猊MOUDI,呢04073F:OIO6EBGQQZmu3X>0ZfiflO73F:01098BGKMOUAXJSUD73F:010B8B54Q2nouDXjtsi+eeiO?3F:O10E03G5ADDAX,EDI073F:Q11G1355Q2ADC嘰DI+MEJ?3F:01138367ruu

9、SXbAX07亞:0115B95702MOUBX+呢LDX073F:O118G0GOADDBX*SIfAL0f?3F:Ollfi0O6GADDIBXtSUALa73F:011C34GoXURAL,00973r:011E£EC3:O73F:011F07PDFESWord文檔運行:結果高字存放在dx中,低字存放在ax中(結果為00AB00ABh)-g=01G00110AX=ocnDDx=oeoDS=6?3FES=G73F673F:0118GOG©cx=ooo©Dx=ooni)sr=0OFDSS=OT3FCS=Gr?3FIP=0118ADDBX+SILALBP=O00G

10、81=6200DI=0201MUUFEIPLMZACP0HC»S:0400=00五.實驗體會通過本實驗,實踐debug程序中的命令,并在debug下調試運行匯編語言源程序。在實踐過程中,解決如何把數據錄入存儲單元、debug命令如何使用等問題后,知道存數據例如1234進存儲單元時要3412存,還有掌握了寄存器的尋址方式。Word文檔實驗二匯編語言程序設計(順序、循環)一.實驗目的1、掌握順序和循環程序結構和設計方法;2、熟悉在PC機上建立、匯編、連接、調試和運行8086/8088匯編語言程序的過程。二.實驗內容1、X、Y、Z、V均為字變量,在X、Y、Z、V字單元中存放是16位帶符號數

11、。試編寫匯編語言程序完成以下功能:計算表達式值(V-X*Y+Z-720)/X;將上述表達式運算結果整數放在SUM1單元,余數放在SUM2單元。2、求一個班50名學生成績的平均值(附加題:最大值和最小值,并將結果顯示出來)3、從鍵盤讀入一個字符串,以Enter結束,字符串不超過50個字符,并打印該字符串(附加題:查找中間是否有asm'子用如果有,輸出Yes'杳則,輸出No)。三.實驗過程和程序(注:附加題沒有做)實驗內容一:X、Y、Z、V均為字變量,在X、Y、Z、V字單元中存放是16位帶符號數。試編寫匯編語言程序完成以下功能:計算表達式值(V-(X*Y+Z-720)/X;將上述表

12、達式運算結果整數放在SUM1單元,余數放在SUM2單元。Datasegmentxdw?ydw?zdw?vdw?sum1dw?sum2dw?DataendsCodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovax,ximulymovcx,axWord文檔movbx,dxmovax,zcwdaddcx,axadcbx,dxsubcx,720sbbbx,0movax,vcwdsubax,cxsbbdx,bxidivxmovsum1,axmovsum2,dxmovah,4chint21hCodeendsendstart實驗內容二:求一個

13、班50名學生成績的平均值(為了方便,只設置了5個學生數據)datasegmentgradedw90,80,80,70,60;平土勻數76dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axxorax,axmovcx,5movbx,offsetgradeagain:addax,bxaddbx,2loopagainmovcx,5cwdWord文檔idivcxmovah,4chint21hcodeendsendstart實驗內容三:從鍵盤讀入一個字符串,以Enter結束,字符串不超過50個字符,并打印該字符串datasegm

14、entbufferdb50db?db50dup('$')crdb0ah,0dh,"$"dataendscodessegmentassumecs:codes,ds:datastart:movax,datamovds,axinput:movah,10leadx,bufferint21hleadx,crmovah,9int21houtput:leadx,buffer+2movah,9int21hmovah,4chint21hcodesendsendstartWord文檔四.實驗結果(包括必要的截圖)實驗內容一:設x=156,y=10,z=220,v=2000,則s

15、um1=0006h,sum2=0004h在ax中看suml,在dx中看sum2CXDSBqx0.74,Cpuspeed3OCOcyclesFrames<ip0Progrann:DEBUG0771:0016p?71:(M1R07?1:Q91CG?71:G01F-M771:0322771:0023I771;GQ25?71:GG27771:GQ2E771:60EE771:etUZ771:6034r?71:G03fcr771:G03Pr?71:G03fi771:603c(771:eO3E(771:0040w=0000o13DAB1E9DMK030800A1060G992BC11BD3F73EQG

16、Q0的的0G明1£的90B44CCDS10009(DOR0000000000000000UDUBBBDlfluflutJUHTM帥DDDD皿師CSSIMMrtlAAAAABX,DXCX.泥D®MX,*00陽0G06AK,CXD5CHXWORDPTRLO0GO限迪,歡QQOALDXAH,4C21IBXSlJAL(BX+SI1.ALBXSU,ALBX+SlFALIBX+5I消LBX+31*HLiX=G0OG3=6770Bx=oeeoES=O760CX-GKZ4DX=)0MSF=O0OOBF=060Q31=0000DJ=&M沔SS-076FCS=6771IF=GG3ZHU

17、UPEIPLZRMAPEMC771:0832M4CMOU實驗內容二:預先設置的數據求得平均數為76,在ax中查看,即ax=004Ch陋DDSBox0.74fiCpuspeed30COcyclesFrameskip0.Program:DEBUG.=110?71;0i)06BB7Q0?MOUAX>0f?O0771;0OGC8EDBMOUds,axU771;OO0E33C0刈RAX,ftX0771:0007B9Q6GGHOUCX,90050771:000BBOOOGMOUBX,00GO0771:0O0B0307ADDAXJBX0771:G00F83C3GZADDBX.+GE0771:001/E

18、EFgLOOPeeeo0771:OOHB9060QMOUCXJ0O650771:001733CUP0771:901EF?F91DIUex0771:001B44cMOUAH3C0771:0O1CCDZ1IHT2107?1:GO1E0000ADDBX*S【LAL-目=頓帕0GGlaAX=OGHCBX=G)OQACX=06G5DX=9Q60SP=GOG«BP=000GSI-OGO001=00601PS=G?70ES-076GSS=GP6FCS=0771IP=GQlftMUUPEIFLfEHAFE1IC110771:GM31fB44CMQUHHC1實驗內容三:Word文檔五.實驗體會通過本實

19、驗,將課本上學到的算術運算類指令、變量定義偽指令、存儲單元、DOS0AH號功能(字符串輸入)和DOS09H功能(字符串輸出)等在實驗中實現。在實現過程中,解決遇到的問題(符號擴展、定義的數組存儲空間地址、字符串如何輸入輸出等)后,對上述知識有了更深的了解,并掌握實現它。Word文檔實驗三匯編語言子程序設計(分支、子程序)一.實驗目的1、掌握分支和子程序結構和設計方法;2、熟悉在PC機上建立、匯編、連接、調試和運行8086/8088匯編語言程序的過程。3、通過匯編語言了解高級語言的參數傳遞等知識。二.實驗內容1、BL中的只有一位為1。編寫程序測試,并輸出提示信息“TheXBitis1”,要求:地

20、址表和轉移表。2 .編寫一個子程序計算z=f(x,y)=x*y+x-y(x,y,z有符號數內存數)。要求通過堆棧(寄存器、內存)傳送所有參數。3 .實踐CAsm的轉換過程。三.實驗過程和程序實驗內容一:BL中的只有一位為1。編寫程序測試,并輸出提示信息“TheXBitis1”(1)轉移表;轉移表,bl左到右1-8位DATASSEGMENTstr1db'the1bitisT,0dh,0ah,'$'str2db'the2bitis1',0dh,0ah,'$'str3db'the3bitis1',0dh,0ah,'$&#

21、39;str4db'the4bitis1',0dh,0ah,'$'str5db'the5bitis1',0dh,0ah,'$'str6db'the6bitis1',0dh,0ah,'$'str7db'the7bitis1',0dh,0ah,'$'str8db'the8bitis1',0dh,0ah,'$'DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,

22、AXmovbl,00010000bmovcx,8movsi,0Word文檔again:shlbl,1jcnextaddsi,3loopagainnext:addsi,offsetjmptablejmpsijmptable:jmpnearptrl1jmpnearptrl2jmpnearptrl3jmpnearptrl4jmpnearptrl5jmpnearptrl6jmpnearptrl7jmpnearptrl811:leadx,str1jmpoutput12:leadx,str2jmpoutput13:leadx,str3jmpoutput14:leadx,str4jmpoutput15:le

23、adx,str5jmpoutput16:Word文檔leadx,str6jmpoutput17:leadx,str7jmpoutput18:leadx,str8output:movah,9int21hMOVAH,4CHINT21HCODESENDSENDSTART(2)地址表;地址表,bl左到右依次是第1-8位DATASSEGMENTstr1db'the1bitis1',0dh,0ah,'$'str2db'the2bitis1',0dh,0ah,'$'str3db'the3bitis1',0dh,0ah,'

24、$'str4db'the4bitis1',0dh,0ah,'$'str5db'the5bitis1',0dh,0ah,'$'str6db'the6bitis1',0dh,0ah,'$'str7db'the7bitis1',0dh,0ah,'$'str8db'the8bitis1',0dh,0ah,'$'addrtabledwshow1,show2,show3,show4,show5,show6,show7,show8DATASE

25、NDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXmovbl,00001000bmovcx,8Word文檔movsi,0again:shlbl,1jcnextaddsi,2loopagainnext:jmpaddrtablesishow1:leadx,str1jmpoutputshow2:leadx,str2jmpoutputshow3:leadx,str3jmpoutputshow4:leadx,str4jmpoutputshow5:leadx,str5jmpoutputshow6:leadx,str6jmpoutp

26、utshow7:leadx,str7jmpoutputshow8:leadx,str8jmpoutputoutput:movah,9Word文檔int21hMOVAH,4CHINT21HCODESENDSENDSTART實驗內容二:編寫一個子程序計算z=f(x,y)=x*y+x-y(x,y,z有符號數內存數)(1)堆棧傳遞參數;z=x*y+x-y,x、y、z為有符號數,堆棧傳遞DATASSEGMENTxdw5ydw2zdw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXsubsp,2pushypushx

27、callcalpopzmovbx,zMOVAH,4CHINT21Hcalprocpushbpmovbp,sppushaxpushbxmovax,bp+4movbx,bp+6imulbxaddax,bp+4adcdx,0Word文檔subax,bp+6sbbdx,0movbp+8,axpopbxpopaxpopbpret4calendpCODESENDSENDSTART(2)寄存器傳遞參數;z=x*y+x-y,x、y、z為有符號數,寄存器傳遞DATASSEGMENTxdw5ydw2zdw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVA

28、X,DATASMOVDS,AXmovax,xmovbx,ycallcalmovz,axMOVAH,4CHINT21Hcalprocmovcx,aximulbxaddax,cxadcdx,0subax,bxsbbdx,0retWord文檔calendpCODESENDSENDSTART(3)內存傳遞參數;z=x*y+x-y,x、y、z為有符號數,內存傳遞DATASSEGMENTxdw5ydw2zdw?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXcallcalMOVAH,4CHINT21Hcalprocm

29、ovax,ximulyaddax,xadcdx,0subax,ysbbdx,0movz,axretcalendpCODESENDSENDSTART實驗內容三:實踐C>ASM的轉換過程_TEXTSEGMENT_c$=-32;size=2_b$=-20;size=2_a$=-8;size=2_mainPROC;COMDATWord文檔;4:voidmain();000000e4Hpushebpmovebp,espsubesp,228pushebxpushesipushedi;00000039H;ccccccccHleaedi,DWORDPTRebp-228movecx,57moveax,-8

30、58993460repstosd;5:;6:shorta,b,c;7:a=1;moveax,1movWORDPTR_a$ebp,ax;8:b=a+1;movsxeax,WORDPTR_a$ebpaddeax,1movWORDPTR_b$ebp,ax;9:c=a+b;movsxeax,WORDPTR_a$ebpmovsxecx,WORDPTR_b$ebpaddeax,ecxmovWORDPTR_c$ebp,ax10:11:12:xoreax,eaxpopedipopesipopebxmovesp,ebppopebpret0mainENDPWord文檔_TEXTENDS四.實驗結果(包括必要的截圖)實驗內容一:(1)轉移表:設bl=00010000b地址表:設bl=00001000b實驗內容二:設x=5,y=2,貝Uz=13(000D),結果在ax(1)堆棧傳遞參數(結果在bx中查看)Word文檔(

溫馨提示

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

評論

0/150

提交評論