1、第一部分 汇编语言程序设计实验一 DEBUG 的使用实验目的1.学习使用 DEBUG 程序的常用命令。2.利用 DEBUG 学习 8086/8088 CPU 指令系统。3.了解计算机取指令执行指令的工作过程。4.掌握用DEBUG调试程序。实验要求1、上机前要做好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。2、上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与试验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序)的使用方法。在程序的调试过程中,有意识的学习及掌握程序的各种操作命令以便掌握程序的调试方法及技巧。实验器材微型计算机、WINDOWS操作系统、D
2、OS系统、DEBUG程序、MASM 5.0实验内容1学习常用debug命令的使用方法,重点掌握R, D, E, F, A,U, G, T,Q命令的使用。 (要求在预习时列出并记忆常用命令的格式和功能)。(必做)2在debug下完成以下任务。记录各程序段的机器代码。(可以用emu8086)(必做)(1)用七种(除隐含寻址外)不同的寻址方式实现数据的传送。记录执行结果,同预期结果比较。(2)将偏移地址为2000h开始的100个单元依次设置为099。(3)将两个64位的二进制数相加,记录相加的和以及各个状态标志的值。(要求在预习时画出程序框图,写出程序段的清单;将需要计算的数据和计算结果的均存放在内
3、存中,可以用为指令 db 定义存放数据的单元; 程序的结束可以用 int 20h 指令,使程序正常结束;上机时完成以上的要求)3. 编译程序(选作)1) 阅读以下程序,指出以下程序完成的功能。2) 用编辑软件EDIT将以下源程序录入计算机并保存为 “.ASM”文件。3) 用MASM命令将其编译“.OBJ”文件,并改错。(命令格式:masm ProgramName.asm;)4) 然后再用LINK命令将其编译为“.EXE”文件。(命令格式:link ProgramName;)5) 执行程序。6) 先进入 DEBUG 然后再用 n、l 命令加载“.EXE”文件,并观察加载文件前后各寄存器的变化。d
4、ata segmentx db 34hy db 33hz db ?data endsstack1 segment para stack stackdb 100 dup(?)stack1 endscode segmentassume cs:code, ds:data,ss: stack1start:mov ax,stack1mov ss,axmov ax,datamov ds,axmov al,xadd al,ymov z,alcode endsend start实验报告要求1. 实验报告中要求包含实验目的、实验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机执行结果、实验讨论等部分。
5、在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。实验二 汇编语言程序设计基础实验目的1. 掌握和熟悉汇编语言程序上机过程。2. 掌握顺序程序设计的方法。3. 掌握用 DEBUG 对程序进行调试。实验要求1. 上机前要做好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。2. 上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与试验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序)的使用方法。在程序的调
6、试过程中,有意识的学习及掌握程序的各种操作命令以便掌握程序的调试方法及技巧。实验器材微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容1. 编写程序,在屏幕上分行显示自己的姓名、学号。2. 练习常用 debug 命令的使用方法,重点掌握 R, D, E, F, A,U, G, T,Q 命令的使用。3. 编写程序,通过键盘输入 09 之间的一个数字,利用查表法计算其平方。在DEBUG 下查看执行结果。实验步骤 1. 编辑源程序。 (注意:保存文件时文件的扩展名必须为.asm,最好
7、将文件保存在自己的文件夹下) 。 2. 汇编源程序,应用 MASM.EXE 对源程序进行汇编,生成.obj 的目标文件和.lst 的列表文件,通过列表文件查看并记录其中一个程序的目标代码。3. 连接目标程序,应用 LINK.EXE 对目标模块进行连接,生成 .EXE 的可执行文件,执行可执行文件,验证程序功能。4. 调试程序,若程序执行有问题,用 debug.exe 进行调试。注:若使用 MASM FOR WINDOWS,直接在 WINDOWS 下双击 MASM FOR WINDOWS 图标,打开 MASM FOR WINDOWS,在右边的程序编辑窗口中录入程序,录入完毕后保存程序、然后可以直
8、接执行。具体说明查看程序自带的软件使用说明。实验报告要求1. 实验报告中要求包含实验目的、实验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机执行结果、实验讨论等部分。在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。实验二 分支程序设计 实验目的 1. 掌握分支程序的基本结构和设计方法。 2. 掌握分支程序上机运行和调试方法。3. 熟悉 DEBUG 的使用。 实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DE
9、BUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容 1. 用分支结构设计程序实现符号函数 ,要求 x 和 y 存放在内存单元中10xy,并将判断的结果在屏幕上显示输出。2. 在键盘上输入一个字符,判断是否为小写字母,若不是,显示错误信息,若是,则将其转换为大写字母并显示。3. 在键盘上输入一个字符,判断它是一个数字、大写字母还是小写字母,若为数字,则显示 digital,若为字母,显示 letter,否则,显示 other。 4. 将字节型变量 x 的低四位(一位十六进制数)以十六进制数的形式显示。(以上内容要求至少完成两个)实验步
10、骤 1. 编辑源程序。 2. 汇编源程序,生成.obj 的目标文件和.lst 的列表文件。3. 连接目标程序,生成 .EXE 的可执行文件,执行该文件,验证程序功能。4. 调试程序,若程序执行有问题,用 debug.exe 进行调试。 实验报告要求1. 实验报告中要求包含实验目的、实验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机执行结果、实验讨论等部分。在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。实验三 循环程序设计
11、 实验目的 1. 加深对循环结构的理解。 2. 掌握循环程序的设计方法。 实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容 1. 编制程序计算 S=1+23+34+45+N(N+1)+直到 N(N+1)大于 200为止,并将结果由屏幕上显示出来。 2. 将字形变量 x 以二进制数的形式在屏幕上显示输出。3. 将字形变量 x 以十六进制数的形式在屏幕上显示输出。4. 将内存单元缓冲区中的符号数(20 个)按从小到大的顺序排列,并以十六进制数的形式显示。 实验步骤 1.
12、 编辑源程序。 2. 汇编源程序,生成.obj 的目标文件和.lst 的列表文件。3. 连接目标程序,生成 .EXE 的可执行文件,执行该文件,验证程序功能。4. 调试程序,若程序执行有问题,用 debug.exe 进行调试。 实验报告要求1. 实验报告中要求包含实验目的、实验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机执行结果、实验讨论等部分。在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。实验四 子程序的设计和调试实
13、验目的 1学习子程序的定义和调用方法。 2掌握子程序的结构。 3掌握子程序设计、编制及调试。4掌握宏的定义和使用。 实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容 1 编制程序计算 S=1+2+3+N,并将结果由屏幕上显示出来。(要求:在屏幕上显示提示信息,提示输入 N,N 用十六进制表示,且 N 小于 0FH,用子程序实现(段内) ,将输入的结果用十六进制数输出显示,显示结果的程序用子程序是实现(段间))。2 要求在键盘上输入一个小于四位的十进制数,将其转换为二
14、进制数存放,并讲转换后的结果以十六进制数的形式在屏幕上显示出来。 (注意:首先判断正负,正数直接转换,负数以补码的形式存放;要求显示输入数据的提示信息,用子程序实现(段内) ,显示转换后结果结果的功能用子程序实现(段间) 。注:以上内容至少完成一个。实验步骤 1. 编辑源程序。 2. 汇编源程序,生成.obj 的目标文件和.lst 的列表文件。3. 连接目标程序,生成 .EXE 的可执行文件,执行该文件,验证程序功能。4. 调试程序,若程序执行有问题,用 debug.exe 进行调试。 实验报告要求1. 实验报告中要求包含实验目的、实验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机
15、执行结果、实验讨论等部分。在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。实验五 密码程序设计实验目的1 学习综合程序的设计和调试方法。 2 掌握用汇编语言进行密码验证程序的设计。实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容1. 设计一个密码验证程序,在数据段设定一个密码,程序执行时首先显示输入密码的提
16、示信息,要求输入密码,将输入的密码同设定的密码进行比较,相同则显示欢迎信息,密码错误显示错误信息并要求重新输入,三次错误则显示非法用户信息并退出程序。可以定义宏实现多次需要的操作。2. 对以上程序进行修改,对初始密码利用某种算法进行加密,在比较时利用同样的算法对输入密码进行转换后在进行比较,增加对密码的保护。实验步骤 1. 编辑源程序。 2. 汇编源程序,生成.obj 的目标文件和.lst 的列表文件。3. 连接目标程序,生成 .EXE 的可执行文件,执行该文件,验证程序功能。4. 调试程序,若程序执行有问题,用 debug.exe 进行调试。 实验报告要求1. 实验报告中要求包含实验目的、实
17、验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机执行结果、实验讨论等部分。在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。实验六 音乐程序的设计与调试实验目的1. 学会设计端口级汇编语言程序。2. 进一步掌握子程序的设计。3. 初步学会如何控制计算机发声。实验内容1. 编写简单的发声程序,实现计算机每隔十秒响铃一次。2. 利用通用发声子程序(gensound)为基础编写音乐程序,演奏一首乐曲。3. 利用通用发声子程序编写键
18、盘音乐程序,实现利用键盘演奏乐曲。实验仪器设备微型计算机、WINDOWS操作系统、DOS系统、DEBUG程序、MASM 5.0实验步骤 1. 编辑源程序。 2. 汇编源程序,生成.obj 的目标文件和.lst 的列表文件。3. 连接目标程序,生成 .EXE 的可执行文件,执行该文件,验证程序功能。4. 调试程序,若程序执行有问题,用 debug.exe 进行调试。 实验报告要求1. 实验报告中要求包含实验目的、实验器材、实验内容、各实验内容对应的源程序清单及预期结果、上机执行结果、实验讨论等部分。在讨论部分主要说明所出现的错误,解决的方法及实验收获。2. 预习报告中要准备好除上机执行结果和实验
19、讨论以外的所有项目。3. 实验报告要求在下次实验前交到学习委员处,学习委员按学号排好后在做下次实验时交到实验室。选作实验一 输入输出程序的设计 实验目的 1. 学习 dos 功能调用的使用方法。2. 掌握利用 dos 功能调用实现输入输出的方法。3. 利用 dos 功能调用实现人机交互。实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容 1编写程序实现密码验证的功能。要求设置一密码,长度为 68 数字或字符,程序执行时显示输入密码的提示信息,并等待密码的输入,若输入的
20、密码正确,则显示欢迎信息,否则显示密码错误的信息,重新输入,错误三次则程序退出。选作实验二 BCD 码加法程序的设计和调试实验目的 1. 掌握 BCD 码的运算。2. 进一步掌握子程序程序设计方法。3. 掌握宏指令的用法。 实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容 编写一程序,从键盘上输入任意的两个小于四位的十进制数,用 BCD 码实现计算其和,并将结果在屏幕上显示出来。要求:显示输入数据的提示信息用宏指令实现;输入数据用字程序实现(段内);运算要求用十进制
21、数的运算指令实现,结果用十进制数表示,显示结果用子程序实现。选作实验三 显示程序设计 实验目的 1. 掌握软件延时程序的编写方法。 2. 熟悉系统功能调用的方法。 3. 掌握宏定义与宏调用的方法。 实验设备 微型计算机、WINDOWS 操作系统、DOS 系统、DEBUG 程序、MASM 、LINK、CREF。 (汇编程序也可以使用 MASM FOR WINDOWS)实验内容 1. 在 CRT 上每隔一秒连续显示字符 09。 编程提示:为了使输出的字符之间有空格,在每一个循环中输出一个 09 的字符和一个空格。为了输出 09,置寄存器 BL 初值为 0,每循环一次使其增量。为了保证输出是十进制,增量后用 DAA 调整指令。由于输出为一位十进制数,用 AND 0FH 指令屏蔽高 4 位。 2. 用系统功能调用将HELLO由键盘输入,再从屏幕输出*HELLO* 。