华中科技大学汇编语言程序设计实验报告(二).doc
文本预览下载声明
课程实验报告
课程名称: 汇编语言程序设计实验
实验名称:实验一 编程基础
实验时间:2017-3-15, 14: 30-17: 30实验地点: 南一楼804室60号实验台
指导教师: 李专
专业班级:计算机科学与技术201502班
学 号: U201414596 姓 名: 卢振兴
同组学生: 无 报告日期: 2017年3月15日
原创性声明
本人郑重声明:本报告的内容由本人独立完成,有关观点、方法、数据和文献等的引用 已经在文屮指出。除文屮已经注明引用的内容外,本报告不包含任何其他个人或集体已经公 开发表的作品或成果,不存在剽窃、抄袭行为。
特此声明!
学生签名:卢振兴
日期:2017. 3. 15
成绩评定
实验完成质量得分(70分) (实验步骤清晰详细深入, 实验记录真实完整等)
报告撰写质量得分(30分) (报告规范、完整、通顺、 详实等)
总成绩(100分)
指导教师签字: 口期:
实验目的与要求
掌握汇编源程序编辑工具、汇编程序、连接程序、调试工具TD的使用;
理解数、符号、寻址方式等在计算机内的表现形式;
理解指令执行与标志位改变之间的关系;
熟悉常用的DOS功能调用;
熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法;
加深对转移指令及一些常用的汇编指令的理解。
实验内容
任务1.《80X86汇编语言程序设计》教材屮P31的1.14题。
要求:
直接在TD屮输入指令,完成两个数的求和、求差的功能。求和/差后的结果放在(AH) 屮。
请事先指出执行指令后(AH)、标志位SF、OF、CF、ZF的内容。
记录上机执行后的结果,与(2)屮对应的内容比较。
求差运算中,若将A、B视为有符号数,且AB,标志位有何特点? 若将A、B视为无符号数,且AB,标志位又有何特点?
任务2.《80X86汇编语言程序设计》教材屮P45的2.3题。
要求:
分别记录执行到“ MOV CX , 10 ”和“ INT 21H ”之前的(BX),
(BP),(SI),(D I)各是多少。
记录程序执行到退出之前数据段开始40个字节的内容,指出 程
序运行结果是否与设想的一致。
在标号LOPA前加上--段程序,实现新的功能:先显示提示信息“Press any key to begin!-,然后,在按了一个键Z后继续执行LOPA处的程序。
操作提示:使用TD.EXE调试程序时,应先单步执行各个语句,每执行一条语句,都 应观察数据段屮的内容以及相应寄存器的变化。首先注意观察对DS寄存器的赋值过程,并 在TD的数据窗II定位待观察的数据区位置。其次,单步执行循环体两遍且正确理解了循环 体语句的含义后,可在“MOVAH, 4CH处设置断点,然后直接执行到断点处,回答(1)和 (2)的问题。
任务3.《80X86汇编语言程序设计》教材中P45的2.4题的改写。
要求:
(1) 实现的功能不变,对数据段中变量访问时所用到的寻址方式中的寄存器改成32位寄 存器。
(2) 内存单元中数据的访问采用变址寻址方式。
(3) 记录程序执行到退出Z前数据段开始4()个字节的内容,检查 程
序运行结果是否与设想的一致。
(4) 在TD代码窗口中观察并记录机器指令代码在内存中的存放形式,并与TD中提供的 反汇编语句及自己编写的源程序语句进行对照,也与任务2做对比。(相似语句记录一条即 可,重点理解机器码与汇编语句的对应关系,尤其注意操作数寻址方式的形式)。
(5) 观察连续存放的二进制串在反汇编成汇编语言语句时,从不同字节位置开始反汇编, 结果怎样?理解IP/EIP指明指令起始位置的重要性。
任务4.设计实现一个学生成绩查询的程序。
1、实验背景
在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生 的相关信息包括?:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩 (1个字节),英语成绩(1个字节),平均成绩(1个字节)。
例如:
N
EQU
30
BUF
DB
zhangsai,0,();学生姓名,不足10个字节的部分用0填充
DB
100,85,80,? ;平均成绩还未计算
DB
lisi,,6 DUP(O)
DB
80, 100, 70,?
DB
N-3 DUP( TcmpValue“,80,90,95,?);除了 3个已经具体定义了学生信息的成绩
表以外,其他学生的信息暂时假定为一样的。
DB
wangwiT, 0, 0, 0, 0 ; 最后一个必须是自己名字的拼音
DB
85,85, 100,?
2、功能一:提示并输入待查询成绩的学生姓名
(1) 使用9号DOS系统功能调用,提示用户输入学生姓名。
(2) 使用10号DOS系统功能调用,输入学生姓名。输入的姓名字符串放在以in_name 为
显示全部