实验指导书
26
实验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日星期日
18
实验1:汇编语言程序结构与Debug的使用 • 实验步骤 6. 运行命令“MASM TEST”,汇编源文件,生成 目标文件TEST.OBJ。 7. 运行命令“LINK TEST”,链接目标文件,生成 可执行文件TEST.EXE. 8. 运行命令“DEBUG TEST.EXE”,调试运行。 9. 编辑源文件“Ex4_17.asm”,重复步骤1~8.
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 ;这个语句序列只能返回到操作系统,而不能在显 示字符串的同时返回。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
15
实验1:汇编语言程序结构与Debug的使用 • • 实验时数:2学时 实验目的: 1. 编写功能简单但结构完整的汇编语言源程序; 2. 掌握编辑、汇编、连接、调试运行的方法及 步骤。
IBM-PC汇编语言程序设计
实验指导书
– 带符号数:小于Less;大于Greater 4. 用变量的偏移地址给寄存器赋值错误: – 例:将变量string的偏移赋值给BX
• • • MOV BX, string:错误! MOV BX, OFFSET string:正确 LEA BX, string:正确
IBM-PC汇编语言程序设计
实验指导书
实验指导书
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日星期日
31
实验6:子程序设计 • 编程错误 – 没有给DS赋初值 – 程序退出代码不正确
• 直接RET,没有在入口处将 DS:0 压栈
– – – – –
完整源程序举例:Simple.asm Full.asm 过程内部没有保存与恢复现场寄存器。 传递返回参数的AX也被保护起来。 KeyIn过程:没有指定循环次数。 KeyIn过程:累加和乘法,应该是字乘法,而 不是字节乘法。
IBM-PC汇编语言程序设计 实验指导书 Linghy 2018年10月21日星期日 32
实验6:子程序设计 • 编程错误 – Disp过程:直接将数值“0~FH”输出 – 参见:错误源程序举例 Dec2Hex2.asm
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
实验指导书
课程基本信息 实验1:汇编语言程序结构与Debug的使用 实验2:循环程序设计 实验3:分支程序设计
课程基本信息 • 课程名:汇编程序设计 • 设课形式:非独立 • 课程学分: 3学分(2004级信管专业)、 4学分(2005级计算机专业) • 实验类型:基础 • 项目学时:2学时
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(平均分)中。
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”,进入新建的目录。
– 每个子功能又都分别有自己的调用约定,调 用时应该按照该子功能的约定设定调用参数。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
39
常见编程错误与注意事项 – INT 21:退出 5. DOS功能调用 INT 21H – 常用的几个子功能(P471):
• 4C号子功能:程序退出,返回到操作系统
• 2号子功能:显示一个字符
– 调用约定:输出字符的Aபைடு நூலகம்CII码预先放置到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日星期日
19
实验1:汇编语言程序结构与Debug的使用 • 程序代码 – Bin2Str1.asm – Bin2Str2.asm – Bin2Str3.asm – Bin2Str4.asm – Bin2Str5.asm – Ex4_17.asm
– Debug调试错误
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
21
实验2:循环程序设计 • • 实验时数:2学时 实验目的: 1. 掌握循环程序的结构,加深对循环程序的理 解。 2. 掌握循环程序的设计、调试方法,能构造出 正确的循环结构并能实现较复杂的算法。
• 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日星期日
16
实验1:汇编语言程序结构与Debug的使用 • 实验内容 1. 编写程序,实现功能如下:
• • 将字变量 W(初值为12ABH)转换为16进制字符 串,存储于字节数组 String中。 提示:使用换码、逻辑、移位、数据传送指令
2. 编辑、汇编、连接这个汇编语言源程序,形 成.EXE文件。 3. 通过DEBUG调试该可执行文件,查看结果。 4. 课本P158第4.17题,编辑、汇编、连接、运 行调试。
IBM-PC汇编语言程序设计 实验指导书 Linghy 2018年10月21日星期日 23
实验2:循环程序设计 • 实验步骤 1. 分析题目要求,画出流程图。 2. 根据流程图,写出源程序。 3. 用记事本编辑源文件 Grade. asm 4. 汇编 5. 链接 6. 调试运行
• Debug 中查看结果
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
37
常见编程错误与注意事项 3. 比较两个操作数,根据比较结果跳转: – 务必分清无符号数比较与带符号数比较: – 无符号数:小于Below;大于Above
• • 如:JB,小于;JA,大于;JAE,大于等于。 如:JL,小于;JG,大于;JGE,大于等于。
IBM-PC汇编语言程序设计
实验指导书
Linghy 2018年10月21日星期日
20
实验1:汇编语言程序结构与Debug的使用 • 常见错误 – 源程序框架错误