華南理工大學信工微機試驗一_第1頁
華南理工大學信工微機試驗一_第2頁
華南理工大學信工微機試驗一_第3頁
華南理工大學信工微機試驗一_第4頁
華南理工大學信工微機試驗一_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

O孝南理N大審SOUTHCHINAUNIVERSITYOFTECHNOLOGY微機原理實驗報告實驗一班級: 2016級信息工程班姓名: 學號: 序號: 評閱分數: 實驗一匯編程序上機環境的熟悉一、實驗目的1、學會使用匯編程序集成開發環境(未來匯編)來編輯源文件(*.ASM)、調用MASM宏匯編程序對源文件進行匯編,獲得目標程序(*.OBJ)、調用LINK連接程序將匯編后的目標文件(*.OBJ)連接成可執行的文件(*.EXE)。2、學會在DOS命令提示符下調用EDIT編輯程序來編輯源文件(*A5乂)、調用MASM宏匯編程序對源文件進行匯編,獲得目標程序(*.OBJ)、調用LINK連接程序將匯編后的目標文件(*.OBJ)連接成可執行的文件(*.EXE)。3、學會使用DEBUG調試程序把可執行文件裝入內存并調試運行,熟悉DEBUG命令。二、實驗題目1、有兩個無符號字節型數組,設數組元素個數相等,編程將數組中的對應元素相加,結果存入另一個內存區。1)不考慮進位。①已知數據段的定義:datasegmentorg2000hnum1db 12h,95h,0f1h,0c2h,82h,2h,10h,34hcountequ$-num1org3000hnum2db23h,0dfh,023h,3fh,3ch,0b3h,57h,3horg5000hresdbcountdup(0)dataends②debug調試:修改num1和num2數組元素的值,運行看結果。提示:-e2000-d20002)考慮進位。①已知數據段的定義:datasegmentorg2000hnum1db 12h,95h,0f1h,0c2h,82h,2h,10h,34hcountequ$-num1org3000hnum2db23h,0dfh,023h,3fh,3ch,0b3h,57h,3horg5000hresdwcountdup(0)dataends②debug調試:修改num1和num2數組元素的值,運行看結果。提示:-e2000-d2000三、實驗結果(1)不考慮進位。①運行代碼:;sampleDATASEGMENTorg2000hnumldb12h,95h,0f1h,0c2h,82h,2h,10h,34hcountequ$-num1org3000hnum2db23h,0dfh,023h,3fh,3ch,0b3h,57h,3horg5000hresdbcountdup(0)DATAENDSSTACKSEGMENTPARASTACK'STACK'DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXMOVBX,0MOVCX,8next:MOVAL,num1[BX]ADDAL,num2[BX]MOVres[BX],ALINCBXloopnextRETSTARTENDPCODEENDSENDSTART

②程序運行流程截圖:反匯編:C:\>debuc[filel.exe-li0C6BIEPUSHDS6C6B:eoeiBB0000MOUAX」0GoeOC6B;e00150PUSHAX0C6B:6065B86AG7MDUAX.076A0C6B8ED8MDUDS.AXQC8BBB8000MDUBX.00000C6B:GOGDB9Q6G0MDUCX.OGGe0C6B:6O108A87GG20MDUAL.EBX+200Q10C6B:60146287QGG0ADDAL.EBX+300010C6B:G01888870G5OMOU[BX+S0GOLAL0C6B:G01C43INCBX0C6B:eoiDEZF1LOOP00100C6B:eoiFCBRETF從IP=0000開始執行,在IP=001F暫停,因為程序將相加的結果存在了res中,所以輸入:-dds:5000查看存儲單元0C6B:O01DE2F10C6B:O01FCBintLOOFRETT0C6B:O01DE2F10C6B:O01FCBintLOOFRETTOGiG001FK3?BX=06Q66AES=075AK3?BX=06Q66AES=075ACX=OGOODX=6600SP=0060SS=0C6DCS=6C6BIP=001FBP=000031=0000DI=0000NUUPEIPLMZMAFOMCK001FCB HETF:5000Q76A:500035Q76A:500035741401EEB56737-G?eoQ78A:5010IEB8000050B86A67-8EB8Q78A:5QZ08A8700ZO0287663G-8887076A:5030BBIFID5QE8CDGF5G-E851076A:5040FF50ZBCQ50BQIE1B-5GE8076A:50503A21BB163C21A39C-G78907bA:5060C39956FF369AQ?BE-IEAG076A:507016FF30B848OC50FF—3624GO00 00 90 00 00 5t....g7 BB00 00 B9 08 00 ....P.j GO5043EZFlCB 0. ..PC...F783 C4 GK B8 FF ...P...P.Q 74C3 83 C4 06 Al .P+.P...P.t 169EQ78BE55D:!..<< ]WDIE3BE369A ..U.6 6.2iEBF21783C4,?GLH.P.6$? 可以看到,在5000-5008對應的八個數為numl與num2不考慮進位的相加結果,說明程序編寫正確。:Z000:Z0t0MUUFEIFLHZNAPONC6.1Z.Z5ds:5O0OA:5000r76fi:50t0r76fi:5070eZ&Xfr76fi:2000?6AES=G?5A:001FCBSS=0C6DCS=0C6BIP=OG1FRETFDOSBoxO.74,Cpuspeed;3000cyclesfTrameskip0,Pro.,.X再通過-e2000修改一個值,用-d2000查看是否修改成功:35IEBAB8FF3AC31674BB87IF50Z190FF140000IDZB8B56300100ZO50CO16FFB8BE5002B8503C3648B5BB87CDBBZ19A0C37-00G7-BE30-B859-E81D-5G9C-078B-1EFF-36G0DB8751EB89麗Z4G?E9EZ04C4BB8B170000CBFFAl5D9AC45t...g?……■?■??j1■■■■■ 0...PC…P…LQ….F+.F...F.t..:!..<! ■1161■■■■■■■.0.H,F.6S!..可以發現,執行e2000,將原來numl的第一個數字12H修改為25H,再通過d2000查看,numl第一個數字已經修改成25H了2)考慮進位。①運行代碼:;sampleDATAsegmentorg2000hnumldb 12h,95h,0f1h,0c2h,82h,2h,10h,34hcountequ$-num1org3000hnum2db23h,0dfh,023h,3fh,3ch,0b3h,57h,3horg5000hresdwcountdup(0)DATAendsSTACKSEGMENTPARASTACK'STACK'DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTARTPROCFAR

PUSHMOVPUSHMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCDSAX,0AXAX,DATADS,AXAH,0AL,[NUM1]AL,[NUM2]AH,0PUSHMOVPUSHMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADCADCMOVMOVMOVMOVADC[RES],AH[RES+1],ALAH,0AL,[NUM1+1]AL,[NUM2+1]AH,0[RES+2],AH[RES+3],ALAH,0AL,[NUM1+2]AL,[NUM2+2]AH,0[RES+4],AH[RES+5],ALAH,0AL,[NUM1+3]AL,[NUM2+3]AH,0[RES+6],AH[RES+7],ALAH,0AL,[NUM1+4]AL,[NUM2+4]AH,0[RES+8],AH[RES+9],ALAH,0AL,[NUM1+5]AL,[NUM2+5]AH,0[RES+10],AH[RES+11],ALAH,0AL,[NUM1+6]AL,[NUM2+6]ADCMOVMOVMOVMOVADCADCMOVMOVRETSTARTENDPCODEAH,0[RES+12],AH[RES+13],ALAH,0AL,[NUM1+7]AL,[NUM2+7]AH,0ADCMOVMOVMOVMOVADCADCMOVMOVRETSTARTENDPCODEAH,0[RES+12],AH[RES+13],ALAH,0AL,[NUM1+7]AL,[NUM2+7]AH,0[RES+14],AH[RES+15],ALENDSENDSTART②程序運行流程截圖:先反編譯找到RETF的IP-u.0C6B336Eec&B&B:&B;6B;6B6B6B6B6B-u.0C6B336Eec&B&B:&B;6B;6B6B6B6B6B6B88Z60C50AZ0D50B400AQG7Z01206G730S0D4008BZ60E50AZOF50CB460C8B1CFFuuuuccuuw^cB

MOMOMOMOADADMDMOREIMORSB[500C1,AH[500D1.ALAH.QQAL/26G7]4L』[36G7]AHjGG[5GQELAH[5G0FLAL81AL.SBAL.FF從IP=0000開始執行,在IP=00A2暫停,因為程序將相加的結果存在了res中,所以輸入:-dds:5000查看存儲單元q=QQQO0GA2X=0Q37BX=0000S=Q?6AES=075A6B:O0A2CBdds:50906A:506060356A:5010IEB86A:5QZ0?6606A:503001206A:5040B4066A:5050AZ056A:506026066A:5070D400X=0Q37BX=0000S=Q?6AES=075A6B:O0A2CBdds:50906A:506060356A:5010IEB86A:5QZ0?6606A:503001206A:5040B4066A:5050AZ056A:506026066A:5070D400CX=S朋3DX=OG06SP=0%OSS=GC76CS=0C6BIF=00的KETF0174 01 14 01 01-06 BE 0?0000 50 B6 6A 67-8E DH B43080 D4 66 88 26-G? 50 AZ1206 01 3G D4-GG 88 26AOGE 2Q 12 66 G2-36 80 D450B4 GO AG G3 2G-12 06 OG50位 G7 50 B4 O0-A0 04 208826 G8 5G A2 09-50 B4 00BP=000031=0000DI=0000NUUPEIPLZRNAPEMC005B0080665588fflllzo。z日0Q931A?z00080fc31A5588S200o0(3i7A4264口日&0BAZD&Z■Pt-■■5-■■&FF--&-p-k--08--■■■-0--pP■■■--&pP■■■■■&-可以看到,在每一個數之前都能看到進位00或01,對比num1和num2的數據,發現結果正確,說明代碼無誤。再執行-e2002-e3005看能否修改numl和num2數組中的值eZQOE6A:Z06EFl.Al*30656A:3066B3.10kdZ06(Z6忙ZQGO6A:201G6A:20eO6A:20

溫馨提示

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

評論

0/150

提交評論