




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院實(shí)驗(yàn)報(bào)告課 程:匯編語言程序設(shè)計(jì)專業(yè)班級(jí): 學(xué) 號(hào): 姓 名: 實(shí)驗(yàn)一 Debug程序的使用一. 實(shí)驗(yàn)?zāi)康?、熟悉DEBUG程序中的命令,學(xué)會(huì)在DEBUG下調(diào)試運(yùn)行匯編語言源程序。2、掌握8086/8088的尋址方式及多字節(jié)數(shù)據(jù)的處理方法。二. 實(shí)驗(yàn)內(nèi)容1、利用DEBUG程序中的“E”命令,將兩個(gè)多字節(jié)數(shù)“003F1AE7H”和“006BE5C4H”分別送入起始地址為DS:0200H和DS:0204H兩個(gè)單元中。2、分別用直接尋址方式和寄存器間接尋址方式編寫程序段,實(shí)現(xiàn)將DS:0200H單元和DS:0204H單元中的數(shù)據(jù)相加,并將運(yùn)算結(jié)果存放在DS:0208H單元中
2、。要求:本次實(shí)驗(yàn)的內(nèi)容均在DEBUG下完成,實(shí)現(xiàn)數(shù)據(jù)的裝入、修改、顯示;匯編語言程序段的編輯、匯編和反匯編;程序的運(yùn)行和結(jié)果檢查。三. 實(shí)驗(yàn)過程和程序1、啟動(dòng)DOS操作系統(tǒng)2、運(yùn)行DEBUG.COM程序(若當(dāng)前盤為C) C:DEBUG ;(“”為DEBUG提示符,僅當(dāng)屏幕出現(xiàn)該提示符后,才可輸入DEBUG命令)3、用“A”命令編輯和匯編源程序 A 186E:0100 MOV AX,0200 186E:0103 MOV BX,0202 186E:0107 ADD AX,0204 186E:010B ADC BX,0206 186E:010F MOV 0208,AX 186E:0112 MOV 0
3、20A,BX 186E:0116 4、用“U”命令反匯編驗(yàn)證源程序 U CS:0100 186E:0100 A10002 MOV AX,0200 186E:0103 8B1E0202 MOV BX,0202 186E:0107 03060402 ADD AX,0204 186E:010B 131E0602 ADC BX,0206 186E:010F A30802 MOV 0208,AX 186E:0112 891E0A02 MOV 020A,BX 186E:0116 注意:l 檢查源程序是否有錯(cuò)誤,若有則返回到第3步用“A 地址”命令進(jìn)行修改,直到程序無錯(cuò)誤。l DEBUG約定在其命令或源程序
4、中所涉及到的數(shù)據(jù)均被看作十六進(jìn)制數(shù),其后不用“H”說明。l 在DEBUG下,源程序中不能使用“標(biāo)號(hào)”、“變量”和一些偽指令。l 在DEBUG下,大小寫不敏感。5、程序未執(zhí)行前,用“R”命令觀察,相關(guān)寄存器的內(nèi)容。R如:(AX)= 0000H,(BX)= 0000H,(SI)= 0000H, (DI)= 0000H,(CS)= 13F5H,(IP)= 0100H。6、在程序未執(zhí)行前,用“D”命令觀察DS:0200H,DS:0204H、DS:0208H單元的內(nèi)容 D 200 20B 7、用“G”命令運(yùn)行源程序 G =100 0116 8、再用“D”命令觀察DS:0200HDS:020BH字節(jié)單元中
5、的內(nèi)容 D 200 20B9、用“T”單步操作命令對(duì)源程序單步執(zhí)行,觀察AX、BX、CS、IP寄存器內(nèi)容的變化,并與預(yù)計(jì)的結(jié)果相比較。注意:l D命令顯示內(nèi)存數(shù)據(jù),注意觀察多字節(jié)數(shù)據(jù)在內(nèi)存中的存放方式。l 指令執(zhí)行的時(shí)候,IP寄存器隨著變化,注意觀察。(六)實(shí)驗(yàn)結(jié)果分析1、程序運(yùn)行結(jié)果:(AX)= 1110H ,(BX)= 1111H DS:0208H四字節(jié)單元的內(nèi)容: 11111110H SI200HDI204HBX208HAX SIDXSI+2AXAX+DIDXDX+DI+2 BX(AX)BX+2(DX)開始結(jié)束2、試用寄存器間接尋址方式編寫程序段,完成上述程序段的功能。(參考下列程序流程
6、圖)四. 實(shí)驗(yàn)結(jié)果(包括必要的截圖)五. 實(shí)驗(yàn)體會(huì)通過這次實(shí)驗(yàn)的聯(lián)系,我熟悉了一些DEBUG程序中的命令,并且學(xué)會(huì)在DEBUG下調(diào)試運(yùn)行匯編語言源程序掌握8086/8088的尋址方式及多字節(jié)數(shù)據(jù)的處理方法,我自己動(dòng)手實(shí)現(xiàn)了簡(jiǎn)單的計(jì)算,中間出現(xiàn)了很多錯(cuò)誤,但在查閱書本以及在老師的幫助下完成了實(shí)驗(yàn)任務(wù)。實(shí)驗(yàn)二 匯編語言程序設(shè)計(jì)(順序、循環(huán))一. 實(shí)驗(yàn)?zāi)康?、掌握順序和循環(huán)程序結(jié)構(gòu)和設(shè)計(jì)方法;2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行8086/8088匯編語言程序的過程。二. 實(shí)驗(yàn)內(nèi)容1、X、Y、Z、V均為字變量,在X、Y、Z、V字單元中存放是16位帶符號(hào)數(shù)。試編寫匯編語言程序完成以下功能:計(jì)算
7、表達(dá)式值(V(X*Y+Z-720)/X;將上述表達(dá)式運(yùn)算結(jié)果整數(shù)放在SUM1單元,余數(shù)放在SUM2單元。2、求一個(gè)班50名學(xué)生成績(jī)的平均值(附加題:最大值和最小值,并將結(jié)果顯示出來)3、從鍵盤讀入一個(gè)字符串,以Enter結(jié)束,字符串不超過50個(gè)字符,并打印該字符串(附加題:查找中間是否有asm子串。如果有,輸出Yes;否則,輸出No)。三. 實(shí)驗(yàn)過程和程序(1)code segment assume cs:code,ds:code x dw 02d0h y dw 1h z dw 0ffffh v dw 02d0h SUM1 dw ? SUM2 dw ? sum dw ?start:mov ax
8、,code mov ds,ax mov ax,x imul y mov cx,ax mov bx,dx mov ax,z cwd add cx,ax adc bx,dx sub cx,2d0h sbb bx,0 mov ax,v cwd sub ax,cx sbb dx,bx idiv x mov SUM1,ax mov SUM2,dx mov ah,4ch int 21hcode ends end start(2)code segment assume cs:code,ds:code str db 10 dup (3ah,2dh,60h,5ah,4ch) start:mov ax,code
9、mov ds,ax mov bx,0h mov si,bx mov cx,32h mov ax,0hnext: add al,strsi adc ah,0h inc si loop next mov bl,32h idiv bl mov dl,al mov dh,ah mov ah,4ch int 21hcode ends end start(3)code segment assume cs:code,ds:code str db 50,?,50 dup (?); cr db 0dhstart:mov ax,code mov ds,ax mov cx,32h mov dl,0 mov si,2
10、next: mov ah,1 int 21h cmp al,cr ; jz et mov strsi,al inc si inc dl loop next; et: mov str+1,dl mov strsi+1,'$' mov ax,seg str+2 mov ds,ax mov dx,offset str+2 mov ah,9 int 21 mov ah,4ch int 21hcode ends end start四. 實(shí)驗(yàn)結(jié)果(包括必要的截圖)1.2.3.五. 實(shí)驗(yàn)體會(huì)通過這次實(shí)驗(yàn)的訓(xùn)練,我基本掌握了順序和循環(huán)程序結(jié)構(gòu)和設(shè)計(jì)方法,并且可以自己動(dòng)手在debug下運(yùn)用順序和
11、循環(huán)的程序結(jié)構(gòu)自己設(shè)計(jì)匯編的代碼,另外這節(jié)課我還學(xué)會(huì)了在在屏幕上輸入和輸出字符串,非常的有趣,順便我又熟悉了一遍在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行8086/8088匯編語言程序的過程。實(shí)驗(yàn)三 匯編語言子程序設(shè)計(jì)(分支、子程序)一. 實(shí)驗(yàn)?zāi)康?、掌握分支和子程序結(jié)構(gòu)和設(shè)計(jì)方法;2、熟悉在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行8086/8088匯編語言程序的過程。3、通過匯編語言了解高級(jí)語言的參數(shù)傳遞等知識(shí)。二. 實(shí)驗(yàn)內(nèi)容1、1. BL中的只有一位為1。編寫程序測(cè)試,并輸出提示信息“The X Bit is 1”,要求:地址表和轉(zhuǎn)移表。2. 編寫一個(gè)子程序計(jì)算z=f(x,y)=x*y+x-y(x
12、,y,z有符號(hào)數(shù)內(nèi)存數(shù))。要求通過堆棧(寄存器、內(nèi)存)傳送所有參數(shù)。三. 實(shí)驗(yàn)過程和程序?qū)嶒?yàn)一地址表: jmp outputfunc6:lea dx,msg6 jmp outputfunc7:lea dx,msg7 jmp outputfunc8:lea dx,msg8 jmp outputoutput: mov ah,9 int 21hmov ah,4chint 21hcseg endsend startjc jumpmov bx,0again:shr num,1jmp nextjump:jmp addrtblbxnext:add bx,2jmp againfunc1:lea dx,msg1
13、 jmp outputfunc2:lea dx,msg2 jmp outputfunc3:lea dx,msg3 jmp outputfunc4:lea dx,msg4 jmp outputfunc5:lea dx,msg5 dseg segmentmsg1 db 'The one Bit is 1','$'msg2 db 'The two Bit is 1','$'msg3 db 'The three Bit is 1','$'msg4 db 'The four Bit is 1'
14、,'$'msg5 db 'The five Bit is 1','$'msg6 db 'The six Bit is 1','$'msg7 db 'The seven Bit is 1','$'msg8 db 'The eight Bit is 1','$'num db 1addrtbl dw func1,func2,func3,func4,func5,func6,func7,func8dseg endscseg segmentassume ds:ds
15、eg,cs:csegstart:mov ax,dsegmov ds,ax 轉(zhuǎn)移表:data segment s1 db 'The one Bit is 1','$' s2 db 'The two Bit is 1','$' s3 db 'The three Bit is 1','$' s4 db 'The four Bit is 1','$' s5 db 'The five Bit is 1','$' s6 db 'The si
16、x Bit is 1','$' s7 db 'The seven Bit is 1','$' s8 db 'The eight Bit is 1','$'data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov bl,80h mov cx,8 mov si,0next: ror bl,1 ;循環(huán)右移 jc skit ;若該位為1,則轉(zhuǎn)移 jmp skit1skit: mov dx,si ;si*3 shl dx,
17、1 add dx,si add dx,offset jmptable jmp dxskit1: inc si loop nextjmptable: ;轉(zhuǎn)移 jmp l1 jmp l2 jmp l3 jmp l4 jmp l5 jmp l6 jmp l7 jmp l8 ;org $+80hl1: lea dx,s1 jmp etl2: lea dx,s2 jmp etl3: lea dx,s3 jmp etl4: lea dx,s4 jmp etl5: lea dx,s5 jmp etl6: lea dx,s6 jmp etl7: lea dx,s7 jmp etl8: lea dx,s8 et
18、: mov ah,9 int 21h mov ah,4ch int 21hcode ends end start實(shí)驗(yàn)2 dseg segmentx dw 2y dw 3w label wordz dd ?dseg endssseg segment stack dw 512 dup (?)sseg endscseg segmentassume ds:dseg,cs:cseg,ss:ssegstart:mov ax,dsegmov ds,axsub sp,4push xpush ycall proc1pop wpop w+2mov ah,4hint 21hproc1 procpush bpmov
19、bp,sppush axpush bxpush cxpush dxmov ax,word ptrbp+6imul word ptrbp+4mov bx,axmov cx,dxmov ax,word ptrbp+6cwdadd bx,axadc cx,dxmov ax,word ptrbp+4cwdsub bx,axsbb cx,dxmov bp+10,cxmov bp+8,bxpop dxpop cxpop bxpop axpop bpret 4proc1 endpcseg ends end start四. 實(shí)驗(yàn)結(jié)果(包括必要的截圖)地址表:轉(zhuǎn)移表實(shí)驗(yàn)2 五. 實(shí)驗(yàn)體會(huì)通過這次實(shí)驗(yàn)的練習(xí),我掌
20、握分支和子程序結(jié)構(gòu)和設(shè)計(jì)方法,特別是地址表和轉(zhuǎn)移表的運(yùn)用,已經(jīng)可以熟練的運(yùn)用轉(zhuǎn)移表和地址表進(jìn)行分支結(jié)構(gòu)的設(shè)計(jì),實(shí)驗(yàn)二又讓我對(duì)子程序參數(shù)的調(diào)用有了深刻的體會(huì),知道了在運(yùn)用堆棧進(jìn)行參數(shù)傳遞時(shí)需要注意的要點(diǎn),另外這次實(shí)驗(yàn)又讓我再一次熟悉一遍在PC機(jī)上建立、匯編、連接、調(diào)試和運(yùn)行8086/8088匯編語言程序的過程。實(shí)驗(yàn)四 匯編語言高級(jí)編程專題一. 實(shí)驗(yàn)?zāi)康?、匯編語言宏程序設(shè)計(jì);2、 掌握中斷服務(wù)子程序的編寫。3、 匯編語言與高級(jí)語言的混編。二. 實(shí)驗(yàn)內(nèi)容1、編寫一個(gè)宏,求三個(gè)數(shù)的最小數(shù),原型為:MIN3 x,y,z,min2、掛接1CH中斷,正計(jì)時(shí)60秒后退出。要求屏幕顯示0-59的秒數(shù)。三. 實(shí)
21、驗(yàn)過程和程序?qū)嶒?yàn)1min3 macro x,y,z,min local skip,done mov ax,x cmp ax,y jle skip1 mov ax,yskip1: cmp ax,z jle done mov ax,zdone: mov min,ax endmdseg segmentmin dw "?"dseg ends cseg segmentassume ds:dseg,cs:csegstart: mov ax,dseg mov ds,ax min3 2,3,4,min mov ah,4ch int 21hcseg ends end start實(shí)驗(yàn)2INTN
22、O EQU 1CH USEINT = 1 DATA SEGMENT OLDISR DW ?,? TIMER DB 100 COUNTER DW 59 COUNT DW 0 ISDONE DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,0 MOV ES,AX ;PROTECT IF USEINT MOV AL, INTNO MOV AH,35H INT 21H ;ES:BX MOV OLDISR0, BX MOV AX,ES MOV OLDISR2, AX ELSE CLI
23、 MOV AX, ES:INTNO*4 MOV OLDISR0,AX MOV AX,ES:INTNO*4+2 MOV OLDISR2, AX STI ENDIF ;SET NEW ISR IF USEINT PUSH DS MOV AX, SEG ISR MOV DS,AX MOV DX, OFFSET ISR MOV AL, INTNO MOV AH, 25H INT 21H POP DS ELSE CLI MOV WORD PTR ES:INTNO*4, OFFSET ISR MOV WORD PTR ES:INTNO*4+2,SEG ISR STI ENDIF ;WAIT HEREWAITHERE: CMP ISDONE,1 JNZ WAITHERE EXIT: ;RESTORE IF USEINT PU
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《Poems》作業(yè)設(shè)計(jì)方案
- 2023年高考真題全國乙卷物理試卷解析版
- 濺射壓力傳感器產(chǎn)業(yè)分析報(bào)告
- 黨支部2024年黨建工作總結(jié)模板
- 倉庫無償使用合同范本
- 原煤洗選合同范例
- 書籍無償贈(zèng)與合同范本
- 心血管內(nèi)科模擬試題及答案
- 美容師中級(jí)模擬考試題+參考答案
- 個(gè)人年終工作總結(jié)開頭和結(jié)尾
- 學(xué)生創(chuàng)新能力培養(yǎng)方案計(jì)劃
- 《西門子PLC應(yīng)用》一體化教案1-20周全篇
- 新蘇教版一年級(jí)科學(xué)下冊(cè)第一單元第1課《撿石頭》課件
- 2.2學(xué)會(huì)管理情緒 課件 -2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)下冊(cè)
- 2025年湖北省技能高考(建筑技術(shù)類)《建筑材料與檢測(cè)》模擬練習(xí)試題庫(含答案)
- 開展課外讀物負(fù)面清單管理的具體實(shí)施舉措方案
- 《智能網(wǎng)聯(lián)汽車智能傳感器測(cè)試與裝調(diào)》電子教案
- GB/T 2423.17-2024環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Ka:鹽霧
- 2023年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院高職單招(英語)試題庫含答案解析
- 法蘭蝶閥螺栓配用表正式版
- 電子舌技術(shù)在普洱茶品質(zhì)識(shí)別中應(yīng)用的研究
評(píng)論
0/150
提交評(píng)論