汇编语言实验报告(共37页).doc
《汇编语言实验报告(共37页).doc》由会员分享,可在线阅读,更多相关《汇编语言实验报告(共37页).doc(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上汇编语言课程设计 学院: 专业: 姓名: 学号: 汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。目 录1 利用DEBUG调试汇编语言程序段3 初级程序的编写与调试实验(二).5 分支程序实验6 循环程序实验.1 利用DEBUG调试汇编语言程序段一课程目的1熟悉DEBUG有关命令的使用方法;2利用DEBUG掌握有关指令的功能;3利用DEBUG运行简单的程序段。二课程内容1进入和退出DEB
2、UG程序;2学会DEBUG中的1)D命令(显示内存数据D 段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:-E100 41 42 43 44 48 47 46 45 -D 100,L08 结果:08F1:0100 41 42 43 44 48 47 46 45例2: -E 100: 08F1:0100 76 42 :42是操作员键入此命令是将原100号内存内容76修改为42,用D命令可察看。3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。)6)G命令等的使用(执行A命中输入的汇编指令)3用DEBUG,验证乘法、
3、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。三课程要求1仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;四环境PC微机DOS操作系统或 Windows 操作系统MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境五方法步骤1在DOS提示符下,进入DEBUG程序;2在DOS目录下启动DEBUG;3详细记录每一步所用的命令,以及查看结果的方法和具体结果。R, D, E 命令:A, T 命令:进入和退出DEBUG:六学习要求1如何启动和退出DEBUG程序;2整理每个DEBUG命令使用的方法,实际示例及执行结果。七思考题启动DEBUG
4、后,要装入某一个.EXE文件,应通过什么方法实现?答:用debug+文件名八小结 通过这个设计我懂得了DEBUG程序调试汇编程序的一些基本方法和指令。知道了DEBUG程序的一些功能。使我对汇编语言有了进一步的理解。 2 初级程序的编写与调试(一)一课程目的1进一步熟悉DEBUG命令;2掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算; 3熟悉数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP;4掌握简单的汇编语言程序编写与调试。二课程内容1 内存操作数及各种寻址方式使用;2 求累加和程序;3 多字节加法程序;4 数
5、据串搬家程序;5 段寄存器概念及字符串传送指令练习。三课程要求1仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2阅读数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP的内容;3用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、数据串搬家程序段。四环境PC微机;DOS操作系统或 Windows 操作系统;MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境。五方法步骤1内存操作数及各种寻址方式使用MOVAX,1234 MOV1000,AXMOVBX,1002MOVBYTE PTRBX,
6、20MOVDL,39INCBXMOVBX,DLDECDLMOVSI,3MOVBX+SI,DLMOVBX+SI+1,DLMOVWORD PTRBX+SI+2,2846步骤: (1) 用A命令键入上述程序,并用T命令逐条运行。(2) 每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。注意D命令显示结果中右边的ASCII字符及双字节数存放法。立即寻址:寄存器间接寻址:寄存器相对寻址:2求累加和程序:程序:MOVBX,1000MOVCX,10SUBAX,AXLOP: ADDAL,BXADC AH,0INCBXJ:LOOPLOPINT3步骤:(1)用A命令将程序
7、键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替;(2)用命令N AA 将此程序命名为文件AA(文件名可任取);(3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址;(4)用命令W 100将此程序存到AA命名的磁盘文件中;(5)用命令Q退出DEBUG;(6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序;若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入;(7)用E命令在内存地址1000H处键入16个数字;(8)用命令G=100 J(J用实际地址代替),使程序运行并停
8、在断点J上,检查AX,BX的值是否符合你的预计值;(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错;(10)重复G、J与T,再检查AX是否正确;(11)用G命令使程序运行到结束,检查AX值是否正确。3多字节加法程序程序:MOVDI,1000MOVCX,8MOVSI,2000CLCLOP: MOVAL,SIADCDI,ALINCSIINCDILOOPLOPINT20步骤:(1) 用命令键入此程序(2) 用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。4数据串搬家程序(1)用A命令键入下列程
9、序:MOVSI,1000MOVDI,1500MOVCX,0FHLOP:MOVAL,SIMOVDI,ALINCSIINCDILOOPLOPINT20(2)用A命令DB伪指令在1000H键入下列字符串:IBM_PC COMPUTER(3)用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。5段寄存器概念及字符串传送指令练习(1) 用A命令键入下列程序:MOVSI,0MOVDI,0MOVAX,1000MOVDS,AXMOVAX,1500MOVES,AXMOVCX,0FCLDREPMOVSBINT20(2) 用A命令DB伪指令在1000:0000处键入字符串IBM_PC COMPUTER
10、,并用D命检查之(3) 用D命令检查0F00:1000处内容,看是否一样。为什么?相同,因为1000:0000和0F00:1000是同一个地址。(4) 用G命令运行此程序,检查目的地址1500:0000处内容。并记下DS与ES值。(5) 修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?)仍和原来一样。修改后程序:MOVSI,0 MOVDI,0MOVAX,1000MOVDS,AXMOVES,AXMOVCX,0FCLDREPMOVSBINT20六学习要求1各项实验记录;2要求你修改的程序的清单(修改后)和调试记录;3自编程序原稿及调试后修正稿,写出原稿错在那里
11、。七思考题1MOVBYTE PTRBX,20 MOVWORD PTRBX+SI+2,2846上述指令中BYTE PTR及WORD PTR伪操作不加行不行?试一试。答:不行2用G命令运行多字节加法程序,并用D命令检查其结果(存放在哪里?),是否正确?3将多字节加法程序中的INT 20H指令改为INT 3,有何区别?若这条指令不加,行不行?试一试。4数据串搬家程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的字符串搬到1002H开始的地方去?修改程序以做到这一点。 八. 小结此次设计使我对DEBUG的命令有了更深一步的了解。知道如何编写程序,如何验证程序的对错。同时熟悉了汇编
12、语言的一些指令。对汇编语言的一些简单程序的调试运行有了初步的掌握。中间遇到了各种问题,但最终都通过自己的努力解决了。 3 初级程序的编写与调试(二)一课程目的1掌握无条件转移指令、条件转移指令;2掌握利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法;3掌握直接向视频RAM送ASCII码进行屏幕显示的方法;4掌握屏幕字符显示程序编写与调试。二课程内容1 字符、字符串的屏幕显示;2 直接向VRAM送ASCII码显示字符;3 用字符搜索法确定字符串长度;4 16进制数化ASCII码的一般方法(显示内存内容)。三课程要求1 仔细阅读有关无条件转移指令、条件转移指令的内容;2 阅读利用D
13、OS功能调用INT21H的2号和9号功能进行屏幕显示的内容;3阅读实验指导书中的字符串屏幕显示程序、字符屏幕显示程序、直接向VRAM送ASCII码显示字符程序、用字符搜索法确定字符串长度程序、16进制数化ASCII码的一般方法的程序段,调试上述程序。四环境PC微机;DOS操作系统或 Windows 操作系统;MASMEXE,LINKEXE,DEBUGCOM或宏汇编集成环境。五方法步骤1利用INT 21 0AH号功能调用显示字符串。(1)用A命令在100H处键入下列程序:MOVAH, 9MOVDX,110INT21INT20(2)用A命令在110H处键入下列字符串的ASCII码:DBThis i
14、s a sample!$ (3)用N命令和W命令将此程序(包括数据区)存入文件名为AAOM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。(4)用Q命令退出DEBUG。(5)在DOS命令下打AA,运行此程序,即在屏幕上显示This is a sample!字符串,若不出现,用DEBUG检查程序有无错误。2利用INT 21H 2号功能显示字符(1)用A命令在100H处键入下列程序:XORDL,DLMOV CX,100LOP: MOVAH,2INT21INCDLPUSH CXMOVCX,8DELY: PUSHCXMOVCX,0J: LOOP JPOPCXLOOP DELYPOPCXLOOP
15、LOPINT20(2)用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?(3)按CTRL+BREAK退出此程序,若一次不行可多做几次。3直接向VRAM送ASCII码显示字符(1)用A命令在100H处键入下列程序MOVAX,B000MOVDS,AXXORAL,ALXORBX,BXMOVCX,100LOP:MOVBX,ALINCBXINCALPUSHCXMOVCX,8DELY:PUSHCXMOVCX,0J: LOOPJPOPCXLOOPDELYPOPCXLOOPLOPINT20(
16、2)用N命令和W命令将此程序存入BB.COM文件中。(一定要先存入!)(3)用G命令运行此程序,仔细观察每一个ASCII码显示结果,并和字符表及上一道程序运行情况进行对照,其控制字符区(07-0DH)显示结果和INT 21H 2号功能调用有何不同?4用字符搜索法确定字符串长度(1)用A命令在100H开始的内存处键入下列程序JMPSTARTDBThis is the program to measureDBthe length of a string!$START: MOVBX,102MOVAL,24XORCL,CLLOP: CMPAL,BXJZEXITINCBXINCCLJMPLOPEXIT:
17、 INT3(2)用G命令运行此程序,并检查CL的统计长度是否与你自己统计的实际长度是否一样? 答:一样。5用字符搜索法确定字符串长度 (1)用A命令在100H处键入下列程序:MOV SI,0MOV BL,10LOP: MOVDL,SIMOVCL,4SHRDL,CLCMPDL,0AJCJ1ADDDL,7J1: ADDDL,30MOVAH,2INT21MOVDL,SIANDDL,0FCMPDL,0AJCJ2ADDDL,7J2: ADDDL,30MOVAH,2INT21MOVDL,20MOVAH,2INT21INCSIDECBLJNZLOPINT20(2)用N,W命令将此程序用CCCOM文件名存入磁
18、盘。(3)用Q命令退出DEBUG。(4)在DOS命令状态下直接运行CCCOM命令文件,应在屏幕上显示出内存从0000H开始的16个字节的内容,若有错误,用DEBUG检查之。六学习要求 1、各项实验记录及观察体会。2、自编程序草稿及调试结果。七思考题 利用INT 21H 显示和直接向VRAM送ASCII码显示方法在显示结果上有什么不同?答:1、INT 21H只能在当前位置显示默认属性(即颜色)的字符,在VRAM中可修改任何一个位置的字符和属性。 2、INT 21H更靠近用户,使用简单。修改VRAM更靠近硬件,需记住对应于屏幕某位置的物理地址才能使用。八. 小结 本设计比较难,但了解了字符串转移的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 实验 报告 37
限制150内