《2023年汇编语言实验报告新编.docx》由会员分享,可在线阅读,更多相关《2023年汇编语言实验报告新编.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、合肥工业大学计算机与信息学院实验报告课 程:汇编语言程序设计专业班级:信息安全114学 号:202 3 29 1 4姓名:王佳淼%实验一 Debug程序的使用s u m 1 d w ?su m 2 dw ?Datae n dsCod esegmen ta s sume cs:c o de, ds: d a ta, ss: s tack st a r t :m o v a x,datamov ds,axm o v ax, x ;在代码段填入指令序列mov bx,y aimul b xa dd ax,z。aadc d x , 0su b ax, 7 2 0s bb dx, 0mov cx,dxmo
2、 v bx,axm o v ax,vocwdosub a x ,bxsbb dx, c xam o v bx, xidiv bx0mov sum 1, axmov s u m2,dx0 mov ah,4chint21hCode en d s en d start2、求出平均值、最大值、最小值Stacks egmentdw 512 dup (?)StackendsDa t as e g mcntstu db 2 5du p (35,37)si db the max is: $s 2 d b t he m i n i s: $s3 d b the avg i s : * disp 1 a y db
3、 5 dup(1 $)D ataend sCod es e gmen ta s sume c s : c ode, ds:dal a , s s : s t ac k s t a r t:。mov a x, d ata3mov ds.ax。;在代码段填入指令序列mov aLOmov si, 0mo v c 1,50mov b h,0; maxomov bld 00; minaga i n : ad d al, stusija d c a h,0cmp b h, s t u sioja LImov bh, s t u siL 1 :cmp bl, s t u s ioj b L2mo v bl,
4、stusiL 2 : i n c silo o p a ga i nm o v c 1 ,50div c 1 ;av g 在 al 中omov c 1 ,ah; 保存 a h1 e a dx, s 3mov ah. 0 9 hint 21 h9mov ah, clca 1 1 DISP最小值输出最小值输出lea cl x ,s2;mov ah, 0 9hint21hmov aL b 1ca 1 I D I SPmov a h ,02h;输出回车换行 mo v dl,Oa hi n t 21 hmov ah.Odhain t 21 ha 1 ea dx,sl;最大值输出mov ah.09 hin
5、t 21hmo v al,bh call DIS Pmo v a h, 4chint21hDISP proc叩ush bx0cmp al, 1 0 0j z mfcmp al, 10jb gwmov ah,0omov bl, 1 0adiv blsad d al,30hmov di s p layO, aladd ah,30hmo v d i s pl a yl, ah d onel e a d x, displ a y0mo v a h , 09 hint 2 Ihmov a h,02h;输出回车换行0mov dh 0 a hin t 2 Ihmov ah.Odhint21hp op b x
6、 mf: mov display 0, 31 hmov disp 1 ay| I ,30 h0mov di s p 1 a y 2,3 0 hjmp do n egw: add a h , 3 0 hmo v displayO,ahjmp doneD I SPENDP。Code end saend sta r t3、读入字符串CodeCodese g meritass u me cs:c o de, d s:datastart:。m o v a x , data0mo v d s ,ax9mov ah, 0 ahIea dx, x +2i n t 2 1 hmov ah,02h;输出问车换行m
7、ov dl.Oahint2lhmov ah, Od hin t 21 hamo v d x, o f f s et x+2mov ah,0 9 hin t 21h 1 e a si, xflea di, y0m o v bx, diamov ah, 4 8agai n : 0m o v c x,3r e pz cmps baj z founddec ah j nz againmo v ah, 02 h ;输出回车换行mov d 1,0a hint21 hmov a h,Odhint21 h1 e a dx, s 2 j m p donefo u n d :1 e a d x , sbdone:
8、mov a h , 0 9 hin t 21ham o v ah,4chint2lh。Cod e e n ds a e nd st a rt四.实验结果(涉及必要的截图)2. 1| cC C:WIRDOfSsysteM32cMd. exe - debug 1. exe185E:0008 185E:000C El85E:000E 185E:0012 E85E:0015 185E:0018 E85E:001B 185E:001D El85E:001F185E:0022 185E:0023 El85E:0025 185E:002? bL85E:002B 185E:002D E85E:0030 185
9、E:0034 E85E:0036 185E:0038 185E:003A 185E:003C E85E:003E 185E:0040 Pg =0 003185E:0008 185E:000C El85E:000E 185E:0012 E85E:0015 185E:0018 E85E:001B 185E:001D El85E:001F185E:0022 185E:0023 El85E:0025 185E:002? bL85E:002B 185E:002D E85E:0030 185E:0034 E85E:0036 185E:0038 185E:003A 185E:003C E85E:003E 1
10、85E:0040 Pg =0 0038B1E0200 F7EB 03060400 83D200 2DD002 83DA00 8BCA 8BD8 A1060099 2BC3 1BD1 8B1E0000 F7FB A30800 89160A00 B44C CD21 0000 0000 0000 0000 0000OUMUDDDCUBBBOUOUOUV/DUBBBOUDIOUOUOUNTDDDDDDDDDDMlnASSMMM cssmimmmiaaaaaBX,0002 BXAX,【0004DX,+00AX,02D0DX,+00 CX,DX BX,AX AX,【0006AX,BX DX,CX BX,0
11、000 BX0008 LAX 000ALDXAH,4c21BX+SI,ALBX/SI LALBX+SI LAL BX/SI LAL BX+SI,ALC:WIRDOfSsysteM32cMd.exe - debug 1.exetl85E:0018185E:001B El85E:001D 185E:001F Lu185E:0022 bL85E:0023185E:0025 bL85E:0027185E:002B El85E:002D185E:0030 El85E:0034185E:0036 E85E:0038185E:003A EL85E:003C185E:003E E85E:0040 Pg =0
12、003-83DA00 8BCA8BD8 A10600992BC3 1BD1 8B1E0000F7FB A30800 89160A00 B44CCD21 0000 0000 0000 0000 0000SMMMuDBBUIUUUTDDDDD UUBODOOONDDDDDCSSMIMMMIrtAnAADX,*00 CX,DX BX,AX AX,00061AX,BX DX,CX BX,0000 BX0008 LAX 000ALDXAH,4c21BX*SI,AL BX+SI1,AL BX*SI ,AL BX+SI,AL tBX*SI LALAX=FFA4BX=0064CX=0000DX=FFB0SP=
13、0000BP=0000 SI=0000 DI=0000DS-185DES-180DSS-181DCS-185EIP=0034 NU UP EI NG NZ AC PE CY185E:0034 B44CMOU AH,4c2.2c C:fINDOfSsystea32cmd. exeSource isng INUST-Cross-reference CNUL.CRF:50304 + 397696 Bytes synbol space free0 Warning Errors 0 Severe ErrorsF:nasnlink 2.objMicrosoft Ouerlay Linker Uersion
14、 3.60Copyright Microsoft Corp 1983-1987. All rights reserved.Run File 2.EXE:List File NUL.MAP:Ijibraries .LIB:LINK : warning L4021: no stack segment0F:nasn2 .exexhe aug is:36the nin is:35the max is:3?DF : nasn2. 3C:fIHD0fSsystea32cBd. exeHEI 口F:nasn3.exe tuykiuknoF:nasn五.实验体会通过本次实验,我掌握顺序和循环程序结构和设计方法
15、,能在PC上对循环结构和顺序结 构进行编程。熟悉在PC机上建立、汇编、连接、调试和运营8086/8088汇编语言程序的过 程。实验三汇编语言子程序设计(分支、子程序)一.实验目的1、掌握分支和子程序结构和设计方法;2、熟悉在PC机上建立、汇编、连接、调试和运营8 0 8 6/8088汇编语言程序的过程。3、通过汇编语言了解高级语言的参数传递等知识。二.实验内容1、1. BL中的只有一位为1。编写程序测试,并输出提醒信息“The X Bit is 1,规定:地址表和转移表。2.编写一个子程序计算z二f ( x , y) = x* y+x y(x,y, z有符号数内存数)。规 定通过堆栈(寄存器、
16、内存)传送所有参数。三.实验过程和程序1、LBL中的只有一位为1。编写程序测试,并输出提醒信息“The XBiti s 1,规定:地址表和转移表。;地址表法D atas egmentS 1 DBThe 1 Bit i s 1 $ S2 DB The 2 Bit is 1$S3 DB The 3 Bit is 1$S4 DB The 4 Bi t is 1$S5 DB z The 5 B i t i s I $S6 DBThe 6 Bit is 1 $S7 DB 7 The 7 B i t i s 1 $S8 DBThe 8 Bi t is 1$ a d drtb dw LO,L 1 ,L2,L
17、3,L4, L 5,L 6 ,L7e n dse n dsD a ta一.实验目的1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运营汇编语言源程序。2、掌握808 6 /8088的寻址方式及多字节数据的解决方法。二.实验内容1、运用DEBUG程序中的“ E ”命令,将两个多字节数“003F1AE7H ”和“()0 6 BE 5 c4H”分别送入起始地址为DS: 020 0 H和DS: 0204H两个单元中。2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS9200H 单元和DS: 0 204 H单元中的数据相加,并将运算结果存放在DS: 0208H单元 中。规定:本次实验
18、的内容均在DEBUG下完毕,实现数据的装入、修改、显示;汇编语 言程序段的编辑、汇编和反汇编;程序的运营和结果检查。三.实验过程和程序1、启动DOS操作系统2、运营DEB UG.COM程序(若当前盘为C)C: DEBUG/-为DEBUG提醒符,仅当屏幕出现该提醒符后,才可输入DEBUG命令) 3、用“A”命令编辑和汇编源程序-A /I 8 6E:0 100 MOV AX, 0 200/186E: 0 10 3 MOV BX,020 2 J Z186E:0107 ADD AX,0204/1 86E:01 0 B ADC BX, 0 206/Code。a s sum e cs:codc, ds:d
19、atas t art:mov a x , d at ao v d s , a xmov b l,02hmov a 1 ,0 f fha ga i n: inc a 1 eshr b 1,1jnc a g ains h 1 a 1 J; a 1 乘以 2m o v bl, a 1jm p addrtbf b x 0mov a h ,4chi n t 2 IhLO:1 eadx, SIjm p ou t p u tLI:1 ea dx, S 2ajmp outputL2:lea dx, S 3J m p o ut p utL3:lea dx, S4可 m p ou t putL4:Ie a dx,
20、S 5jmp out putL 5:1 e a dx,S 6jmp out put L6:1 ca dx,S7jmp outputL7:1 e a d x, S8sjmp ou t put o u t p ut: m o v ah,09h oini21hmov a h , 4 c hin t 2 1 hC o de endsoe n d st a r t;转移表法Datas e gm e ntSI DBTh e 1 Bit is 1 $S2 DBThe2 Bit is 15S3 DB Th e 3 Bit i s 1$S4 DB The 4 Bi t is 1 $S5 DB T h e 5 B
21、i t is 1$S 6 DB The 6 Bi t is I $S7DB The7B i t is 1$S8 D B z The8 B i tis 1$ 0Datae n dsCodes egmenta ssume cs: cod e , d s :d a ta st a r tm o v ax, d a ta0mov d s , a xmov bLO 2 hv ah -1 agai n : inc alsh r b 1 ,1j nc a gainmo v a h ,0 mov c x , ax shla x , 1add a x ,cx: a 1 乘以 3 lea s i.jmptb ad
22、d si,axjmp s ijmpl b:jm p LOjmp L 1jmp L 2 a xmov ax,6fb p cw dadd b x ,axadc cx,d xmov a x, 4bpc wdsu b b x, axs b b ex, dxmov 8 bp, b xP o p dx叩 o p c xo p op b xpop axp op bpr e t 4PI e n dpCode en d send star t;寄存器传递Stacksegm entdw 5 1 2du p (?)Sta c kendsDatas e gmentx dw 100y dw 1 00 z dw ?Dat
23、 aendsC odes e g mentassume c s :code, ds: d a ta, ss:sta c k start:mo v ax, da t a o v d s,axo v a x ,xomov b x,y。oca 1 1 Plmov z, b x; bx做出口参数mo v a x,z;方便查看输出是否对的mov ah, 4 c hint21hP 1 p r oc near push a x* p u s h exoimu1 b xmo v ex, d x mov bx, ax0mov a x , x cwdoad d b x , a x 0ade ex, d xo v
24、a x, y cwdsub b x ,ax sb b cx,dxpop c x pop ax retPI endpC ode en d send start四.实验结果(涉及必要的截图)c C:WIND01SsysteM32cMd. exeF:nasn41.exeThe 2 Bit is 1F:nasn42.exeThe 2 Bit is 1F:nasn_寄存器方式 C:WINDOWSsyste32cMd. exe-debug 52.exeBSDiLibraries.LIB:ILINK : uarning L4021:no stacksegmentIc:DOCUME1user?nasm deb
25、ug52.exe1803:0000B80218MOUAX,18021803:00038ED8MOUDS, AX1803:0005A10000MOUAX,00001803:00088B1E0200MOUBX,00021803:000CE80B00CALL001A1803:000F891E0400MOU00041803:0013A10400MOUAX,00041803:0016B44CMOUAH,4c1803:0018CD21I NT211803:001A50PUSHAX1803:001B51PUSHCX1803:001CF7EBIMULBX1803:001E8BCAMOUCX,DXl-g= 0
26、0016AX=2710 IIX=2710 CX=0445 DX=0000 SP=0000BP=0000SI=0000DI=0000DS-1802 IS-17B2 SS-17C2 CS-1803 IP-0016NU UP EIPL ZR NAPE NC1803:0016B44CMOUAH,4c堆栈方式186E:0 10 F186E:0 10 FMOV 02 0 8 , AX/1 8 6E: Oil 2 MOV 02 0 A ,B XZ1 8 6E: 0 1 16/4、用“U”命令反汇编验证源程序-U CS:0100Z186E:0 100 Al 0 002 MOV AXJ 0 2 00186E:
27、0 1038B1E020 2 MOV B X, 0202 186E: 01 0 7030 6 0402 ADD AX, 02 0 4 8 6E: 0 1 OB 131E0 6 02 ADC BX,0 206 J1 8 6E: 010FA30 8 0 2 MOV 0 2 08, AX6E:01 1 289 1 E0A0 2 MOV 02 0 A, BXI86E:O116注意: 检查源程序是否有错误,若有则返回到第3步用“ A地址”命令进行修改,宜到 程序无错误。 DEBUG约定在其命令或源程序中所涉及到的数据均被看作十六进制数,其 后不用“H”说明。 在DEBUG下,源程序中不能使用“标号”、“
28、变量”和一些伪指令。 在DEBUG下,大小写不敏感。5、程序未执行前,用“R”命令观测,相关寄存器的内容。-RZ如:(AX)= 0 0 00, (BX) = ()00(), (S I )= 0(X)0(DI)= 00 00, (CS) = 1376(IP)= 01006、在程序未执行前,用“D”命令观测DS: 0200H, DS: 02 0 4H、D S :0 2 08H单、C:fINDOfSsystea32cMd. exe- debug 51.exeBSDiLibraries.LIBI:LINK : uarning L4021: no stacksegmentC:DOCUME1user?na
29、sm debug51.exe1805:0080B80418MOUAX,18041805:00038 EDSMOUDS, AX1805:000583EC02SUBSP,+021805:0008A10000MOUAX,00001805:000B50PUSHAX1805:0000A10200MOUAX,00021805:000F50PUSHAX1805:0010E80B00CALL001E1805:00138F060400POP00041805:0017A10400MOUAX,00041805:001AB44CMOUAH,4c1805:001CCD21I NT211805:001E55PUSHBP1
30、805:001F8 BECMOUBP,SP_g= 0 laIaX=2710 BX=0000CX=045C DX=0000 SP=0000BP=0000SI=0000DI=0000foS-1804 ES-17B4SS-17C4 CS-1805 IP=001ANU UP EIPL ZR NAPE NC805:001AB44CMOUAH,4c五.实验体会实验四汇编语言高级编程专题一.实验目的1、汇编语言宏程序设计;2、掌握中断服务子程序的编写。3、汇编语言与高级语言的混编。二.实验内容1、编写一个宏,求三个数的最小数,原型为:M I N3 x,y,z,min2、挂接1CH中断,正计时6 0秒后退出。
31、规定屏幕显示0-59的秒数。三.实验过程和程序1、编写一个宏,求三个数的最小数,原型为:MIN3 x,y, z,m i nSt a cksegmentdw 512 d u p (?)StackendsD a tas e gm e n txdb21y db33*z db 9min db ?Da t ae ndsCodes egmenta ssume cs: c ode, d s :data, s s:stackMIN 3macro x, y ,z, m i n;宏的定义0mov al,x。c mp a 1 ,yjb hu a n0m o v a 1 ,yhuan: c m p a 1 ,zj b
32、 doneo v a 1 ,zdone:m o v m i n, a 1add al,3 0 hmo v d 1 , al0mov ah,2;定义输出,方便观测结果in t 21 he n dmst a r t:mov ax, da t am o v ds,ax0MIN3 x,y,z,mi nmov ah, 4 c ha i nt 21 hCode ends end st a r t四.实验结果(涉及必要的截图)宏定义C:fIHDOfSsystea32cMd.exe日EI口Microsoft Overlay Linker Uersion 3.60Copyright Microsoft Corp
33、 1983-1987. fill rights reserved.Run File 6.EXE:List File NUL.MAP:Libraries .LIB:LINK : warning L4021: no stack segmentC:DOCU ME1us e r? ?nas n 6.exe9C:DOCUME1user?nasm HBQ计数器c (::00(:0111156八桌面575”05W* C: VDOCmEl user ffimasM7. EXE五.实验体会元的内容-D 2 00 2 OB /7、用“G”命令运营源程序-Q =100 0 116 /8、再用“D”命令观测DSQ2
34、0 0HDS:020BH字节单元中的内容-D 200 20BZ9、用“丁单步操作命令对源程序单步执行,观测AX、BX、CS、IP寄存器内容的变 化,并与预计的结果相比较。注意: D命令显示内存数据,注意观测多字节数据在内存中的存放方式。 指令执行的时候,1 P寄存器随着变化,注意观测。c C:fIHD0fSsystea32cad. exe - DEBUG日日E88M79 uC04O00D22 z:EE1ADMINI1DEBUG56 34 12 BA DC FE1367:0100 I 1367:0103 I 1367:0107 l1367:010B i 1367:010F I1367:0112
35、I 1367:0116-U CS:0100 1367:0100 l1367:0103 : 1367:0107 I1367:010B1367:010F l 1367:0112 l 1367:0116 l 1367:0118 1367:011A l 1367:011C 1367:011E1367:011FMOU AX,0200MOU BX,0202ADD AX J0204ADC BX,0206MOU 10208,AXMOU 020ALBXIA10002MOUAX,02008B1E0202MOUBX,020203060402ADDAX,0204】131E0602ADCBX,0206A30802MOU
36、0208 LAX891E0A02MOU020ALBX0000ADD(BX*SI ,AL0000ADDBX+SI,AL0000ADDBX*SI LAL3400XORAL,0056PUSHSI1300ADCAX,BX+SI C:WIND01SsysteM32cMd.exe - DEBUGC :DOCU ME1ADF1I NI 1 DEBUG-E 0200 78 -D 0200 1367:0200 1367:0210 1367:0220 1367:0230 1367:0240 136?:0250 1367:0260 1367:0270-E 0204 98-D 0204 1367:0200 1367:
37、0210 1367:0220 1367:0230 1367:0240 1367:0250 1367:0260 1367:0270 1367:0280?8 00 00 00 00 00 00 00 BA00 0000 0000 0000 003456 00 00 00 00 00 00 00 DC00000000000000001234 00 00 00 00 00 00 00 FE12 00 00 00 00 00 00 0000000000000000000000000000000000000000000000000000-0000-0000-0000-0000-0000-0000-0000
38、-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000xU400 0000000000000000000000000000009800000000000000BA 00 00 00 00 00 00 00DC 000000 0000 0000FE-00 00-00 HW HH00-00 HW HW 00-0000-00 00-000000000000000000000000000000000000000000000000
39、000000000000000000000000000000000000000000000000000000000000000000c C: HNDOWSsyst eM32cMd. exe - debug1367:010B ADC 136?:010F MOU 1367:0112 MOU 1367:0116 -U CS:0100 1367:0100 1367:0103 1367:0107 1367:010B 1367:010F 1367:0112 1367:0116 1367:0118 1367:011A 1367:011C 1367:011E !1367:011F-R AX AX 0000BX,0206 0208,AX 020ALBXA10002MOUAX,02008B1E0202MOUBX,020203060402ADDAX,0204131E0602ADCBX,0206】A30802MOU0208 LAX891E0A02MOU020ALBX0000ADDBX+SI LAL0000ADDBX+SI LAL0000ADDBX+SI1,AL3400XORAL,0056PUSHSI1300ADCAX,【BX+SI -R AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000 SI=0000 DI=0000DS-1367ES-1367SS-1367CS