实验指导书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
28
实验6:子程序设计 • • 实验时数:2学时 实验目的: 1. 掌握子程序设计方法,能合理划分子程序。 2. 掌握子程序调用与返回的方法,能画出每个 步骤的堆栈变化。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
– Debug调试错误
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
21
实验2:循环程序设计 • • 实验时数:2学时 实验目的: 1. 掌握循环程序的结构,加深对循环程序的理 解。 2. 掌握循环程序的设计、调试方法,能构造出 正确的循环结构并能实现较复杂的算法。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
19
实验1:汇编语言程序结构与Debug的使用 • 程序代码 – Bin2Str1.asm – Bin2Str2.asm – Bin2Str3.asm – Bin2Str4.asm – Bin2Str5.asm – Ex4_17.asm
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
18
实验1:汇编语言程序结构与Debug的使用 • 实验步骤 6. 运行命令“MASM TEST”,汇编源文件,生成 目标文件TEST.OBJ。 7. 运行命令“LINK TEST”,链接目标文件,生成 可执行文件TEST.EXE. 8. 运行命令“DEBUG TEST.EXE”,调试运行。 9. 编辑源文件“Ex4_17.asm”,重复步骤1~8.
Grade.asm高级版本
IBM-PC汇编语言程序设计 实验指导书 Linghy 2018年10月21日星期日 24
实验3:分支程序设计 • • 实验时数:2学时 实验目的: 1. 掌握分支程序的结构。 2. 掌握分支程序的设计、调试方法。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
26Biblioteka Baidu
实验3:分支程序设计 • 实验内容 – 用跳跃表法实现多分支。 – 编程要求:用户从键盘输入0~9中某个字符, 根据用户的输入,分别显示不同的字符串。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
27
实验3:分支程序设计 • 实验步骤 1. 画出流程图。 2. 写出源程序代码。 3. 用记事本编辑源文件 MultiJMP. asm。 4. 汇编 5. 链接 6. 调试执行
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
20
实验1:汇编语言程序结构与Debug的使用 • 常见错误 – 源程序框架错误
• 段定义头与段定义尾应保持一致
– 程序开始与结束错误 – 汇编错误:以 MASM FILE.ASM 为例
• • • • 可不加文件名参数 可不加扩展名 生成的其它文件不要与源文件重名 在命令提示符下直接汇编
IBM-PC汇编语言程序设计 实验指导书 Linghy 2018年10月21日星期日 32
实验6:子程序设计 • 编程错误 – Disp过程:直接将数值“0~FH”输出 – 参见:错误源程序举例 Dec2Hex2.asm
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
33
实验7:I/O 程序设计 • • 实验时数:2学时 实验目的: 1. 熟悉BIOS、DOS中断调用情况,学会利用系 统功能调用控制外设的I/O操作。 2. 掌握DOS键盘功能调用的使用方法。 3. 掌握DOS显示功能调用的使用方法。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
实验指导书
Linghy 2018年10月21日星期日
35
实验7:I/O 程序设计 • 实验步骤: 1. 根据要求编写汇编源代码。 2. 上机编辑源文件,汇编、连接、调试运行, 查看结果。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
36
常见编程错误与注意事项 NEW 1. 语法错误:数值 – 十六进制数,加后缀H或h,若遗忘此后缀, 则被解释为10进制数。 2. 数据定义: – 若是字节定义,使用DB伪操作,一般用于定 义字符串。 – 若是字定义,使用DW伪操作,一般用于定义 数值。 – 二者不要搞混。
IBM-PC汇编语言程序设计 实验指导书 Linghy 2018年10月21日星期日 23
实验2:循环程序设计 • 实验步骤 1. 分析题目要求,画出流程图。 2. 根据流程图,写出源程序。 3. 用记事本编辑源文件 Grade. asm 4. 汇编 5. 链接 6. 调试运行
• Debug 中查看结果
– 每个子功能又都分别有自己的调用约定,调 用时应该按照该子功能的约定设定调用参数。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
39
常见编程错误与注意事项 – INT 21:退出 5. DOS功能调用 INT 21H – 常用的几个子功能(P471):
• 4C号子功能:程序退出,返回到操作系统
34
实验7:I/O 程序设计 • 实验内容与要求: – 编制程序,从键盘接收最多50个字符(不含 结尾回车符)的字符串,改变其中字母的大 小写并输出。 1. 使用DOS功能调用接收字符串。 2. 改变字符串中字母的大小写:大写小写 3. 使用DOS功能调用显示字符串。
IBM-PC汇编语言程序设计
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
17
实验1:汇编语言程序结构与Debug的使用
• 1. 2. 实验步骤 在D盘根目录下新建文件夹“ASM”; 打开记事本,编写源程序,保存在新建的文件夹中,文 件名为“TEST.ASM”。 – 在记事本的“另存为”窗口设定文件名时,应该输入 完整文件名("TEST.ASM")。 3. 打开“开始”“运行”菜单项,运行命令“CMD”, 进入Windows命令行窗口。 4. 在命令行窗口执行命令“D:”,进入D盘。 5. 在命令行窗口执行命令“CD \ASM”,进入新建的目录。
MOV MOV INT 21H AL, 程序返回代码(常常为0,表示正常结束) AH, 4CH
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
40
常见编程错误与注意事项 – INT 21:键盘输入 5. DOS功能调用 INT 21H – 常用的几个子功能(P471):
– 带符号数:小于Less;大于Greater 4. 用变量的偏移地址给寄存器赋值错误: – 例:将变量string的偏移赋值给BX
• • • MOV BX, string:错误! MOV BX, OFFSET string:正确 LEA BX, string:正确
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
16
实验1:汇编语言程序结构与Debug的使用 • 实验内容 1. 编写程序,实现功能如下:
• • 将字变量 W(初值为12ABH)转换为16进制字符 串,存储于字节数组 String中。 提示:使用换码、逻辑、移位、数据传送指令
2. 编辑、汇编、连接这个汇编语言源程序,形 成.EXE文件。 3. 通过DEBUG调试该可执行文件,查看结果。 4. 课本P158第4.17题,编辑、汇编、连接、运 行调试。
–
主程序要求如下:
• • 调用过程KeyIn,从键盘读取4位10进制数,并将结果暂存 于字变量Value中。 调用过程Disp将字变量Value中的2进制数值按照16进制形 式显示到屏幕上。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
30
实验6:子程序设计 • 实验步骤: – 画出程序流程图,合理划分子程序,正确区 分主程序与各子程序的功能与关系。 – 编制主程序与子程序的源代码 Dec2Hex.asm。 – 上机编辑源文件,并汇编、连接、调试运行, 随时查看堆栈的变化。
29
实验6:子程序设计
• 实验内容与要求: – 编制程序,从键盘接收四位十进制数并按照十六进制 形式显示,观察子程序调用时堆栈的变化情况。 – 要求以下功能模块用子过程实现:
1. 过程KeyIn:接收4位10进制数据并转化为2进制数值,由 AX返回。 2. 过程Disp:将AX中2进制数值按16进制形式显示到屏幕上
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
22
实验2:循环程序设计 • 实验内容 – 编写程序,实现以下功能: 某班20位同学的成绩预先存储于无符号字数 组Scores中,试统计每个分数段的人数及平 均分数,分别存储于字变量
• • • • • • cnt90(90~100分) cnt80 (80~89分) cnt70 (70~79分) cnt60 (60~69分) cnt_fail(0~59分) average(平均分)中。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
15
实验1:汇编语言程序结构与Debug的使用 • • 实验时数:2学时 实验目的: 1. 编写功能简单但结构完整的汇编语言源程序; 2. 掌握编辑、汇编、连接、调试运行的方法及 步骤。
IBM-PC汇编语言程序设计
实验指导书
实验指导书
课程基本信息 实验1:汇编语言程序结构与Debug的使用 实验2:循环程序设计 实验3:分支程序设计
课程基本信息 • 课程名:汇编程序设计 • 设课形式:非独立 • 课程学分: 3学分(2004级信管专业)、 4学分(2005级计算机专业) • 实验类型:基础 • 项目学时:2学时
• 2号子功能:显示一个字符
– 调用约定:输出字符的ASCII码预先放置到DL中 MOV DL, XX; XX是预输出字符的ASCII码 MOV AH, 2 INT 21H
•
9号子功能:显示一个以字符'$'结尾的字符串
– 调用约定:字符串的首地址预先放置到 DS:DX 中 LEA DX, STRING; 或者:MOV DX, OFFSET STRING MOV AH, 9 INT 21H
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
31
实验6:子程序设计 • 编程错误 – 没有给DS赋初值 – 程序退出代码不正确
• 直接RET,没有在入口处将 DS:0 压栈
– – – – –
完整源程序举例:Simple.asm Full.asm 过程内部没有保存与恢复现场寄存器。 传递返回参数的AX也被保护起来。 KeyIn过程:没有指定循环次数。 KeyIn过程:累加和乘法,应该是字乘法,而 不是字节乘法。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
37
常见编程错误与注意事项 3. 比较两个操作数,根据比较结果跳转: – 务必分清无符号数比较与带符号数比较: – 无符号数:小于Below;大于Above
• • 如:JB,小于;JA,大于;JAE,大于等于。 如:JL,小于;JG,大于;JGE,大于等于。
• 1号子功能:键盘输入带回显
– 调用约定: MOV AH, 1 INT 21H 输出:AL中存储了从键盘输入字符的ASCII码
•
8号子功能:键盘输入无回显
– 调用约定:同1号子功能:
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
41
常见编程错误与注意事项 – INT 21:显示字符(串) 5. DOS功能调用 INT 21H – 常用的几个子功能(P471):
Linghy 2018年10月21日星期日
38
常见编程错误与注意事项 – DOS功能调用 5. DOS功能调用 INT 21H – INT 21H,不要写成 INT 21 – 调用“INT 21H”过程时,需要在AH中设定子 功能号。 – 每次 “INT 21H”调用只能执行一个子功能。
• • • • MOV DX, OFFSET STRING MOV AX, 4C00H INT 21H ;这个语句序列只能返回到操作系统,而不能在显 示字符串的同时返回。