




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院實(shí)驗(yàn)報(bào)告課程:匯編語言程序設(shè)計(jì)-可編輯修改-專業(yè)班級:*-可編輯修改 -學(xué)號:姓名:實(shí)驗(yàn)一 3實(shí)驗(yàn)二實(shí)驗(yàn)三12實(shí)驗(yàn)四-22*目錄實(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、 分別用直接尋址方式和寄存器間接尋址方式編寫程序段,
2、實(shí)現(xiàn)將 DS:0200H 單元和 DS:0204H 單元中的數(shù)據(jù)相加, 并將運(yùn)算結(jié)果存放在 DS:0208H 單元中。要求:本次實(shí)驗(yàn)的內(nèi)容均在 DEBUG 下完成,實(shí)現(xiàn)數(shù)據(jù)的裝入、修改、顯示;匯編 語言程序段的編輯、匯編和反匯編;程序的運(yùn)行和結(jié)果檢查。三. 實(shí)驗(yàn)過程和程序?qū)嶒?yàn)內(nèi)容一:e ds:0200 E7 1A 3F 00e ds:0204 C4 E5 6B 00實(shí)驗(yàn)內(nèi)容二:(1 )直接尋址方式MOVAX,0200MOVBX,0202ADDAX,0204ADCBX,0206MOV0208,AXMOV020A,BX(2) 寄存器間接尋址方式MOVSI,0200HMOVDI,0204HMOVBX
3、,0208HMOVAX,SIMOVDX,SI+2ADDAX,DIADCDX,DI+2MOV BX,AXMOV BX+2,DX四. 實(shí)驗(yàn)結(jié)果(包括必要的截圖)實(shí)驗(yàn)內(nèi)容一:輸入數(shù)據(jù):t:SMASMDEBUG32l)(=:bii(j3Z - Urrsinn 1.0- Copyright. (Cl Lsrsrui CnmputinjCPU 二 496. Real Mode, Id/Step 二旳9乙 AZO disabled-E S:6E00 E7 帕 3Y 00-E S:02GK C4 E5 6E 00顯示數(shù)據(jù):C:SMASriDEBU63gDebug3Z - Mersiou 1.6- Copyri
4、ght (C) Larson Computing 1 肝勺CPU = 486, Real Mode, Id/Step = CH0E, AZO disabled-E DS:0Z0O E7 1A 3F 的-E DS:GZ04 C4 E5 6B 他-D ES:Q200lCHU:GiitX) E? 1A 3F Mi C4 Eb E)H OtHAB (KJ AB 06 6000 GO g.?.l)ek.*. +1C0B:GE1O 9G 00 00 0G GO 00 09 0-00 GO 9G 06 60 00 09 00*Duplirate Lihp(s)*1CBB:GE70 00 00 00 0G 0
5、0 00 09 00-00 G0 00 00 00 GO 00 00實(shí)驗(yàn)內(nèi)容二:(1)直接尋址方式程序段編輯:0?3F:0100 mov axf9G0GJ 073F:0103 mov bx,IOE0 073F:0107 add ax,0E041 073F:81B adc bu 10206 073F:010F moo 0268,ax 0?3F:0112 hdv 0EGa,bx 073F;O116反匯編:3F3F3F3F3F3F3F3F3F3F3FAFeieo0103過諭61GB eiGF0112 lie eiia oil A011C611E eiiFAioooe8B1E0EQZG306MQ213
6、1EQG6GA3G882891E0A0200G0000034002EGPHOU MOU ADD ADC MOU HDU ADD ADD ADD XDR CS: POPAX,02001 BX.IQZ0E AX,0204J BX,Q2Q6J 【0290,AX IG20ALBX rBX*SIl,AL (BX*SIAL IBX*SIJfAL AL,00ES運(yùn)行:結(jié)果在DS:0208單元中為OOABOOABH0116PiX-OOAD BX-0OADpS=0f?3F ES=073F0?3F:9116 0000CX-0000DX-0000 3r-O0FD DF-OOOO 3I-GOQ0 DI-OOGGSS=
7、G73F CS=73FIF=116 NU UP El PL MZ AC PO MCADD (BX+SIlLDS:OeAB=0Gl-d 0208Q?3F:GZ00073F :OZ100?3F:GZZ00?3F:GZ30 673r:0E4D073F ;GE50O73F:0ETO073F ;O2H00000666000000000 O060 0660 0660 0000 00GO QO00 0000 00006000GGOGO0000HM3M3oM3e0A 0 0 0 0 0 o- 0 &-&-& gm(3(0(0(0(if0iAB0 ee000060GO0000 0000 00do eo00 00
8、00 0006 0000 GQ00 000O0O00000000OO00(2)寄存器間接尋址方式程序段編輯:O*?3F:01tl0 mv siitKtW ?3F ;01fXl wiv di .OKCM EV?3F ;01G6 nnv bx.GSee fr73F:O1tyi nnv ax. Tsi 1 A(73F : G1 OB mu d x, T k i -r-2 FT73P : Q10E rl1 dx, F rl I 1 B73F ;011O drtc dK, r(H+Zl O73r;0113 rav rbxlx EM73F:Ed.l5 mq*j :bx+Z ,1x反匯編:-u1973F:(
9、M06 BE0CM迎MUUSLttiQG9?3F:0103 BFG4GEMOUDI,0204073F:0106 BB06G2nnu07日F:0109 BBEHMOUftxjsnD73F:0ieB 8B54Q2nouDXjtSl+ffiJO?3F:Q10E 03 G6ABDAX, EDU0?3F:011G 1355GEADCD匕DhQ21073F;O113 6W7ruuIBXhAX073F:0115 B95702MOUBX+eZl.DXE)73F:0118 GOG0ADDBX*SI,AL0f?3F: 011ft 006GADDBX+SllALOT3F:G11C 34GOXDRftL.OQ973r
10、:011E ZEC3;6r73F:011F 67FDFES運(yùn)行:結(jié)果咼子存放在dx中,低子存放在ax中(結(jié)果為OOABOOABh )DX=G2G0DS=0?3F ES=073F 073F:0118 GOG-g=01G0 0118CX=O00 DX=00ftB Sr=0OFD BPOGOG 31=6200 DI =0201SS=OT3F CS=er?3F IP=0118 NU UF El FL MZ AC PD HCADD BX+SU.ALS: 0400=00五. 實(shí)驗(yàn)體會(huì)通過本實(shí)驗(yàn),實(shí)踐debug程序中的命令,并在debug下調(diào)試運(yùn)行匯編語言 源程序。在實(shí)踐過程中,解決如何把數(shù)據(jù)錄入存儲(chǔ)單元、
11、 debug命令如何使 用等問題后,知道存數(shù)據(jù)例如1234進(jìn)存儲(chǔ)單元時(shí) 要34 12存,還有掌握了 寄存器的尋址方式。-可編輯修改-實(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 位帶符號數(shù)。 試編寫匯編語言程序完成以下功能: 計(jì)算表達(dá)式值(V - X*Y+Z-720 ) /X ; 將上述表達(dá)式運(yùn)算結(jié)果整數(shù)放在 SUM1 單元,余數(shù)放在 SUM2 單元。2、求一個(gè)班
12、50 名學(xué)生成績的平均值 (附加題: 最大值和最小值 ,并將結(jié)果顯示 出來)3、從鍵盤讀入一個(gè)字符串,以 Enter 結(jié)束,字符串不超過 50 個(gè)字符,并打 印該字符串(附加題:查找中間是否有 asm 子串。如果有,輸出 Yes;否 則,輸出 No )。 三 . 實(shí)驗(yàn)過程和程序(注:附加題沒有做)實(shí)驗(yàn)內(nèi)容一:X、Y、Z、V均為字變量,在X、Y、Z、V字單元中存放是16位帶符號數(shù)。 試編寫匯編語言程序完成以下功能:計(jì)算表達(dá)式值( V - X*Y+Z-720 ) /X ;將上述表達(dá)式運(yùn)算結(jié)果整數(shù)放在 SUM1單元,余數(shù)放在SUM2單元。Data segmentx dw ?y dw ?z dw ?v
13、 dw ?sum1 dwsum2 dwData endsCode segmentassume cs:code,ds:data start:mov ax,datamov ds,axmov ax,x imul ymov cx,axmov bx,dxmov ax,z cwd add cx,ax adc bx,dx sub cx,720 sbb bx,0 mov ax,v cwd sub ax,cx sbb dx,bx idiv x mov sum1,ax mov sum2,dx mov ah,4chint 21hCode endsend start實(shí)驗(yàn)內(nèi)容二:求一個(gè)班 50 名學(xué)生成績的平均值(為了
14、方便,只設(shè)置了 5 個(gè) 學(xué)生數(shù)據(jù))data segmentgrade dw 90,80,80,70,60; 平均數(shù) 76data ends code segmentassume cs:code,ds:datastart:mov ax,datamov ds,axxor ax,axmov cx,5mov bx,offset grade again: add ax,bxadd bx,2loop againmov cx,5cwdidiv cxmov ah,4chint 21hcode endsend start 實(shí)驗(yàn)內(nèi)容三:從鍵盤讀入一個(gè)字符串, 以 Enter 結(jié)束,字符串不超過 50 個(gè)字符, 并
15、打印該字符串 data segment buffer db 50db ?db 50 dup($) cr db 0ah,0dh,$ data endscodes segmentassume cs:codes,ds:datastart:mov ax,datamov ds,axinput:mov ah,10lea dx,bufferint 21hlea dx,crmov ah,9int 21houtput:lea dx,buffer+2mov ah,9int 21hmov ah,4chint 21h codes ends-可編輯修改 -end start四.實(shí)驗(yàn)結(jié)果(包括必要的截圖) 實(shí)驗(yàn)內(nèi)容一:設(shè)
16、 x=156 , y=10 , z=220 , v=2000,則 sum仁0006h, sum2=0004h在 ax 中看 suml,在 dx 中看 sum2DOSBokO.74, Cpu speed 3000 cycles Frameskip O Program: DEBUGnP71:mir,13DAADCPX,DXGYEOOIG81E9DO0ESUBCX.9ED0GP71:G01C83DB06SBBBXOOUJ71:UiJllAlObWrwuxauwbjuG71:GQ2299CUD曠門:QQ2J2BC1SUBnxxxIBMSBBex.bxmuUJHD FTH LOOt)0J1A30eGMO
17、U10606】曲O7?1:G0ZE9916000MOUL0G0AJDX0771:O)3ZB44CMOUAH,4C0771:0t34CD211MT210771:0)36000ADDRX*SI,AL6771:0036eoooHDDBXASM 的轉(zhuǎn)換過程TEXT SEGMENTc$ = -32; size =2b$ =-20; size =2a$ =-8; size =2_main PROC ; COMDAT; 4: void main()pushebpmovebp, espsub esp, 228 ; 000000e4Hpushebxpushesipushedilea edi, DWORD PTR
18、 ebp-228movecx, 57 ; 00000039Hmoveax, -858993460; ccccccccHrep stosd; 5:; 6:short a,b,c; 7:a=1;moveax, 1movWORD PTR _a$ebp, ax; 8:b=a+1;movsxeax, WORD PTR _a$ebpaddeax, 1movWORD PTR _b$ebp, ax; 9:c=a+b;movsxeax, WORD PTR _a$ebpmovsxecx, WORD PTR _b$ebpaddeax, ecxmovWORD PTR _c$ebp, ax; 10:; 11:; 12:
19、 xor eax,eaxpopedipopesipopebxmovesp, ebppopebpret 0-可編輯修改 -_mai n ENDP_TEXT ENDS四.實(shí)驗(yàn)結(jié)果(包括必要的截圖)實(shí)驗(yàn)內(nèi)容一:(1 ) 轉(zhuǎn)移表:設(shè) bl=00010000b圈 DOBav 0.74, Cpu=lC10 ryrle Frflmeskip (1,DOSBCX4 bit is 1Piss dkiykey tu cuiitiiiut:(2)地址表:設(shè) bl=00001000bF| D05Eok Ck?4,匚pu sp?ed: 3000 cycles Frdme5lcip 0, Procram: DOS BOX
20、Itlie 5 bit is 1Press any key to 匚ontinue_實(shí)驗(yàn)內(nèi)容二:設(shè) x=5,y=2,貝U z=13 (000D),結(jié)果在ax(1 )堆棧傳遞參數(shù)(結(jié)果在 bx中查看)凹1)7/1 :IMO0H870G7MUUAX.GPTO:m松曜QGQ3SEESMOUDS, AXOQ0633ECQ2SUBSP.+G20066FF36G2OCIPUSH0002】OQ0CFF3C.OOGGPUSHLOOOQJ0G1GE8GC0GCALL601FOld0FG6tM00POP00041OOi?EJB1EGK0OMDUDX, t0OG41001BB朋CmuAH.4Cnym if001DC
21、D21I NTZ1|?771 O01F55PUSHBFEXJSBox 0.74, CpL speed: 5000 cycles, Frameskip 0 Proyam: DEBJGronS-0770 ES-G760Q771:061B B羽CCX=O051 D 冷 0600町=3000 31=0000SS=G76F CS-G771IP=001E NU UP El PL ZR MA PE HCMOU AHIC(2 )寄存器傳遞參數(shù)(結(jié)果在 ax中查看)(3)內(nèi)存?zhèn)鬟f參數(shù)(結(jié)果在 ax中查看)銅 DDSBqk匚pu weed3C00 cycles, FrdmesASM 后,對C或C+有了新的認(rèn)識。-
22、可編輯修改-實(shí)驗(yàn)四 匯編語言高級編程專題. 實(shí)驗(yàn)?zāi)康? 、匯編語言宏程序設(shè)計(jì);2 、 掌握中斷服務(wù)子程序的編寫。3 、 匯編語言與高級語言的混編。二 . 實(shí)驗(yàn)內(nèi)容1、編寫一個(gè)宏,求三個(gè)數(shù)的最小數(shù),原型為: MIN3 x,y,z,min2、掛接 1CH 中斷,正計(jì)時(shí) 60 秒后退出。要求屏幕顯示 0-59 的秒數(shù)3、VC+ 中編寫內(nèi)聯(lián)匯編,將字節(jié)數(shù)組的每個(gè)元素高低四位互換。 char dbyte = 0x34,0x45,0x56,0x67,0xaf;三 . 實(shí)驗(yàn)過程和程序1. 編寫一個(gè)宏,求三個(gè)數(shù)的最小數(shù),原型為: MIN3 x,y,z,minmin3 macro x,y,z,min mov a
23、x,x cmp ax,y jbe next mov ax,y cmp ax,z jbe done next: cmp ax,z jbe done done: mov min,ax endmDATAS SEGMENTx dw 2y dw 4z dw 3min dw ?DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXmin3 x,y,z,minMOV AH,4CHINT 21HCODES ENDSEND START2、掛接 1CH 中斷,正計(jì)時(shí) 60 秒后退出。要求屏幕顯示 0-59 的秒數(shù)INTN
24、O EQU 1CHDATA SEGMENTOLDISR DW ?,?TIMER DB 100COUNTER DW 0ISDONE DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,0MOV ES,AXxor cx,cx;PROTECTMOV AX, ES:INTNO*4MOV OLDISR0,AXMOV AX,ES:INTNO*4+2MOV OLDISR2, AX;SET NEW ISRMOV WORD PTR ES:INTNO*4, OFFSET ISRMOV WORD PTR ES
25、:INTNO*4+2,SEG ISR ;WAIT HEREWAITHERE:CMP ISDONE,1JNZ WAITHEREEXIT:;RESTOREMOV AX,OLDISR0MOV ES:INTNO*4,AXMOV AX,OLDISR2MOV ES:INTNO*4+2,AXMOV AX,4C00HINT 21HISR PROC FARPUSH DXPUSH AXMOV AX,DATAMOV DS,AXSTI;便于中斷嵌套INC TIMER; 判斷是否輸入 amov ah,0bhint 21hor al,al jz nextMOV AH,8; 不顯示輸入的字符INT 21HCMP AL,aJ
26、NE nextMOV AH,2; 換行MOV DL,10 INT 21H;MOV COUNTER,0;從起一行計(jì)時(shí)時(shí)從 0 開始計(jì)時(shí),注釋掉則從起一行繼續(xù)舊時(shí)間計(jì)時(shí)next:CMP TIMER, 1000/55JB DONEMOV TIMER,0MOV AH,2MOV DL,13INT 21H;print timeMOV AX,COUNTERMOV DL,10DIV DLMOV DH,AHMOV DL,ALMOV AH,2ADD DL,30HINT 21Hmov ah,2 mov dl,dhADD DL,30HINT 21H inc COUNTERcmp COUNTER,60JNE DONEM
27、OV ISDONE,1DONE:PUSHFCALL DWORD PTR OLDISRCLIPOP AXPOP DXIRET;中斷返回ISR ENDPCODE ENDSEND START3、VC+ 中編寫內(nèi)聯(lián)匯編,將字節(jié)數(shù)組的每個(gè)元素高低四位互換 char dbyte = 0x34,0x45,0x56,0x67,0xaf;#includeunsigned char change(unsigned char x) unsigned char a;_asm mov cl,4 mov al,x mov bl,x shr al,cl shl bl,cl add al,bl mov a,al return a;void main()unsigned char dbyte=0x34,0x45,0x56,0x67,0xaf; for(int i=0;i5;i+)cout
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院招聘護(hù)士合同范例
- 公共器材租賃合同范本
- 合同范本 合作
- 公司勞動(dòng)用工合同范本簡版
- 售后回租合同范本
- 出租野餐工具合同范本
- 合同范本些可以修改
- 化妝造型合同范本
- 華能電廠合同范本
- 員工內(nèi)部合同范本
- 博物館消防培訓(xùn)課件
- 康養(yǎng)建筑設(shè)計(jì)思考
- 腦血管造影術(shù)護(hù)理查房課件
- 殘疾人就業(yè)困境及其破解對策
- 《油液分析技術(shù)》課件
- 運(yùn)動(dòng)療法技術(shù)學(xué)
- 《蜀道難》理解性默寫(帶答案)
- 金婚活動(dòng)策劃方案
- 塔吊租賃(大型機(jī)械)-招標(biāo)文件模板(完整版)2021.5.13
- 監(jiān)理工作周報(bào)表(范本格式)
- Unit7大單元整體教學(xué)設(shè)計(jì)人教版英語八年級年級上冊
評論
0/150
提交評論