《汇编语言程序设计》学习指导
李涛
课程名称:汇编语言程序设计
课程英文名称:PROGRAMMING BY ASSEMBLE LANGUAGE 总学时数:70 讲课学时:50 上机学时:20 学 分:4
开课单位:远程教育学院
授课对象:远程教育学院专升本计算机科学与技术专业学生 先修课程:C语言程序设计
一.本课程的教学目的、基本要求及其在教学计划中的地位
汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。
每一系列的处理器都有自己独特的操作指令集。Intel公司生产的8086系列微处理器在微型计算机中使用最广泛。基于8086系列机型的汇编语言程序设计,对学习和使用微型计算机有着广泛的使用价值。
从1981年8088被IBM选中做个人计算机的处理器,随后8086系列的增强版本有8086、80286、80386、80486、Pentium(or 586)、PentiumPro(or 6x86)、PentiumII and PentiumIII,每个版本都提供了更多的操作和更快的速度。虽然机器的发展速度远远超出了人们的想象,但汇编语言,一门和机器硬件直接打交道的语言,是永远都不会过时的。相反,它有着极强的生命力,随着硬件的发展不断的发展和完善。每当新版本CPU推出后,汇编语言也扩展自己的指令对新硬件提供支持(如从8086到80286提供了对虚模式的支持,从80286到80386对寻址范围的扩展),但汇编语言的基本指令集没有变,这就对学习汇编语言提供了极大的方便,学生在对汇编的基本指令的学习中就可抓住汇编语言的精髓。更
重要的是,程序设计的基本思想是不会变的。在对汇编语言基本指令的学习中掌握了程序设计的基本思想,则拥有了解决问题的方法,在以后的工作中,通过查阅资料等方式了解硬件的新特性,就可以完成实际工作。
因此,汇编语言程序设计对计算机专业的学生来说是一门非常重要的核心课程之一,它不仅是计算机原理、操作系统等其他课程的必要先修课,而且也是一门训练学生掌握程序设计技术,培养学生实际动手解决问题能力的重要课程。
二、教材选择
教 材:《IBM PC汇编语言程序设计》,沈美明编,清华大学出版社 参考书:
1)《汇编语言程序设计》,姚鸿勋编,哈尔滨工业大学出版社
2)《IBM PC汇编语言程序设计 例题习题集》沈美明编,清华大学出版社。 3)《IBM PC汇编语言程序设计 实验教程》沈美明等编,清华大学出版社。
三.本课程的主要内容、各章节内容及其学时安排
本课程的主要内容有数制及其运算法则;计算机组织;IBM PC机的指令系统和寻址方式;汇编语言程序设计的基本结构、算法、指令的语法规则、使用规则;高级汇编语言技术;输入/输出程序设计及BIOS和DOS中断。 本课程的主要章节以及学时安排: 第一章
基础知识(2学时)
介绍数制、数制运算,计算机中数和字符的表示以及基本的逻辑运算。
第二章
IBM PC机系统概述 (2学时) 概述计算机系统及其各部分功能。
第三章
指令格式及寻址方式 (24学时) 介绍汇编语言的指令格式和寻址方式。
第四章
汇编语言程序格式 (6学时)
介绍汇编语言的基本语法特点,包括语句格式等并且介绍上机过程。
第五章
循环与分支程序设计 (6学时)
介绍循环结构以及分支结构的程序设计方法。
第六章
子程序结构 (6学时)
介绍子程序设计方法、嵌套与递归子程序以及DOS系统功能调用。
第七章 高级汇编语言技术 (2学时)
介绍宏汇编、重复汇编、条件汇编等。
第八章 输入/输出程序设计 (2学时)
简要介绍I/O设备的数据传送方式、程序直接控制I/O方式以及中断传送方式等。
第九章 BIOS和DOS中断 (2学时)
介绍基本输入输出系统(BIOS)的调用和DOS功能模块调用。
四、作业安排
作业主要分为两类,一类为课后习题,用于复习和巩固所学的知识点,另
一类为上课时根据讲课内容所布置的课后思考题,一般需要上机完成,这类题需要和上机试验同时完成。
五、上机实验
1.机时安排:上机机时共为20个机时,分5次上机实验,每次4个机时。 2.实验目的
学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,加深对汇编这门课程的理解。 3.实验要求
1)上机前要做好准备工作,包括程序框图、数据结构以及算法。
2)要求书写实验报告,包括实验目的、程序设计说明、算法、程序框图、
各段定义情况、用到的子程序(宏)的功能说明、调用关系说明、参数传送方式说明等等
4.实验进度安排
实验一:熟悉和掌握基本操作
1)熟悉汇编语言程序设计的开发环境、格式以及汇编过程;
2)Debug的主要命令(结合教材第四章的例子),熟练掌握Debug命令的U
命令、D命令、R命令、G命令、T命令、Q命令等;
3)结合教材第三章的例子练习使用数据传送指令、算术指令并能编写相应
的简单程序汇编; 4)上机做第三章课后相关习题
实验二:编写算术运算程序
1)z?w+(z-x);
2)z? (w*x)/(y+6),r?余数;
其中x,y,z,r,w均为存放16位带符号数单元的地址(编写程序时可以自己设定为具体的带符号数的数值)。
实验三:编写符号串处理程序
1)从一给定的字符串中查找某一指定的字符并进行替换,如将字符串“ABCDE&EDCBA”中的“&”替换为“+”; 2)设程序中数据定义如下:
STUDENT_NAME DB 30 DUP(?) STUDENT_ADDR DB 9 DUP(?) PRINT_LINE DB 132 DUP(?)
试将STUDENT_NAME移到PRINT_LINE的前30个字节中,把STUDENT_ADDR移到PRINT_LINE的后9个字节中。 实验四:循环程序设计
1)计算1+2+……+100的和;
2)从键盘输入一个以回车键为结束符的字符串(由大小写英文字母和数字组成),然后统计出其中的数字字符数,并显示出计数的结果。 实验五:子程序设计
编写程序嵌套结构的程序:将一个从键盘输入的三位整数转化成一个二进制数并显示出来。
六、考试与成绩记载