汇编语言是计算机专业的重要专业基础课程,也是电子、通信及自动控制等相关专业计算机技术课程的内容。
本书作者以汇编语言专业课开放式教学模式的研究为突破点,重点研究开放式教学模式的形式、特点,解决开放式教学模式中学科知识的建构问题,解决学生自主学习能力培养问题,探索一种较好的教学和学习方法,在课堂教学的基础上,充分发挥教学方法、学习方法的多样性,提高学生主动发现新事物、吸收新信息、提出新问题的能力,达到培养具有创新意识的合格人才的目的。
本书作者根据多年讲授汇编语言课程的教学经验以及对汇编语言课程的教学改革,以现代教育理论为基础,精心设计了本书的结构。
本书以80X86系列微型计算机为基础,以MASM5.0为汇编上机实验环境,重点介绍Intel8086指令系统。本书特色:
(1)以实例驱动教学。书中给出了丰富的示例和实例,以大量的示例为依托展开教学和学习,示例的选择由浅入深,最后归结到实例上。各章节中的示例具有延续性,使学习具有连贯性,相关的知识不断充实扩大。
(2)启发式设问引导教学。每章的开始给出设问,使读者在学习本章内容之前,先想到一些问题、提出一些问题,然后带着问题学习。
(3)构造学习框架。作者在教学方法上提出一个学习框架,对每一个示例,按照设计思路、程序框图、程序代码、运行结果显示和结果分析几大部分编写。
(4)实验训练贯穿始终。各章节中都采用边讲解理论边练习的方式,同时在每章中更安排了实验任务模块,以期通过多层次的实验训练来加强各章内容的学习理解、融会贯通。
本教材适用于普通高等学校本专科计算机专业以及电子、电气、通信、自控等专业的汇编语言课程的教材(含实验),或者作为其他专业相关课程的参考书和自学教材。
汇编语言
第2版
郑晓薇 编著
汇编语言是直接控制计算机工作的最简便的语言,学习汇编语言可在CPU寄存器级上进行控制和操作,获得直接对计算机硬件底层编程的经验,对计算机系统有更深入的了解和更深刻的认识。 由于汇编语言涉及的汇编指令和伪指令繁多,编写汇编语言程序时经常要用到十六进制、二进制数据,思考问题时要考虑寄存器、存储器和I/O接口等概念,这些特殊性使汇编语言的学习存在一定的难度。本书作者根据多年讲授汇编语言课程的教学经验以及对汇编语言课程的教学改革,以现代教育理论为基础,精心设计了本书的结构。第2版在上版的基础上修订了部分内容,特别是对实验内容进行了改进,增加了两节新的实验,以便适应更多的应用。
本书特色:
以实例驱动教学。书中给出了丰富的示例和实例,以大量的示例为依托展开教学和学习,示例的选择由浅入深,最后归结到实例上。各章节中的示例具有延续性,使学习具有连贯性,相关的知识不断充实扩大。
启发式设问引导教学。每章的开始给出设问,使学生在学习本章内容之前,先想到一些问题、提出一些问题,然后带着问题学习。
构造学习框架。作者在教学方法上提出一个学习框架,对每一个示例,按照设计思路、程序框图、程序代码、运行结果显示和结果分析几大部分编写。
实验训练贯穿始终。本书采用边讲解理论边练习的方式,同时在每章中安排了实验任务模块,以期通过多层次的实验训练来加强学生对各章内容的学习理解、融会贯通。 书中所有程序都经过运行验证,习题和测验附有答案。本书为教师提供教辅,包括多媒体PPT课件,书中的例题程序及习题、测验和答案等,可在华章网站www.hzbook.com下载。此外,本书作者建设了汇编语言教学网站,网址为http://wlkc.lnnu.edu.cn/hbyy。
汇编语言是计算机专业的重要专业基础课程,也是电子、通信及自动控制等相关专业计算机技术课程的内容。通过汇编语言的学习,可以使学生具有在CPU的寄存器级上进行控制和操作的能力,获得直接对计算机硬件底层编程的经验,从而对计算机系统有更深刻的认识。这样,在学习操作系统、微机原理、嵌入式技术等课程时,思路会更开阔,基础会更扎实,看待问题会站在更深的层面,许多问题就会迎刃而解。
本书以80X86系列微型计算机为基础,以MASM50为汇编上机实验环境,重点介绍Intel 8086指令系统。本书的写作特点如下:
1 实例是一节内容,是对该章的总结性归纳的举例(大型的、可涵盖多个示例)。
1)采用实例驱动教学的方法,讲解汇编语言的基本概念和实用程序设计技术。每章的最后一节都给出一个实例,对本章的学习内容加以归纳,得出一个有特色的论点。在各章中则以丰富的示例为依托展开教学和学习,示例的选择由浅入深,最后归结到实例上。在编写思路上,将指令系统分散到相关章节,指令的学习融会在示例、实例中,避免所有指令集中在一章中介绍产生记不住、消化不了的现象。本书中每个示例、实例都以在DEBUG下的运行过程形式出现,给读者一个直观的印象,便于教师的讲解、学生的自学。各章节的示例具有延续性,使学习过程具有连贯性,相关知识不断充实加深。
示例是从第3章开始的各种指令及程序设计的举例。
2)启发式设问引导教学。汇编语言难学的原因有多种,包括指令系统的繁杂、难记,涉及机器硬件层面,要从机器的角度以二进制和十六进制的思维考虑问题,许多工作必须一条指令一条指令地构成和执行,不像高级语言用一条语句就能解决问题,等等。因此作者从启发式教学的角度,在每章的开始部分构造了设问内容,使读者在学习本章内容之前,先想到一些问题、提出一些问题,然后带着问题学习,收到事半功倍的效果。
3)构造学习框架。对于学习一门技术而言,模仿是快速掌握技能的一个捷径。只有对一件事物有了解、获得了初步的技能,才能对该事物产生兴趣、激发出热情,从而变为自觉地学习,进一步产生创作欲望。作者在编写结构上提出一个学习框架,对每一个示例题目,按照分析题意、设计思路、程序框图、程序代码、运行结果显示和结果分析的框架结构编写。对示例程序的分析以DEBUG下的操作和运行结果为依据,使读者有样板可学,有结果可见,有章可循,有分析可依。同时在每个知识点上增加了练习部分,采用边学习边练习的方式。在每章内容之后都有习题和测验题,书后附有参考答案,以加强读者对相关概念的学习与吸收。
4)实验训练贯穿始终。汇编语言是一门理论与实践相结合的课程,只有在大量的编程训练下,才能很好地掌握基础理论与编程技巧。因此本书特别强调动手训练,在前9章中采用边讲解理论边练习的方式,同时在每章中安排了实验任务模块,以期通过多层次的实验训练来加强学生对各章内容的学习理解、融会贯通。在第10章专门安排了综合性设计性实验内容,使学生在学习的后期能够自己设计一个较大型的综合性、设计性实验,也是对汇编语言的学习做一个总结和检验。
全书共分10章。第1章基础知识,重点介绍数的正确表示。第2章计算机基本原理,主要强调CPU的寄存器和存储单元的概念和使用,实验内容是用DEBUG观察寄存器和存储器。第3章指令系统与寻址方式,重点是数据的寻址方式,实验内容为DEBUG下汇编指令的输入与执行。第4章汇编语言程序设计,以一个公式计算程序的设计为例,给出汇编语言程序的设计过程、伪指令的作用和基本的汇编指令。第5章分支程序设计,穿插了用位操作指令设计分支程序;深入分析了转移特征,给出了系统启动和程序加载过程。第6章循环程序设计,同时加入了串处理的概念和用法。第7章子程序设计,重点介绍子程序的调用和返回、参数传递,实例中提出了模块化结构概念。第8章宏汇编及多模块技术,加入了结构伪操作、重复汇编和条件汇编,实例为多个代码段下的多模块设计。第9章中断程序设计,给出了中断的绝大部分概念,对系统中断作了较深入的分析,详细讲解如何定制中断。第10章综合实验,在介绍端口概念的同时,以读取CMOS时钟为例讲解了I/O接口实验。在第2版中,增加了图形绘制和动画效果的编程思路和方法,以及磁盘文件的读写功能等内容,最后给出了8个综合性、设计性实验题目和要求。
本书结构清晰,语言精练,例题精彩,习题针对性强,非常适合初学者阅读。每章配有测验题,并在附录中给出答案。作者还提供了完整的教辅及教学网站(http://wlkclnnueducn/hbyy)。所有程序都经过运行验证,习题和测验附有答案。与本书配套的多媒体PPT课件,书中的例题程序及习题、测验和答案等教辅材料也可在华章网站(wwwhzbookcom)上下载。
本书是作者在多年讲授汇编语言课程过程中教学经验的积累,是对汇编语言课程进行教学改革的成果。在教材编写过程中,得到了相关老师和学生的帮助,也参考了其他同行的教材,作者在此表示感谢。还要感谢机械工业出版社华章分社的编辑们,是他们的大力支持使得本书第2版顺利出版。书中难免有错误和不当之处,敬请读者指正。
郑晓薇
计算机\程序设计
汇编语言是直接控制计算机工作的最简便的语言。学习汇编语言可使学生具有CPU寄存器级上进行控制和操作的能力,可获得直接对计算机硬件底层编程的经验,可对计算机系统有更深入的了解和更深刻的认识。
由于汇编语言涉及的汇编指令和伪指令繁多,编写汇编语言程序时经常要用到的十六进制、二进制数据,思考问题时要考虑寄存器、存储器和I/O接口等概念,这些特殊性使汇编语言的学习存在一定的难度。本书作者根据多年讲授汇编语言课程的教学经验以及对汇编语言课程的教学改革,以现代教育理论为基础,精心设计了本书的结构。第2版在上版的基础上修改了部分内容,纠正了上版的错误,特别是对实验内容进行了改进,增加了两节新的实验,以便适应新的应用。
本书特色:
(1)以实例驱动教学。书中给出了丰富的示例和实例,以大量的示例为依托展开教学和学习,示例的选择由浅入深,最后归结到实例上。各章节中的示例具有延续性,使学习具有连贯性,相关的知识不断充实扩大。
(2)启发式设问引导教学。每章的开始给出设问,使读者在学习本章内容之前,先想到一些问题、提出一些问题,然后带着问题学习。
(3)构造学习框架。作者在教学方法上提出一个学习框架,对每一个示例,按照设计思路、程序框图、程序代码、运行结果显示和结果分析几大部分编写。
(4)实验训练贯穿始终。各章节中都采用边讲解理论边练习的方式,同时在每章中更安排了实验任务模块,以期通过多层次的实验训练来加强各章内容的学习理解、融会贯通。
书中所有程序都经过运行验证,习题和测验附有答案。与本书配套有多媒体PPT课件,书中的例题程序及习题、测验和答案等教辅材料可在出版社网站上下载。
本书作者建设了汇编语言教学网站,网址:http://wlkc.lnnu.edu.cn/hbyy
本书可以作为计算机专业汇编语言课程的教材(含实验),或者作为其他专业相关课程的参考书和自学教材。
前言
教学建议
第1章基础知识
11汇编语言基本概念
12计算机中数的表示
121进制转换
122进制运算
123补码运算
124编码
13实例一揭开数的面纱
131数的正确表示
132数的符号问题
习题一
测验一
第2章计算机基本原理
21冯·诺依曼计算机
211冯·诺依曼计算机的原理
212冯·诺依曼计算机的基本结构
22微型计算机系统
221微型计算机系统概念
222微处理器
2380X86寄存器
2318086寄存器组
23280X86寄存器组
24内存储器
241物理地址与逻辑地址
242存储单元
243存储器分段
25实例二进入计算机
251调试工具DEBUG
252实验任务
习题二
测验二
第3章指令系统与寻址方式
31汇编语言指令
311机器指令
312汇编指令
313指令系统
32指令的寻址方式
321寻址方式
322立即寻址方式
323寄存器寻址方式
324存储器寻址方式
33实例三寻找操作数
331寻址方式的选择
332实验示例
333实验任务
习题三
测验三
第4章汇编语言程序设计
41汇编语言程序设计初步
411第一个汇编语言程序
412从源程序到可执行程序
42伪指令
421段定义伪操作
422数据定义伪指令
423其他伪指令
43基本汇编指令
431数据、栈及查表
432逻辑地址的获得
433符号位扩展
434双精度数运算
435多字节数运算
436混合算术运算
437十进制数运算
44屏幕显示和键盘输入
441DOS功能调用
442直接写显存显示字符
45实例四带彩色显示的算术程序
451简化的程序结构
452实验示例
453实验任务
习题四
测验四
第5章分支程序设计
51分支的概念
511分支结构
512分支程序例子
52与分支有关的指令
521转移地址的寻址
522条件转移方式
53位操作的分支程序
531逻辑运算
532测试指令TEST
533移位操作
534处理机控制指令
535分支程序举例
54深入分析转移特征
541内存空间分配
542系统启动
543程序的加载
544JMP转移特征
55实例五走向分支
551分支的选择
552菜单程序设计
553用分支表实现多路转移
554实验示例
555实验任务
习题五
测验五
第6章循环程序设计
61循环的概念
611循环结构
612循环程序例子
613与循环有关的指令
62循环指令
621LOOP
622LOOPZ/LOOPE
623LOOPNZ/LOOPNE
63串处理
631串的概念
632串处理例子
633串处理指令
634串与循环
64多重循环
641多重循环结构
642排序程序
65循环程序举例
66实例六循环之循环
661循环的执行
662实验示例
663实验任务
习题六
测验六
第7章子程序设计
71子程序的概念
711主程序和子程序
712一个改造的例子
72调用和返回
721调用指令CALL
722返回指令RET
73过程定义
731伪指令PROC
732过程属性
74现场保护
75子程序参数传递
751寄存器传参
752存储单元传参
753堆栈传参
76嵌套与递归
761子程序嵌套
762子程序递归
77实例七子程序与模块化
771模块化结构
772实验示例
773实验任务
习题七
测验七
第8章宏汇编及多模块技术
81宏
811宏定义
812宏调用
813宏展开
814宏与子程序
815宏的参数
816宏运算
82其他宏功能
821宏标号
822宏删除
823宏嵌套
824宏库建立与调用
83结构伪操作
84重复汇编和条件汇编
841重复汇编
842条件汇编
85多模块结构
851多个代码段下的模块
852模块的参数设置
86实例八宏与多模块
861多模块设计
862一个段的模块
863实验示例
864实验任务
习题八
测验八
第9章中断程序设计
91中断的概念
911软件中断
912硬件中断
913中断类型与中断向量
914中断过程
92定制自己的中断
921软件中断子程序的编写
922中断的设置
923软件中断的触发与处理
924对除0中断的修改
93BIOS中断
931屏幕及光标控制INT 10H
932键盘中断INT 16H
933时钟中断INT 1AH
94DOS中断
941DOS显示功能调用
942DOS键盘功能调用
943DOS日期、时间功能调用
95实例九中断程序应用
951时间与计数
952实验示例
953实验任务
习题九
测验九
第10章综合实验
101I/O端口实验
1011I/O端口地址
1012IN指令和OUT指令
1013读取CMOS时钟
102随机数实验
1021用CMOS时钟产生随机数
1022用DOS时间功能出算术题
103图形动画实验
1031文本模式下的图形动画
1032图形模式下的绘图与动画
104磁盘文件读写实验
1041文件操作的DOS系统调用
1042磁盘文件读写示例
105综合实验题目
1051实验一CMOS时间和日期
1052实验二英文打字练习软件
1053实验三英文填字游戏软件
1054实验四设计一个小计算器
1055实验五小学生算术练习软件
1056实验六进制及编码转换工具
1057实验七绘制图形动画
1058实验八磁盘文件
附录A8086指令系统表
附录B汇编出错提示信息
附录CDEBUG的用法
附录D各章测验答案
参考文献