1、实验一 汇编语言环境一、实验时间:3月4日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG三、实验目及规定:本实验属于指令操作类实验,学生通过DOS指令及DEBUG指令操作进行实验环境熟悉,重要规定有如下几点:1、理解DOS普通操作指令2、掌握DEBUG程序基本参数使用四、实验内容:1、操作DOS盘符之间转换及子目录命令2、使用DEBUG命令: D,E,F,H,Q,R五、实验环节:1、DOS惯用命令练习:1)练习在DOS各个分区之间进行切换:命令格式为 盘符: 如进入D盘命令为 D:2)练习在各个文献夹之间进行切换:21退回本盘符根目录 cd22退回上层目录 cd.23进入下层目录
2、 cd(空格)目录名3)练习使用功能键“F3”输入一行命令后,回车,如果需要重复输入可以按功能键F3,如果是前面几行命令可以用方向键上下来调节。4)用命令 COPY DEBUG.COM BUG 复制一种文献。5)用命令 RENAME BUG BG 将BUG 文献改为BG。6)用命令 DEL BG 将文献BG删除。7)用命令 DIR查找当前目录当中文献,并会使用/P及/W两个参数。2、DEBUG 命令使用:1)打 DEBUG 进入 DEBUG 控制,显示提示符 - 。2)用命令 F 100 10F A 将AASCII码填入内存。3)用命令 D 100 10F 观测内存中16进制码及屏幕右边ASC
3、II字符。4)用命令 F 110 11F 41 重复上二项实验,观测成果并比较。5)用命令 E 100 30 31 32 3F将30H-3FH写入地址为100开始内存。单元中,再用D命令观测成果,看键入16进制数是什么字符ASCII码?6)用H命令检查下列各组16进制数加减成果并和你手算成果比较:-H 34 22会得出34与22和与差(1)34H,22H(2)56H,78H(3)A5,79H(4)1284H,5678H(5)A758,347FH7)用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF内容。8)用R命令将AX,BX内容改写为1050H及23A
4、8H。9)用Q命令来退出DEBUG状态,返回DOS界面。六、实验成果写出环节3、6、7实验成果七、实验体会(重要谈与DOS命令普通WINDOWS命令不同之处并谈谈用DEBUG看到内存空间体会)实验二 汇编指令一、实验时间:3月11日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定:掌握MASM操作环节,可以将源程序编译成可执行文献,同步进一步熟悉DEBUG中命令并能用A来输入简朴汇编指令。1、掌握DEBUG程序基本参数使用2、学会用MASM将汇编程序编译链接成EXE文献3、学会用DEBUG将EXE文献装入内存当中调试4、熟悉使用数据传播指令M
5、OV四、实验内容:1、将教师提供源程序编译并链接成可执行文献。2、用DEBUG命令装入该可执行文献。3、用DEBUG命令A、T、U命令来跟踪调试该可执行文献。4、掌握8086汇编指令:MOV,ADD,ADC,SUB,SBB,DAA,XCHG。5、掌握BCD码,ASCII码及用16进制数表达二进制码办法。6、学会查看8086寄存器:AX,BX,CX,DX,F,IP。五、实验环节:1、加减法指令:1)用A命令在内存100H处键入下列内容:MOVAH,34MOVAL,22ADDAL,AHSUBAL,78MOVCX,1284MOVDX,5678ADDCX,DXSUBCX,AXSUBCX,CX2)用U命
6、令检查键入程序及相应机器码。3)用T命令逐条运营这些指令,检查并记录关于寄存器及ZF状况。2、对源程序进行汇编过程1)用用文字编辑工具(记事本或EDIT)将源程序输入下面代码,其扩展名为.ASM。datasegmentmessagedbThis is a sample program of keyboard and displydb0dh,0ah,Please strike the key!,0dh,0ah,$dataendsstacksegmentpara stack stackdb50 dup(?)stackendscodesegmentassumecs:code,ds:data,ss:s
7、tackstart:movax,datamovds,axmovdx,offset messagemovah,9int21hagain:movah,1int21hcmpal,1bhjeexitcmpal,61hjcndcmpal,7ahjandandal,11011111bnd:movdl,almovah,2int21hjmpagainexit:movah,4chint21hcodeendsendstart2)用MASM对源文献进行汇编,产生.OBJ文献和.LST文献。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用TYPE命令显示1产生.LST文献。4)用LINK将.OB
8、J文献连接成可执行.EXE文献。5)在DOS状态下运营LINK产生.EXE文献。6)若未浮现预期成果,用DEBUG (文献名).EXE检查程序。六、实验成果16进制数加减法手算成果及实验成果程序运营成果(即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相似字符,但小写字母被改成大写。按ESC键可返回DOS。)七、实验体会(汇编指令与普通程序指令有何不同)附:(不用在实验报告上面写附东西)DEBUG 使用:1、打 DEBUG 进入 DEBUG,显示提示符。2、退出DEBUG命令:Q3、显示内存命令:D 起始地址 结束地址4、修改内存命令:E 起始地址,持续修改打空格键。打回车键退出E命令
9、。5、检查寄存器命令:R标志位显示10CFCYNCZFZRNZSFNGPLAFACNAOFOVNVPFPEPODFDNUPIFEIDI6、修改寄存器命令:R 寄存器名7、小汇编命令:A 起始地址,不输入指令打回车键退出A命令。8、反汇编命令:U 起始地址 结束地址9、文献命名命令:N 盘号:文献名10、读文献命令:L 内存地址11、写文献命令:W 内存地址10、读扇区命令:L 内存地址 盘号(0-A:,1-B:) 扇区号 扇区数11、写扇区命令:W 内存地址 盘号 扇区号 扇区数12、运营命令:G=起始地址 结束(断点)地址13、单步命令:T=起始地址 运营指令数,进入子程序内部。14、单步命
10、令:P=起始地址 运营指令数,不进入子程序内部。15、内存搬家命令:M 起始地址 结束地址 目地址实验三 顺序程序设计一、实验时间:3月25,4月1日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定:调试教师给一段代码,并能分析、调试运营;掌握顺序程序设计,自己独立设计一段代码并运营。四、实验内容:1仔细阅读汇编语言教材有关内容;2纯熟掌握DEBUG中D、E、U、T命令;3掌握在DEBUG中如何找到数据段段基址办法;4掌握单步跟踪程序执行办法;5掌握键盘输入字符、显示字符系统调用用法:6初步理解十进制数字与其相应ASCIII码之间互相转换办法
11、;7初步理解十六进制数字与其相应ASCII码之间互相转换办法。五、实验环节:1)用用文字编辑工具(记事本或EDIT)将源程序输入下面代码,其扩展名为.ASM。DSEGSEGMENTTAB1DB0,1,2,3,4,5,6,7,8,9DB7 DUP(0) 0AH,0BH,0CH,0DH,0EH,0FHSUMDB0DSEGENDSDSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVBX,OFFSETTAB1MOVAH,01H ;接受第一种数据INT 21HSUBAL,30HXLATMOVDL,ALMOVAH,01H;接
12、受第二个数据INT21HSUBAL,30HXLAT;转换为十六进制数ADDAL,DL;求两数之和XORAH,AHMOVCH,10DIVCH;商为十位数字,余数为个位数字ADDAL,30H;将十位数字转换为ASCII码MOVCH,AH;保存个位数字MOVDL,ALMOVAH,02H;显示十位数字INT 21HMOVDL,CHADDDL,30H;将个位数字转换为ASCII码MOVAH,02H ;显示个位数字INT21HMOVAH,4CHINT 21HCSEGENDSENDSTART2)用MASM对源文献进行汇编,产生.OBJ文献和.LST文献。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,
13、直至通过。3)用LINK将.OBJ文献连接成可执行.EXE文献。4)在DOS状态下运营LINK产生.EXE文献。5)用DEBUG (文献名).EXE装入程序,并用T和G命令进行跟踪。六、实验成果程序运营成果及程序代码重要目(从键盘上接受两个一位十六进制数据,求其积,并以十进制形式显示出来。)自己写一段简朴源程序,并写出成果。七、实验体会(汇编指令编程与普通编程有何不同)实验四 分支程序设计一、实验时间:4月1日,4月8日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定: 1掌握运用间接转移指令JMP BX实现多岔分枝办法; 2掌握指令对标志寄
14、存器中各标志位影响状况; 3掌握标志位和转移指令之间关系;4初步掌握运用设立断点调试程序办法;5、宏替代指令MACRO及ENDM。四、实验内容:1仔细阅读汇编语言教材有关内容。 2纯熟掌握DEBUG中G命令。3在DEBUG下执行程序,运用跟踪命令检查指令对标志位影响状况。4掌握对INT指令跟踪办法。五、实验环节:1、对源程序进行汇编过程1)用用文字编辑工具(记事本或EDIT)将源程序输入下面代码,其扩展名为.ASM。dispmacromsgleadx,msgmovah,9int21hmovah,4chint21hendmstacksegmentstackdb256 dup(0)stackend
15、sdatasegmentparmdb16 dup(?)brtabledwoffset bra,offset brb,offset brcdwoffset brd,offset bre,offset brfmsgadbI like my IBM-PC!$msgbdbHow are you!$msgcdbNibao College$msgddbThis is a sample$msgedbWellcome use my coputer!$msgfdbTheassemder language of 8086$errmsdbError!!invalid parameter!$dataendscodes
16、egmentassumecs:code,ds:data,ss:stackstart:movax,datamoves,axmovsi,80hleadi,parmmovcx,16cldrepmovsbmovds,axcmpparm,2jcerrmoval,parm+2subal,30hjcerrcmpal,6jncerrleabx,brtablecbwaddax,axaddbx,axjmpbxerr:disperrmsbra:dispmsgabrb:dispmsgbbrc:dispmsgcbrd:dispmsgdbre:dispmsgebrf:dispmsgfcodeendsendstart2)用
17、MASM对源文献进行汇编,产生.OBJ文献和.LST文献。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文献连接成可执行.EXE文献。4)用命令DEBUG AA.EXE XXX (XXX为任意字符串)将AA.EXE带参数调入DEBUG用D命令观测DS:0080处命令行,记录80H处内容和字符个数关糸。5、退出DEBUG。直接带参数运营此程序:AA n(n=0-5)依次观测并记录 n从0到5时运营成果。六、实验成果程序运营成果及程序代码重要目自己写一段简朴分支程序,并写出成果。七、实验体会(汇编指令分支程序与普通IF then else或者 case语句
18、有何不同)实验五 循环程序设计一、实验时间:4月15日,4月22日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定:1、掌握多重循环程序和排序程序设计办法。2、COM文献规定和生成过程。3、自己能编写一种简朴循环程序并输出成果。4、熟悉PSP前缀文献意义,COM文献前缀与EXE文献前缀区别。四、实验内容:1、将教师提供源程序编译并链接成可执行文献。2、掌握带符号数比较转移指令:JL,JLE,JG,JGE3、掌握伪指令 EQU 及操作符 $使用。4、理解org100h语句意义五、实验环节:1、对源程序进行汇编过程1)用用文字编辑工具(记事本或E
19、DIT)将源程序输入下面代码,其扩展名为.ASM。codesegmentorg100hassumecs:code,ds:codemain:jmpstartarraydw1234h,5673h,7fffh,8000h,0dffhdw0ab5h,0369h,005fh,5634h,9069hcountequ$-arraystart:movcx,countshrcx,1deccxmovbl,-1again:movdx,cxandbl,bljeexitxorbl,blxorsi,siagain1:movax,arraysicmpax,arraysi+2jlenchgxchgarraysi+2,axmo
20、varraysi,axmovbl,-1nchg:incsiincsidecdxjnzagain1loopagainexit:int20hcodeendsendmain2)用MASM对源文献进行汇编,产生.OBJ文献和.LST文献。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文献连接成可执行.EXE文献。4)用EXE2BIN将 .exe文献转换为 .COM文献,命令格式:EXE2BIN ?.EXE ?.COM5)用命令DEBUG (文献名).EXE调入DEBUG用D命令观测运营成果六、实验成果简要简介一下程序目,同步找到成果所在位置,并将成果对的显示出
21、来(数排序)七、实验体会(这里如果不把EXE文献转化成COM文献能不能正常执行)实验六 子程序定义及调用一、实验时间:4月22日,4月29日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定:1、掌握运用堆栈传递参数子程序调用办法。2、掌握子程序递归调用办法。3、过程调用伪指令:PROC,ENDP,NEAR和FAR。4、8086指令:CALL,RET,RET n。5、运用RET指令退出EXE文献办法。四、实验内容:1、将教师提供源程序编译并链接成可执行文献。2、用DEBUG命令装入该可执行文献。3、用DEBUG命令A、T、U命令来跟踪调试该可执
22、行文献。五、实验环节:1、对源程序进行汇编过程1)用文字编辑工具(记事本或EDIT)将源程序输入下面代码,其扩展名为.ASM。stacksegment stackdb256 dup(0)stackendsdatasegmentary1db1,2,3,4,5,6,7,8,9,10count1equ$-ary1sum1dw?ary2db10,11,12,13,14,15,16,17,18count2equ$-ary2sum2dw?dataendsmainsegmentassumecs:main,ds:data,ss:stackstartprocfarpushdsxorax,axpushaxmova
23、x,datamovds,axmovax,count1pushaxleaax,ary1pushaxcallfar ptr summovax,count2pushaxleaax,ary2pushaxcallfar ptr sumretstartendpmainendsprocesegmentassumecs:procesumproc farmovbp,spmovcx,bp+6movbx,bp+4xorax,axadn:addal,bxadcah,0incbxloopadnmovbx,axret4sumendpproceendsendstart2)用MASM对源文献进行汇编,产生.OBJ文献和.LS
24、T文献。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3)用LINK将.OBJ文献连接成可执行.EXE文献。4)用DEBUG断点命令和T命令运营此程序,观测并记录每次过程调用及进出栈指令先后(带;语句)SP和堆栈内容。六、实验成果当CALL时候,堆栈当中压入数及CS、IP值变化状况当RET时候,堆栈当中弹出数及CS、IP值变化状况程序运营成果(最后成果:SUM1,SUM2段及偏移地址和它们内容。)七、实验体会(程序调用与宏指令有何区别,同步堆栈在当中所起作用是什么)实验七 模块化程序设计一、实验时间:5月6日,5月13日,5月20日二、实验设备:硬件:计算机系统软件:MS-D
25、OS、DEBUG、MS-MASM 5.0三、实验目及规定:通过实验掌握下列知识:1、堆栈。堆栈批示器SP和堆栈操作指令PUSH。POP。2、段寄存器和物理地址计算。3、查表法和查表指令XLAT。4、数据串传送程序和数据串传送指令MOVS。STOS及重复前辍REP。5、循环指令ROL。逻辑与指令AND和清方向位指令CLD。6、伪操作指令DB。四、实验内容:1、用DEBUG命令A装入该可执行文献。2、用DEBUG命令T、U命令来跟踪调试该可执行文献。3、用DEBUG命令D来查看运营过程。五、实验环节:1、用A命令键入下列程序:MOVBX,1000MOVDI,MOVCX,4LOP:PUSHCXMOV
26、CL,4ROLDX,CLPOPCXMOVAL,DLANDAL,OFXLATCLDSTOSBLOOPLOPINT202、用A命令在1000H处键入下列ASCII码并用D命令检查之:DB 0 1 2 3 4 5 6 7 8 9 A B C D E F用D命令检查时注意左边ASCII码值和右边字符。3、用R命令给DX送一种四位16进制数(例7F8E)。4、用T命令逐条运营这程序到LOOP指令处,观测并记录每次运营成果,特别是SP和堆栈内容(用D命令检查)5、用G命令将此程序运营到结束,并用D命令检查H处所转换成果。可注意屏幕右边ASCII字符与DX与否一致。六、实验成果程序运营成果实验八中断调用程序
27、设计一、实验时间:5月27日,6月3日,6月10日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定:1、掌握运用INT 16H 2号功能调用实行键盘输入办法。2、熟悉键盘扫描码和ASCII码关系。3、掌握运用INT 10H功能调用实现窗口功能办法。4、掌握运用INT 21H功能调用实现窗口功能办法。5、掌握运用系统调用2H功能调用实现实行键盘输出办法。四、实验内容:1、将教师提供源程序编译并链接成可执行文献。2、用DEBUG命令装入该可执行文献。3、用DEBUG命令A、T、U命令来跟踪调试该可执行文献。五、实验环节:1、程序:PRO_NAMS
28、EGMENTASSUMECS:PRO_NAMORG100HAGAIN:MOVAH,0INT16HMOVBX,AXCALLBINIHEXMOVAH,2MOVdl,20hINT21HMOVDL,BLMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HJMPAGAININT20HBINIHEXPROCNEARMOVCH,4ROTATE:MOVCL,4ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPRINTADDAL,7PRINT:MOVDL,ALMOVAH,2INT21HDECCHJNZROTA
29、TERETBINIHEXENDPPRO_NAMENDSENDAGAIN2、输入,汇编,连接此程序,并将它转变成.COM文献。3、运营此程序,观测并记录各个键扫描码,ASCII码及相应字符。六、实验成果程序运营成果七、实验体会(汇编中断可以实现什么功能)实验九系统功能调用程序设计一、实验时间:6月17日二、实验设备:硬件:计算机系统软件:MS-DOS、DEBUG、MS-MASM 5.0三、实验目及规定:使用DOS 提供关于输入/输出系统功能调用,练习字符串输入/输出及在字符串中插入、删除等功能。四、实验内容:1、将教师提供源程序编译并链接成可执行文献。2、用DEBUG命令装入该可执行文献。3、用
30、DEBUG命令A、T、U命令来跟踪调试该可执行文献。五、实验环节:1 参照程序DATA SEGMENTSTRBUF DB Please input a string :,$KEYLEN DB 64KEYNUM DB ?KEYBUF DW 64 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,STRBUFMOV AH,9INT 21H ;display a string on screenLEA DX,KEYLENMOV AH,0AHINT 21H ;receive a st
31、ring from keyboardCALL CRLF ;ouput CR & LF MOV BL,KEYNUM ;get charter number MOV BH,0ADD BX,DXMOV BYTE PTRBX,$ ;add $in the tail of string MOV AH,9INT 21H ;display input stringCALL CRLF MOV AH,4CHINT 21H CRLF PROC NEAR PUSH AXPUSH DXMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HPOP DXPOP AXRET CRLF ENDP CODE ENDSEND START2 编程实当前给定字符串查找一字符,待找字符从键盘输入,找届时提示Yes,found !,找不届时提示 No found ! 。3编程实当前给定字符串中删除一字符,待删除字符从键盘输入,删除后显示该字符串。六、实验成果程序运营成果七、实验体会(汇编当中输入输出是如何完毕)