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