《汇编语言程序设计》-实验指导书.docx
《《汇编语言程序设计》-实验指导书.docx》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》-实验指导书.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计 课程试验指导书Assembly Language Programming 计算机科学与技术系杨定安 编写佛山科学技术学院摘要汇编语言试验主要使学生把握DEBUG 或DEB2023 调试程序中各命令的使用方法,把握MASM 汇编程序对汇编语言源程序进展编辑、汇编、连接、装配、调试到运行的上机操作方法。本试验大纲要求学生娴熟把握汇编语言指令练习、挨次程序设计、分支程序设计、循环程序设计和子程序设计。目 录试验一 宏汇编程序MASM及汇编语言上机过程3试验二 程序的根本构造练习8试验三 汇编编译器的使用及程序调试 1 1 试验四 分支程序设计17试验五 循环程序设计19试验六 子程
2、序设计23试验七 汇编语言与 C 语言混合程序设计29试验一 宏汇编程序MASM及汇编语言上机过程一、试验目的1. 通过试验了解和生疏微机系统的配置。2. 学习在DEBUG 状态下输入汇编源程序的方法。3. 初步把握调试(在DEBUG 状态下)的过程。二、试验原理1. 本试验要求在DEBUG 状态下输入汇编源程序,并用 DEBUG 命令进展调试。用单步跟踪的方法验证指令的功能。2. 以下是给定的参考程序,并在试验时在每条指令的“; ”符号右边按要求填写指令的执行结果。注: 微机进入DEBUG 状态下之后,一切马上数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”; 在 DEBUG
3、 状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS 和 IP 存放器原来的值。三、试验仪器微机一台,U 盘一块。四、试验步骤1. 开机和关机操作挨次开机:先翻开微机外部设备电源开关,如显示器,最终翻开主机电源开关。关机:与开机相反,先关掉主机电源开关,然后关闭全部外设的电源开关。2. 装入DEBUG 程序假设计算机系统启动正常,可以进入MASM 文件夹或MASM5 文件夹从磁盘上调用DEBUG,程序到内存。如是WINDOWS 环境下,先运行CMD 命令,然后运行CD MASM 命令,再运行DEB2023 命令。一般C 盘上装有DEBUG
4、 和 DEB2023 软件,假设没有,可以用复制命令从其它盘拷贝过来, 然后从装有DEBUG 和DEB2023 软件的磁盘上调用DEBUG 和DEB2023 软件程序。例如:C :MASMDEB2023 (回车符) (DEBUG 提示符)当显示器消灭提示符“”时,说明已进入DEBUG 状态,这时,可用DEBUG 命令进展操作。4. 用DEBUG 的 Register 命令检查全部存放器内容,并作记录。命令格式: R 存放器名检查和修改存放器内容的命令R,它有三种方式:标 志 名溢出Overflow是/否置 位OV复 位NV1) 显示CPU 内部全部存放器内容和标志位状态;格式为:-R R 命令
5、显示中标志位状态的含义如下表所示:方向Direction减量/增量DNUP中断 Interrupt允许/屏蔽EIDI符号 Sign负/正NGPL零 Zero是/否ZRNZ关心进位Auxiliary Carry是/否ACNA奇偶Parity偶/奇PEPO进位Carry是/否CYNC2) 显示和修改某个指定存放器内容,格式为:-R 存放器名例如打入:-R AX 系统将响应如下: AXFIF4:表示 AX 当前内容为F1F4,此时假设不对其作修改,可按ENTER 键,否则,打入修改后内容,如:-R BX BX 0369:059F则 BX 内容由 0369 改为 059F 3显示和修改标志位状态,命令
6、格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时假设不作修改可按ENTER 键,否则在“-”号之后键入修改值,键入挨次任意。如OV DN EI NG ZR AC PE CY-PONZDINV5. 用DEBUG 的 Assemble 命令输入汇编源程序。格式: A 内存地址注:用“ ”符号括起来的局部表示可以省略。该命令的功能是从指定的内存地址开头括号不要输入逐条输入汇编语言源程序并汇编成机器码存入内存。假设地址缺省,则接上一个 A 命令最终一条指令之后输入汇编语句,假设没有用过 A 命令,则从CS:0100H 地址开头输入。例如:A 0CD3:0100在输入
7、A 命令之后,或每输入一条指令之后,显示器的左端给出了内存的段地址和偏移地址。每条指令均用回车()完毕。假设输入的指令有语法错误,DEBUG 拒绝接收,并给出提示,此时可以重输入。程序的最终一条指令输入完之后,再按一次回车键(),即可完毕汇编命令,回到DEBUG 提示符“”状态。6. 用DEBUG 的 Unassemble 命令反汇编。命令格式: U 起始地址终止地址该命令的功能是从起始地址到终止地址反汇编目标码,缺省值是接上一个 U 命令或从 CS:0100H 地址开头。例如:U显示器上将显示程序的内存地址、指令机器码的汇编源程序三列比照清单。7. 用DEBUG 的 Trace 命令单步跟踪
8、程序。命令格式: T =起始地址 指令条数 留意:=符号不能缺该命令的功能是从指定的起始地址开头逐条执行指令,每执行完一条指令,屏幕显示全部存放器内容和下一条指令地址和指令。假设=起始地址缺省,则 T 命令从CS:IP 地址开头执行指令。例如:T重复这一过程,即可看到每条指令执行后,全部存放器和标志存放器的标志位内容。此时,要检查内存单元的数据,可用DEBUG 的Dump 命令,命令格式:D起始地址终止地址该命令的功能是从起始地址到终止地址,连续显示存贮器单元的内容。假设地址缺省,则接上一个D 命令或从DS:0100H 地址开头显示。例如:D 参考程序:MOVAX, 2023; AL=MOVD
9、S, AX; DS=NOTAX; AX=XORAX, AX; AX=DECAX; AX=INCAX; AX=MOVBX, 2030; BH=MOVSI, BX; SI=MOVSI, BL; 2030H=MOVWORD PTRSI, 10F; 2030H=2031H=MOVDI, SI; DI=MOVDI+50, BH; DI+50H=MOVBH, SI; BH=MOVBL, DI+50; BL=MOVSP, 5000PUSHAX; AX=SS:4FFEH=SS:4FFFH=PUSHBX; BX=SS:4FFCH=SS:4FFDH=POPAX; AX=POPF; F=NEGBX; BX=XCHG
10、BX, AX; BX=STD; F=STI; F=CLD; F=CLIADCDI, 2050; F=; DI=F=ADCSP, DI; SP=F=ADCAX, 1500; AX=F=SUBAX, BXSHLAH, 1; AX=; AH=BX=RCLAX, 1SHRBH, 1RCRBL, 1MOVCL, 4MOVDX, 80F0 ROLDX, CL; AX=; BH=; BL=; DX=CL=INT20; CS=IP=五、试验报告要求1. 整理每条指令执行的结果,填到打印清单的右半局部(应留意内存数据检查的正确性)。2. 比较试验记录与理论分析的结果是否一样,假设有不同,找出差异及问题所在。3.
11、 总结本次试验的体会。试验二 程序的根本构造练习一、试验目的1. 生疏IBM PC 机的根本指令。2. 连续生疏计算机键盘及各功能键参阅DOS 操作手册。3. 连续学习DEBUG 命令。4. 验证指令的功能。二、试验原理在 DEBUG 状态下,分别输入下面各程序段,每输入完一个程序段,用 G 命令进展连续方式执行程序,在连续执行时,要记录程序的执行结果。参考程序:1. 在内存 10000H 单元开头,建立 00H0FH00H 31 个数,要求 00H0FH 数据渐渐增大,0FH00H 渐渐减小。该程序从内存 CS:0100H 地址开头输入。首先运行 A100 命令进入输入汇编语句状态。13A2
12、:0100MOVAX, 100013A2:0103MOVDS, AX13A2:0105MOVSI, 013A2:0108MOVCL, 0F13A2:010AXORAX, AX13A2:010CMOVSI, AL13A2:010EINCSI13A2:010FINCAL13A2:0111DECCL13A2:0113JNZ010C13A2:0115MOVCX, 1013A2:0118MOVSI, AL13A2:011AINCSI13A2:011BDECAL13A2:011DLOOP011813A2:011FINT20注:转段指令的符号地址直接用确定偏移地址,该地址在用A 命令汇编输入时,可以看到程序
13、全部运行完之后,可用DEBUG 的Dump 命令查看建立的数据块内容。例如:D1000:001E2. 把上一个程序的执行结果(建立的 31 个字节数据块,其首地址在 10000H),分几种方式传送到以下指定的区域。(a) 该程序从内存CS:0150H 开头输入。把数据块传送到 5050H 开头的存贮区域中。首先运行A150 命令进入输入汇编语句状态。然后将如下程序输入。DEBUG 下不支持符号地址,如PPEA:标号等,在命令A 下输入程序时,不能输入标号如PPEA:,在用到标号的指令如 LOOP,JNZ 等,在其后直接输入要跳转的目的地址。 MOVAX, 1000MOVDS, AXMOVSI,
14、 0MOVDI, 5050MOVCX, 1F; 数据块长度是 31 PPEA:MOVAL, SIMOVDI, ALINCSIINCDILOOPPPEAINT20检查内存数据块的传送状况,可用“D”命令。(b) 用串传送指令MOVSB,把数据块传送到 5150H 开头的区域,该程序从内存 CS:0200H 开头输入。MOVAX, 1000MOVDS, 5150MOVCX, 1F CLDPPEB: MOVSBDEC CX JNZ PPEB INT 20检查程序最终的执行结果,可用“D”命令,例如:D1000:5150(c) 用重复串操作指令“REPMOVSB”把数据块传送到 5250H 开头的区域
15、。该程序从CS: 250H 地址开头输入。MOVAX, 1000MOVDS, 5250 MOVCX, 1F CLDREPMOVSB INT20检查程序的最终执行结果时,可用:D1000: 5250H(d) 用串操作的减量工作方式,把数据块传送到501FH 开头的区域。该程序从CS:0300H 开头输入。MOVAX, 101F MOVDS, 501F MOVCX, 1F STDREPMOVSB INT20检查程序的最终执行结果,用D 命令:D1000:5000三、试验仪器1. IBMPC 微机或兼容机一套。2. 预备一U 盘,用于存放你的程序。四、试验步骤参照试验一的步骤,依据本试验程序的内容,
16、分别输入各段程序,并单步和连续执行程序, 记录每条指令的执行结果和每个程序段的最终结果。在作单步操作或用G 命令设段点操作时,在暂停处,可以检查全部存放器和有关内存单元的内容,这不会影响程序的连续执行。假设想把源数据块重换一批数据,可以用DEBUG 的 Fill 命令填充的数据。例如:F1000:00L1F33从 1000:0000H 开头的 31 个字节被替换成 33H。五、试验预习要求1. 连续阅读PC 微机DOS 操作手册有关命令说明。2. 认真阅读DEBUG 调试程序的命令说明。3. 认真阅读本试验给出的各程序段。4. 写出每个程序段的结果数据(分析结果),并说明结果所在的位置(存放器
17、或存贮器)。六、试验报告要求1. 整理每个程序段在试验时的记录内容。2. 比较每个程序段的特点。3. 分析本次试验消灭的问题,找出问题所在。试验三汇编编译器的使用及程序调试一、试验目的1.、把握Masm 的使用;把握Link 的使用;把握Debug 或 Deb2023 的使用;生疏一种界面操作下的集成汇编语言编译器。二、试验要求:1 依据试验目的,认真完成试验中给出的任务;2 依据试验过程和结果,完成试验报告;3 在试验报告中应认真写出自己的试验心得和体会;4 鼓舞同学进展沟通,但是制止抄袭!5 每人一组,独立完成。三、试验原理及内容:1、试验内容:本试验是汇编语言学习的第一个试验,要求利用汇
18、编语言实现一个Dos 界面下的最简洁的“Hello Worl程d”序,只要可以实现在屏幕上输出一行字符即可;2、试验原理:一般的汇编程序包括两个局部:数据段和代码段有的程序还会有堆栈段,每个局部都有比较固定的格式; 汇编程序的输入和输出实现相比照较麻烦,需要调用Dos 中断来实现,期望学习输入和输出中断是如何实现的; 对于在字符界面下的汇编程序从 asm 源代码到生成可执行 exe 文件中间有多个步骤,需要用到 masm、link,需要娴熟把握; 汇编语言的调试相对也比较麻烦,需要用到 Debug 或 Deb2023 命令,期望把握常用的Debug 或 Deb2023 选项,能够看懂反汇编的结
19、果。四、试验软硬件环境:奔腾系列机器,操作系统为Dos 或者 Windows 系列,相关的汇编语言编译工具MASM、LINK 和 DEBUG以及集成编译器。五、试验步骤和方法:本试验重点在于生疏汇编语言编译器的使用及程序的调试,试验内容相比照较简洁,但是中间需要大家娴熟把握其中涉及到的每一个步骤,为后续试验打下良好的根底。下面是以 MASM 5.0,在 winxp 环境下,依据给定的任务为例进展的步骤说明由于这是第一个汇编程序,我们供给一个最根本的源程序供大家参考;:1、将包括MASM、LINK 以及 DEBUG 或 Deb2023 的文件架 MASM 拷贝到计算机C 盘的根名目下;2、翻开记
20、事本,输入如下代码:DATAS SEGMENT;数据段msgdb“Hello World!“, 13,10,“$“ ;此处输入数据段代码DATAS ENDSSTACKS SEGMENT ;堆栈段;此处输入堆栈段代码STACKS ENDSCODES SEGMENT;代码段ASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATAS MOV DS,AXLEA DX,msg ;此处输入代码据段代码mov ah,9INT 21hMOV AH,4CH INT 21HCODES ENDSEND START保存为 firPro.asm,保存位置为“C:masm”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言程序设计 汇编语言 程序设计 实验 指导书
限制150内