合肥工業(yè)大學(xué)匯編語(yǔ)言實(shí)驗(yàn)報(bào)告_第1頁(yè)
合肥工業(yè)大學(xué)匯編語(yǔ)言實(shí)驗(yàn)報(bào)告_第2頁(yè)
合肥工業(yè)大學(xué)匯編語(yǔ)言實(shí)驗(yàn)報(bào)告_第3頁(yè)
合肥工業(yè)大學(xué)匯編語(yǔ)言實(shí)驗(yàn)報(bào)告_第4頁(yè)
合肥工業(yè)大學(xué)匯編語(yǔ)言實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、姓 實(shí)驗(yàn)一 Debug程序的使用1 / .一.實(shí)驗(yàn)?zāi)康?、熟悉DEBUG程序中的命令,學(xué)會(huì)在DEBUG下調(diào)試運(yùn)行匯編語(yǔ)言源程序。2、掌握8086/8088的尋址方式與多字節(jié)數(shù)據(jù)的處理方法。二.實(shí)驗(yàn)容DEBUG分別送入起始地址為DS:0200H和DS:0204H兩個(gè)單元中。2、分別用直接尋址方式和寄存器間接尋址方式編寫(xiě)程序段,實(shí)現(xiàn)將 DS:0200H單元和DS:0204H單元中的數(shù)據(jù)相加,并將運(yùn)算結(jié)果存放在DS:0208H單元中。要求:本次實(shí)驗(yàn)的容均在DEBUG下完成,實(shí)現(xiàn)數(shù)據(jù)的裝入、修改、顯示;匯編語(yǔ)言程序段的編輯、匯編和反匯編;程序的運(yùn)行和結(jié)果檢查。三.實(shí)驗(yàn)過(guò)程和程序 2 / 四.實(shí)驗(yàn)結(jié)果(

2、包括必要的截圖)3 / 4 / 五.實(shí)驗(yàn)體會(huì)一.實(shí)驗(yàn)?zāi)康腄ata segmentX dw 15 / .Z dw -1V dw 1Sum1 dw ?Sum2 dw ?Data endsCode segmentAssume cs:code ds:dataStart:mov ax,dataMov ds,axMov ax,xMov bx,yImul bx;x*yMov cx,axMov bx,dxMov ax,zCwd;x*y+zAdd cx,axAdc bx,dxSub cx,720Sbb bx,0Mov ax,vCwd;x*y+z-720;v-(x*y+z-720)Sub ax,cxSbb dx,

3、bxMov bx,xIdiv bx;(v-(x*y+z-720)/xMov sum1,axMov sum2,dx;sum1 存商,sum2 存余數(shù)mov bx,sum1mov ch,4mov cl,4again: rol bx,clmov dl,bl6 / .and dl,0fhcmp dl,0ahjl nextadd dl,37h;A-Fjmp downnext: add dl,30h;0-9down:mov ah,2int 21hdec chjnz againmov dl,23h;#mov ah,2int 21hmov bx,sum2mov ch,4mov cl,4again1: rol

4、bx,clmov dl,bland dl,0fhcmp dl,0ahjl next1add dl,37h;A-Fjmp down1next1: add dl,30h;0-9down1:mov ah,2int 21hdec chjnz again1Mov ax,4c00hInt 21hCode ends7 / .End start2.data segmentgrade db 61,73,82,90,100,45 dup(70)avg1 db ? ;平均值的商avg2 db ? ;平均值的余數(shù)max db ? ;最大值min db ? ;最小值data endscode segmentassume

5、 cs:code,ds:datastart: mov ax,datamov ds,axmov si,0mov bx,0mov cx,50mov ax,0l1:mov al,gradesicbwadd bx,axinc siloop l1mov ax,bxmov bl,50div blmov avg1,almov avg2,ahmov si,0 ;找最大值mov cx,50mov al,grade0again0:ja next0mov al,gradesicmp al,gradesi8 / .next0: inc siloop again0mov max,almov si,0 ;找最小值mov

6、cx,50mov al,grade0again1:jna next1mov al,gradesinext1: inc sicmp al,gradesiloop again1mov min,almov bl,avg1 ;平均值的商call submov dl,23h;#分開(kāi)不同數(shù)據(jù)mov ah,2int 21hmov bl,avg2 ;平均值的余數(shù)call submov dl,23h;#分開(kāi)不同數(shù)據(jù)mov ah,2int 21hmov bl,max;最大值call submov dl,23h;#分開(kāi)不同數(shù)據(jù)mov ah,2int 21hmov bl,min;最小值9 / .call submov

7、 ax,4c00hint 21hsub procmov ch,2mov cl,4again2:rol bl,clmov al,bland al,0fhcmp al,0ahjl next2add al,37h;A-Fjmp down1next2: add al,30h;0-9down1: mov dl,almov ah,2int 21hdec chjnz again2retsub endpcode endsend start3.data segmentbuf db 50 ;定義緩沖區(qū)db 40db 40 dup(0)crlf db 0dh,0ah,$ ;回車換行data ends / .stac

8、k segment stackdb 100 dup(0)stack endscode segmentassume ds:data, ss:stack, cs:codestart: mov ax,datamov ds,axlea dx,bufmov ah,10int 21h;輸入字符串lea dx,crlfmov ah,9int 21h;輸出換行mov bl,buf+1mov bh,0;計(jì)算字符串實(shí)際字符個(gè)數(shù);在串尾補(bǔ)入$mov byte ptr buf+2bx, $lea dx,buf+2mov ah,9int 21h;輸出字符串mov ah,4chint 21hcode endsend st

9、art四.實(shí)驗(yàn)結(jié)果(包括必要的截圖)第1題截圖 / 第3 / 五.實(shí)驗(yàn)體會(huì)一.實(shí)驗(yàn)?zāi)康?. 實(shí)踐C Asm的轉(zhuǎn)換過(guò)程。Data segment / .S1 DB The 1 Bit is 1$S2 DB The 2 Bit is 1$S3 DB The 3 Bit is 1$S4 DB The 4 Bit is 1$S5 DB The 5 Bit is 1$S6 DB The 6 Bit is 1$S7 DB The 7 Bit is 1$S8 DB The 8 Bit is 1$Data endscode segmentassume cs:code, ds:datastart:mov ax,

10、datamov ds,axmov dx,0;-輸入BL-MOV BL, 00001000BMOV AL,BL;-循環(huán)開(kāi)始-MOV CX, 8GOGO:SHL AL,1;-跳轉(zhuǎn)-JC EXITadd dx,3LOOP GOGO;*EXIT:MOV AH,9LEA SI,JMPTABLEADD SI,DXJMP SIJMPTABLE:JMP NEAR PTR L1JMP NEAR PTR L2JMP NEAR PTR L3 / .JMP NEAR PTR L4JMP NEAR PTR L5JMP NEAR PTR L6JMP NEAR PTR L7JMP NEAR PTR L8L1:L2:L3:L

11、4:L5:L6:L7:L8:LEA DX,S1JMP DONELEA DX,S2JMP DONELEA DX,S3JMP DONELEA DX,S4JMP DONELEA DX,S5JMP DONELEA DX,S6JMP DONELEA DX,S7JMP DONELEA DX,S8DONE:INT 21Hmov ah, 4chint 21hcode endsend start2. / .;堆棧傳遞Stacksegmentdw 512 dup(?)endsStackDatasegmentx dw 4y dw 4z dw ?DataCodeendssegmentassume cs:code, d

12、s:data, ss:stackstart:mov ax,datamov ds,axsub sp,2mov ax,xpush axmov ax,ypush axcall P1pop zmov ax,zmov bx,axmov dx,0mov ch,4mov cl,4again: rol bx,clmov al,bland al,0fhcmp al,0ahjl nextadd al,37hjmp downnext: add al,30h / .down: mov dl,almov ah,2int 21hdec chjnz againmov ah,4chint 21hP1proc nearpush

13、 bpmov bp,sppush axpush bxpush cxpush dxmov ax,6bp;x的值mov bx,4bp;y的值imul bx;x*ymov cx,dx ;x*y+xmov bx,axmov ax,6bpcwdadd bx,axadc cx,dxmov ax,4bp ;x*y+x-ycwdsub bx,axsbb cx,dxmov 8bp,bxpop dxpop cxpop bx / .pop axpop bpret 4P1 endpCode endsend start;寄存器傳遞Stacksegmentdw 512 dup(?)StackDataendssegment

14、x dw 4y dw 4z dw ?DataCodeendssegmentassume cs:code, ds:data, ss:stackstart:mov ax,datamov ds,axmov ax,xmov bx,ycall P1mov z,bx; bx做出口參數(shù)mov bx,z;方便查看輸出是否正確mov dx,0mov ch,4mov cl,4again: rol bx,clmov al,bland al,0fhcmp al,0ah / .jl nextadd al,37hjmp downnext: add al,30hdown: mov dl,almov ah,2int 21hd

15、ec chjnz againmov ah,4chint 21hP1proc nearpush axpush cximul bxmov cx,dxmov bx,axmov ax,xcwdadd bx,axadc cx,dxmov ax,ycwdsub bx,axsbb cx,dxpop cxpop axretP1 endpCode endsend start / 四.實(shí)驗(yàn)結(jié)果(包括必要的截圖)第 1 題截圖 / 五.實(shí)驗(yàn)體會(huì)一.實(shí)驗(yàn)?zāi)康?/ .mov ax,ynext0: cmp ax,zjl down0mov ax,zdown0:mov min,axendmdata segmentx dw 1

16、3y dw 15z dw 16min dw ?data endscode segmentassume cs:code,ds:datamov ax,datamov ds,axstart:MIN3 x,y,z,minmov bx,minmov ch,4mov cl,4again:rol bx,clmov al,bland al,0fhcmp al,0ahjl nextadd al,37h;A-Fjmp downnext:down:add al,30h;0-9mov dl,almov ah,2int 21hdec ch / .jnz againmov ah,4chint 21hcode endsen

17、d start2.;匯編 掛接1CH中斷,正計(jì)時(shí)60秒后退出DATA SEGMENTOLDISR DW ?,?TIMER DB 100COUNTER DW 0ISDONE DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,0MOV ES,AXCLIMOV AX,ES:1CH*4 ;保存原中斷向量MOV OLDISR0,AXMOV AX,ES:1CH*4+2MOV OLDISR2,AXMOV WORD PTR ES:1CH*4,OFFSET ISR ;設(shè)置新中斷向量MOV WORD P

18、TR ES:1CH*4+2,SEG ISRSTIDELAY:CMP ISDONE,1JNZ DELAYCLIMOV AX,OLDISR0 ; 恢復(fù)原中斷向量MOV ES:1CH*4,AXMOV AX,OLDISR2 / .MOV ES:1CH*4+2,AXSTIMOV AH,4CHINT 21HISR PROC FARPUSH DXPUSH AXMOV AX,DATAMOV DS,AXSTIINC TIMER ; 執(zhí)行新中斷處理CMP TIMER,1000/55DONEMOV TIMER,0MOV AH,2MOV DL,0DHINT 21HMOV AX,COUNTER ;打印時(shí)間MOV DL,10DIV DLMOV DH,AHMOV DL,ALMOV AH,2ADD DL,30HINT 21HMOV DL,DHADD DL,30HINT 21HINC COUNTERCMP COUNTER,60JL DONEMOV ISDONE,1DONE: PUSHFCALL DWORD PTR OLDISR ;調(diào)用原中斷處理CLI / .POP AXPOP DXIRET ;中斷返回ISR ENDPCODE ENDSEND START3.#include #include using namespace std;void main()

溫馨提示

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