微機原理與嵌入式系統(tǒng)試驗_第1頁
微機原理與嵌入式系統(tǒng)試驗_第2頁
微機原理與嵌入式系統(tǒng)試驗_第3頁
微機原理與嵌入式系統(tǒng)試驗_第4頁
微機原理與嵌入式系統(tǒng)試驗_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、/ 1BEIJING UNION UNIVERSITY/北京聯合大學信息學院微機原理與嵌入式系統(tǒng)報告姓名:劉仡凡班級 學號:2009080304429專業(yè):通信工程指導教師:劉瑞祥2011年11月18日實驗一 DOS環(huán)境下的匯編語言編程環(huán)境使用 (基礎與驗證型)一、實驗要求和目的1掌握匯編語言程序設計的基本方法和技能;2、 熟練掌握使用全屏幕編輯程序EDIT編輯匯編語言源程序;3、熟練掌握宏匯編程序 MASM的使用;4、熟練掌握連接程序 LINK的使用。二、軟硬件環(huán)境1硬件環(huán)境:微機 CPU 486以上,500MB以上硬盤,32M以上內存;2、軟件環(huán)境:裝有 MASM 5.0、DEBUG、LI

2、NK、EDIT、CREF.EXE 和 EXR2BIN.EXE 等應用程序。三、實驗內容與步驟1實驗內容編寫程序,在屏幕上顯示"Hello World!",該源程序取名為hello.asm 2、實驗步驟匯編語言程序設計上機過程如圖1.1所示。圖1.1匯編語言程序上機過程(一)用編輯程序 EDIT建立匯編語言源程序文件(ASM文件)在Windows 2000或者在 Windows XP環(huán)境下鼠標單擊 "開始”宀"運行”,在"運行”中輸入“ CMD 進入DOS模式,運行EDIT軟件,例如:C> EDIT hello.ASM進入EDIT的程序編輯

3、畫面時,輸入匯編語言源程序如下:DATA SEGMENTMSG DB'Hello World!', 0DH,0AH ,'$'定義數據段,并初始化待顯示的字符串DATA ENDSSTACK SEGMENT 'stack'DB100 DUP(O);定義堆棧段STACK ENDS- 1 - / 12CODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODE ;由ASSUME指令定義各段寄存器的內容START:MOVAX,DATAMOVDS,AXLEADX,MSGMOVAH,9;調用dos功能,顯示字符串INT21Hmovah,4

4、ch;返回 dos 狀態(tài)int21hCODE ENDSEND START(二)用匯編程序 MASM將ASM文件匯編成目標程序文件 (OBJ文件)當源程序建立以后, 仍以 hello.asm 程序為例, 我們用匯編程序 MASM 對 hello.asm 源程序文件進行匯 編,以便產生機器碼的目標程序文件 hello.obj ,其操作步驟如下:C>MASM hello.asmMicrosoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981985, 1987. All rights reserved.Obje

5、ct filename ABC.OBJ :Source listing NUL.LST :Cross-reference NUL.CRF :50674 + 450574 Bytes symbol space free0 Warning Errors0 Severe Errors(三)用連接程序LINK生成可執(zhí)行程序文件(EXE文件)經匯編后產生的二進制的目標程序文件 (OBJ 文件 )并不是可執(zhí)行程序文件 (EXE 文件 ),必須經連接以 后,才能成為可執(zhí)行文件。連接程序并不是專為匯編語言程序設計的。如果一個程序是由若干個模塊組成 的,也可通過連接程序 LINK 把它們連接在一起。這些模塊可以

6、是匯編程序產生的目標文件,也可以是高 級語言編譯程序產生的目標文件。連接過程如下:C>LINK hello.objMicrosoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Run File ABC.EXE :List File NUL.MAP :Libraries .LIB :(四)程序的執(zhí)行當我們建立了可執(zhí)行文件 hello.EXE 后,就可直接在 DOS 下執(zhí)行該程序: C>hello.exe 或者 hello從而顯示 Hello Wo

7、rld! 的結果四、實驗要求與提示1 、實驗要求( 1 )掌握匯編語言程序設計上機過程;匯編語言上機操作中,不同于 windows 操作系統(tǒng),需要進入“命令提示符”界面,- 3 - / 12- 5 - / 12通過命令代碼進行實際操作。(2 )回答思考問題;(3 )記錄實驗結果。練習通過“ debug”調試程序,如圖:C:KC: f 1JIDOWS syst »32 Vend, exe debug Basi&h. exenX=9BBB DS=0C37 6048:0030 PuHC4B:0B86 0C4S:0003 0C48:0005 0C4S:0009 SC4B:000E 0

8、048:000D 0048:000F 0C48:a011 »C4S:0013 gC48:0O15 HC48:0017 6C4B:001? 0048:001B 0C4»:0O1D HC4S:001FBX -=S000CX-0094 DX =3000SP-000SES=0C37SS=0C47 CS-0C48 IP-0000B8470CHOU AK,0C4?BS47BC 8ED8 8D1&0000B409CD21B44C CD21 00S0 0000 8000 0800 60Q0 0000 00000000UUAUTUTDDDDDDDDOOEONONDDDDDDDDMML

9、MIMIAAAAAAAAnX,0C47 DS網DM.00001 AH ,0921AH,4C 21BX+SI L tBX+STl.AL EX+81,AL tBX+Sl L BX+SI 1PAL tBX+SI l.AL tBX+Sl ,AL tBX+S11,ALBP=0003SI=0B00 DI-0S0BNU UP ET PL NZ NA PO HC六、思考與練習以及測評標準(1) 匯編過程中 MASM hello和MASM hello.ASM的結果是否一致。“ masm hello ”編譯對象沒有文件后綴,而“ masm hello.asm ”意為編譯“ hello.asm文件;(2) 連接過程

10、中 LINK hello和LINK hello.OBJ的結果是否一致?!?link hello”編譯對象沒有文件后綴,而“ link hello.obj”將會把“ hello.obj打包成可執(zhí)行文件,即:hello.exe ;(3) 使用Word如何錄入匯編語言源程序。存檔時,后綴改用“ .asm” ;實驗二Debug的使用(基礎與驗證型)一、實驗要求和目的熟練掌握動態(tài)調試程序 DEBUG的使用;二、軟硬件環(huán)境1、硬件環(huán)境:微機 CPU 486 以上, 500MB 以上硬盤, 32M 以上內存;2、軟件環(huán)境:裝有 MASM 5.0、Debug、LINK、EDIT、CREF.EXE和 EXR2B

11、IN.EXE等應用程序。三、實驗內容與步驟1、實驗內容進入和退出Debug程序(2) 學會Debug中的D命令、R命令、T命令、G命令、U命、Q命令等的使用。(3) 利用Debug,驗證程序中指令的功能和結果。(4) 使用Debug調試程序調試匯編程序。2、實驗步驟(1) 在DOS提示符下,進入 Debug程序。(2) 詳細記錄每一步所用的命令,以及查看結果的方法和具體結果。(3) 求從1開始連續(xù)50個奇數之和,并將結果存放在名字為 SUM的字存儲單元中。已匯編、連結生成 了可執(zhí)行文件test1.EXE,存放在d:MASM目錄下。請使用 Debug對其進行調試。調試過程DATASEGMENT;

12、定義數據段SUM DW0;定義變量并賦初值DATAENDSSTACKSEGMENTSTACK ;定義堆棧段DB200 DUP(0)STACKENDSCODESEGMENT;定義代碼段ASSUME DS:DATA,SS:STACK,CS:CODE ;由ASSUME指令定義各段寄存器的內容START: MOVAX,DATAMOVDS,AXMOVCX,5;累加次數MOVAX,0;存放累加和MOVBX,1NEXT: ADDAX,BXINCBXINCBXDEC CXJNENEXTMOVSUM,AX;存放最終累加結果MOVAH,4CHINT 21H;返回 dos 狀態(tài)CODE ENDSENDSTART進入

13、Debug并裝入可執(zhí)行文件 test1.EXED:MASM>Debug test1.EXE<Enter>觀察寄存器初始狀態(tài)-R <Enter>注:(1) 以上顯示的寄存器值,可能和你的電腦顯示的不一樣。(2) Debug中默認的進制疋十八進制。 觀察數據段中相應位置的值-D數據段:偏移地址 <Enter> 使用U命令反匯編-U從程序存放的位置開始 <Enter> 使用T命令進行單步執(zhí)行觀察結果 使用G命令執(zhí)行-G地址(程序終止的偏移地址處)<Enter>四、實驗要求與提示1實驗要求(1 )熟練掌握Debug的命令;(2)熟練掌握

14、使用 Debug調試匯編程序;(3 )回答思考問題;(4 )記錄實驗結果。2、實驗提示一般使用Debug調試匯編程序的步籌如下:(1) 調用DEBUG,裝入用戶程序(2) 觀察寄存器初始狀態(tài)(3) 以單步工作方式開始運行程序(4) 觀察用戶程序數據段初始內容(5) 連續(xù)工作方式運行程序"C: WIHDOWSsyst en32 kod.exe - debug d:>asB.h2- exeBEIDBX=8001CX-000SDX=0000SP-09CSBP=0Q98SI=SBSa DI=9008DS=0C47ES-0C37SS=0C48CS-0CS5IP =0010NV UP El

15、PL 忖忑 NA P0 NC0055=0010 -t43INCBKAX=0001耐 eoazCX=0005M-0000SP=00C8BP=0000SI=0000 DI=0000DS=0C47ES=0C37SS=0C48CS=0C55IP=0011HU UP ElPL HZ NA P0 NC0055:001143INCBX-tAK=0001m=0003CK=0005DK=O0OBSF=00C8BP=8B0B81=0000 DI=0000DS=0C47ES-BC37SS=0C4SCS =0IC56IP-0012NU UP ElPL NZ NA PE NCBC5S:R01249DECCX-tAX=0

16、001BX=0003CX-0004DX =31000£P=09CSBP=0008SI=8989DI=000S1)S=0C47ES=0C37SS=0C48CS=0C55IP=0013HU UP ElPL NZ NA P0 HC0C55:0013 -t75F9JNZ000EAK=0001BX=8OB3CX=0004DX=0000SP=00G8BP=0000SI=0000 DI=0000to£=0C47ES=0C37SS=0C4flCS=0055IP=000EHU UP ElPL HZ 附 P0 NCUC55:m0ES3C3ADDAX,BX0 0- _w 0 0- 0 -B 00

17、 0 0 0 0 0 0 000 0 00 00 0 00 0 00 0 0 0 00000 000 00000 0 0 0 00 0 0 0 0 0 00 _w 0 0 0- 0- 0 0 0 0-0 0 000 0 0 00 0 0 0 0 0 _0 _0 0 0 0 _0 0 0 _0 _0 -0 0- 0 0 0 -M-一 00 _0 0 _0 0- 0- 0- 0 0 _0 -0 0- 0- 0- 015五、思考與練習以及測評標準(1) 如何啟動和退出 Debug程序。(2) 整理每個Debug命令使用的方法,實際示例及執(zhí)行結果。(3) 啟動Debug后,要裝入某一個.EXE文件,應

18、通過什么方法實現?實驗三分支程序設計知識提要:本部分內容主要對分支程序加以介紹,其知識要點:1.無條件轉移指令 JMP無條件轉移指令JMP是使程序無條件轉移至目標處,又分為段內轉移、段間轉移。2 .條件轉移指令JXX條件轉移指令可分為三大類:1 )簡單條件轉移指令指令。根據單個標志位的狀態(tài)判斷轉移條件。標志位指令轉移條件意義CFJCCF=1有進位/借位JNCCF=0無進位/借位ZFJE/JZZF=1相等/等于0JNE/JNZZF=0不相等/不等于0SFJSSF=1是負數JNSSF=0是正數OFJOOF=1有溢出JNOOF=0無溢出PFJP/JPEPF=1有偶數個1JNP/JPOPF=0有奇數個

19、12)無符號數條件轉移指令。假設在條件轉移指令前使用比較指令,比較兩個無符號數A, B,指令進行的的操作是 A-B,其轉移指令如下:指令轉移條件意義JA/JNBECF=0 AND ZF=0A>BJAE/JNBCF=0 OR ZF=1A>=BJB/JNAECF=1 AND ZF=0A<BJBE/JNACF=1 OR ZF=1A<=B3)帶符號數條件轉移指令。指令轉移條件意義JG/JNLESF=OF AND ZF=0A>BJGE/JNLSF=OF OR ZF=1A>=BJL/JNGESF OF AND ZF=0A<BJLE/JNGSF OF OR ZF=1

20、A<=B一、實驗要求和目的1熟悉匯編語言程序設計結構;2 熟悉匯編語言分支程序基本指令的使用方法;3掌握利用匯編語言實現單分支、雙分支、多分支的程序設計方法。、軟硬件環(huán)境1.硬件環(huán)境:微機 CPU 486以上,500MB以上硬盤,32M以上內存;2 .軟件環(huán)境:裝有 MASM 5.0、DEBUG LINK和EDIT等應用程序。三、實驗內容與步驟1實驗內容(1 )編寫計算下面函數值的程序:1,x0y = « 0, x = 01,x cO設輸入數據為X、輸出數據Y,且皆為字節(jié)變量,使用Debug查看X、Y兩個變量的數據0的數的(2)以ARRAY為首地址的內存單元中,存放若干個8位的

21、帶符號數,統(tǒng)計數組中大于等于個數,并將結果存入 RESULT字節(jié)單元中。2.實驗步驟(1) 編寫程序(2) 對程序進行debug調試,觀察中間結果四、實驗要求1實驗要求(1)畫出各程序流程圖;出口- 9 - / 12(2)列出程序清單,加上適量注釋;data segme ntxx dw 12yy dw data endsstack segment stack 'stack'db 100h dup (?)stack endscode segmentassume cs:code,ds:data,ss:stack start:mov ax,datamov ds,ax將 xx 轉移給

22、ax與 0 比較大于等于 0,轉 bigpr轉 equprmov ax,xxcmp ax,0 xjge bigpr xmov yy,0ffffhjmp exit bigpr:je equpr x=0,mov yy,1jmp exitequpr:mov yy,0 exit: mov ax,4chint 21hcode endsend start(3) 記錄實驗結果。-13- / 12C: f llDOWSXsyst eB32c>Ld. exe debug d: MasMhe. exeG:H)X=0M4C 醐=0000 S=0C3E ES=0G2E C3F:002fl CD21 d 0c3e

23、C3E:0C30C3E:0C406964C3E:0C50 6E 64 C3E:0C68?20DC3E:0C702069C3E:0C80 &F 6E C3E:0C907415C3E:0CA0 M 28 C3E:0CBO 74 69 d Uc3e : (dldtmC3E=OB00 0C 00 C3E:0010 B8 3E C3E:002000FFC3E:B03090C7C3E:0040 ?C 26 C3E:0050 EB 1A C3E:00S0 3B C8 C3E=007000BBCX=003C DXSP=0100SS=0C42 CS=0C3F IP=002fiI NT 21BP=0000

24、81=0000 DT=0000HU UP El PL HZ NA PE NG五、實驗的收獲和體會CA705E15 40127636 1D A34 5 5D 1007542661 62 0E S343 7525 3165 5774 6529 3A20 £965 6C-2079 6E-7472 72-6520 25-32&5 64-5472 20-6E2A 14-4373 20-25E1EDS551666066736F7874 0A7577720DC5F5D15-M 6?664662 1F24E344 66776577 621591E5 S767S664 05432450 26 6576 G1 40 0 560 2A 72214270idLLabe 1 not Fou nd.Syntax erro r-.Current date is 胃 1. .SunN nT tie Ue dl huFr iS a t .Enter net? date Cxl>:Current t ine is M E1 CF 6 0 54 400F0OOS700EB2D17000DE12081RE

溫馨提示

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

評論

0/150

提交評論