新编汇编语言程序设计上机指导.doc_第1页
新编汇编语言程序设计上机指导.doc_第2页
新编汇编语言程序设计上机指导.doc_第3页
新编汇编语言程序设计上机指导.doc_第4页
新编汇编语言程序设计上机指导.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编语言程序设计实验讲义(第二版)电子信息教研室 编楚雄师范学院物理与电子科学系2007年9月 前 言本讲义根据物电系电子信息科学与技术专业汇编语言程序设计教学大纲编写,适用于电子信息科学与技术、计算机及电类有关专业。本讲义由徐卫华编写,其第一版完成于2003年3月,供我系电信04级使用。根据使用情况,经过修订,现在印刷第二版,供我系电信专业使用。编者目 录实验一汇编语言程序的建立和执行1实验二调试程序的使用3实验三数据传送、算术运算、位操作类指令4实验四转移、循环和子程序类指令5实验五中断指令及功能调用6实验六串操作类指令7实验七分支结构、循环结构程序设计8实验八子程序设计9实验九综合性/设计性实验(小论文)10附录调试程序CodeView的使用及DEBUG常用命令11附录2ASCII码表14附录3常用的DOS系统功能调用15实验一汇编语言程序的建立和执行一、实验目的构建汇编语言的编程环境。熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。了解一个完整的汇编语言源程序的格式,包括常用的指令、伪指令的使用。二、实验内容构建汇编语言的编程环境解压MASM615.EXE自解压软件包:DOS-MASM615.EXE,自动建立文件夹D:ML615,该文件夹下已包含汇编语言编程时所需的汇编程序、连接程序、调试程序,见MASM615.EXE软件包说明文件readme.txt。拷贝文件夹UltraEdit至D:ML615下,UltraEdit文件夹下包含编辑器Uedit32.exe。编辑源程序打开Uedit32.exe,录入教材lt301a.asm源程序:.model small.stack.datastring db hello!,0dh,0ah,$.code.startupmov dx,offset stringmov ah,9int 21h.exit 0end以lt301a.asm命名并保存该文件于文件夹D:ML615下。汇编连接源程序进入WindowsXP的DOS方式,进入D:ML615,运行:ML lt301a.asm若有语法错误,返回第2步,直至无错误。此时,可产生可执行文件lt301a.asm.exe。将lt301a.asm.exe调入CodeView,进行常用的操作。6录入教材lt301b.asm源程序,重复第2、3、4、5步,进一步熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。三、实验报告记录实验过程及程序运行结果。实验二调试程序的使用一、实验目的掌握调试程序CodeView的使用方法。二、实验内容利用模板文件启动CodeView。利用命令窗口的汇编A命令汇编第一章寻址方式中的各个示例指令。通过设置参数、单步执行、观察执行结果,加强对各种寻址方式的理解;同时熟悉CodeView的基本操作。三、实验报告记录实验过程及程序运行结果。实验三数据传送、算术运算、位操作类指令一、实验目的掌握常用的数据传送类、算术运算类、位操作类指令的使用方法。二、实验内容调试例题2.1、例题2.6、例题2.8,正确理解MOV、XCHG、XLAT指令的用法;单步执行、观察运行结果并与自己的判断进行比较,写出正确结果。调试例题2.17a、例题2.18a、例题2.19,例题2.26,正确理解加法、减法指令及其对状态标志位的影响。调试例题2.28、例题2.29、例题2.30、例题2.33,掌握逻辑指令和移位指令的用法,注意它们对状态标志位的影响。三、实验报告记录实验过程及程序运行结果。实验四转移、循环和子程序类指令一、实验目的掌握常用的转移、循环和子程序类指令的使用方法。二、实验内容调试例题2.38、例题2.43、例题2.45,注意CS、IP、CX寄存器及其有关状态标志的变化,掌握转移、循环和子程序指令的用法。上机完成习题2.25、习题2.29,写出正确结果。三、实验报告记录实验过程及程序运行结果。实验五中断指令及功能调用一、实验目的掌握中断指令的使用方法。掌握系统功能调用方法二、实验内容调试例题2.46、例题2.47、例题2.50,观察运行结果,熟悉系统功能调用的步骤。注意单步执行中断指令时,用P命令(不要用T命令)。上机完成习题2.36,执行并写出正确结果。三、实验报告记录实验过程及程序运行结果。实验六串操作类指令一、实验目的掌握串操作类指令的使用方法。二、实验内容1调试例题2.52、例题2.54、例题2.55,观察内存数据的变化以及SI、DI和CX寄存器内容的变化,掌握串操作类指令的用法。上机完成习题2.15、习题2.16,写出正确结果。三、实验报告记录实验过程及程序运行结果。实验七分支结构、循环结构程序设计一、实验目的掌握分支结构程序设计方法。掌握循环结构程序设计方法。二、实验内容调试例题4.3、例题4.4,熟悉分支程序设计方法。上机完成习题4.9、习题4.10、习题4.11,生成可执行文件并执行。上机完成例题4.7,增加显示给定字符串的功能。上机完成例题4.8,熟悉循环结构程序设计方法,上机完成习题4.18、4.19,生成可执行文件并执行。三、实验报告记录实验过程及程序运行结果。实验八子程序设计一、实验目的掌握子程序设计方法二、实验内容上机完成例题4.10,熟悉子程序设计方法。上机完成习题4.29,写出正确结果。三、实验报告记录实验过程及程序运行结果。实验九综合性/设计性实验(小论文)一、实验目的通过实验,掌握对汇编语言指令的综合应用以及分支结构、循环结构和子程序设计方法。二、实验内容综合应用80X86的所有指令及常用的程序设计方法,自选一个题目,完成一篇小论文。三、实验报告提交论文。附录调试程序CodeView的使用及DEBUG常用命令一、CodeView的使用1、功能键F2:显示/隐含的寄存器组窗口F3:以不同的显示方式显示当前执行的程序F4:以不同的显示方式显示当前执行的程序F5/F7:执行到下一个逻辑断点,或到程序尾F6:依次进入当前屏幕所显示的窗口F8:单步(跟踪)执行指令,并进入被调用的子程序F9:在源程序行中设置/取消断点,用鼠标左键双击之也可F10:单步执行指令,但不进入被调用的子程序Alt+F9:进入命令行2、命令窗口在该窗口中,可输入前面介绍的DEBUG命令。3、寄存器组窗口可以直接在寄存器组窗口内修改各寄存器的内容和各标志位,还可以用Options菜单中的“32-Bit Registers”菜单项来切换16位和32位寄存器。二、DEBUG常用命令1、启动DEBUG的一般命令如下:DEBUG 文件名 参数表其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。被调试的文件可以是系统中的任何文件,但通常它们的后缀为EXE或COM。当DEBUG启动成功后,将显示连接符“-”,这时,可输入各种命令。表1 DEBUG中标志位的符号表示标志名称溢出OF方向DF中断IF负号SF零ZF辅助进位AF奇偶PF进位CF置位状态OVDNEINGZRACPECY复位状态NVUPDIPLNZNAPONC表2 DEBUG命令及其含义命令格式功能说明A 地址输入汇编指令C 范围 起始地址对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元D 范围显示指定范围内的内存单元内容E 地址 字节值表用值表中的值替换从“地址”开始的内存单元内容F 范围 字节值表用指定的字节值表来填充内存区域G =起始地址 断点地址从起点(或当前地点)开始执行,到终点结束H 数值1 数值2显示二个十六进制数值之和、差I 端口地址从端口输入L 地址 驱动器号 扇区 扇区数从磁盘读M 范围 地址把“范围”内的字节值传送到从“地址”开始的单元N 文件标识符 文件标识符指定文件名,为读/写文件做准备O 端口地址 字节值向端口输出P =地址 指令数按执行过程,但不进入子程序调用或软中断Q退出DEBUG,不保存正在调试的文件R 寄存器名显示和修改寄存器内容S 范围 字节值表在内存区域内搜索指定的字节值表。如果找到,显示起始地址,否则,什么也不显示T =地址 指令数跟踪执行,从起点(或当前地点)执行若干条指令U 范围反汇编,显示机器码所对应的汇编指令W 地址 驱动器号 扇区 扇区数向磁盘写内容,(BX、CX)为写入字节数2、关于参数的几点说明:(1)进制:在DEBUG中输入或显示的数据都是十六进制形式;(2)分隔:命令和参数、参数和参数之间要用空格、逗号或制表符等分隔;(3)地址:用“段值:偏移量”的形式来表示地址,也可用段寄存器来代表“段值”;例如:1000:0,ds:10,cs:30等;(4)范围:用来表示地址范围,从哪个地址开始,到哪个地址结束。它有二种表示方式:地址 地址前者表示起始地址,要用“段值:偏移量”来表达,后者表示终止地址,只用“偏移量”来表示;地址 长度前者表示起始地址,要用“段值:偏移量”来表达,后者表示该区域的大小,用字母L开头的数值来表示例如:100:50 100段值为100,偏移量从50到100的内存区域,100:50 L100段值为100,偏移量从50开始的100个字节区域。(5)端口地址:二位十六进制数值(6)字节值:二位十六进制数值(7)字节值表:由若干个字节值组成,也可以是用引号括起来的字符串(8)驱动器号:0驱动器A、1驱动器B、2驱动器C、3驱动器D等3、关于使用命令的几点说明:(1)在DEBUG中的提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行(2)命令是单个字母,命令和参数的大小写可混合输入(3)可用F1、F2、F3、Ins、Del和光标移动键等来编辑本行命令(4)当命令出现语法错误时,将在出错位置显示“ Error”(5)可用C或Break来终止当前命令的执行,还可用S来暂停屏幕显示(当连续不断地显示信息时)附录2ASCII码表附录3常用的DOS系统功能调用1、 什么是DOS系统功能调用? 系统功能调用是DOS为用户提供的常用子程序(80多个),可在汇编语言程序中直接调用。这些子程序的主要功能包括: (1)设备管理(如键盘、显示器、打印机、磁盘等的管理) (2)文件管理和目录操作 (3)其他管理(如内存、时间、日期等管理) 这些子程序给用户编程带来很大方便,用户不必了解有关的设备、电路、接口等方面的问题,只需直接调用即可。 2、 调用方法 DOS功能调用的子程序已按顺序编号功能号(00H68H),其调用方法是: (1) 功能号AH (2) 入口参数指定寄存器 (3) INT 21H 用户只须给出以上三方面信息,DOS就可根据所给信息自动转入相关子程序执行。 3、常用的系统功能调用 (1)返回DOS 向量号 21H 功能号 4CH (2)键盘输入并显示 向量号 21H 功能号 1 该功能从键盘输入一个字符,将其ASCII码保存在AL中,输入字符回显在CRT上。 (3)键盘输入但不显示输入字符 向量号 21H 功能号 8 该功能从键盘输入一字符,将其ASCII码保存在AL中,但不显示。这种功能往往在设置口令时使用。 (4)显示一字符 向量号 21H 功能号 2 入口参数:DL=待显示字符的ASCII码。该功能显示DL中的字符。 (5)在打印机上打印一字符 向量号 21H 功能号 5 入口参数:DL=待打印字符的ASCII码。 (6)显示以“$”结尾的字符串 向量号 21H 功能号 9 入口参数:DS:DX指向字符串的首地址 (7)字符串输入 向量号 21H 功能号 0AH 入口参数:DS:DX指向输入缓冲区。 输入缓冲区格式如下: 第一字节为预定的最大输入字符数。第二字节空出,待中断服务程序填入键盘连续输入到回车前实际输入字符数。第三字节及以后字节,待中断服务程序填入输入字符串的ASCII码。 (8)异步通信口输入 向量号 21H 功能号 3 该功能从标准异步通信口等待输入一字符,然后送AL中。启动DOS时,异步通信口波特率为2400,设有偶校验位,数据长度为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论