汇编语言程序设计
作者 : 程学先 林姗 程传慧
出版日期 : 2009-02-22
ISBN : 7-111-25841-4
定价 : 36.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 310
开本 : 16开
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

汇编语言是一门涉及硬件的程序设计语言,汇编语言程序设计是计算机专业的一门重要的专业基础课。汇编语言程序具有实时性强、执行速度快、代码效率高等优点,学好这门课程,对了解计算机系统的组成结构与工作原理、体验底层编程的乐趣以及更深入地学习程序设计方法很有意义,同时也有助于更好地理解数据结构、计算机组成原理、操作系统等课程中所学的知识。

本书特点
  ●认识领先。本书根据人的认识规律实践-理论-实践的特点组织教学内容,在全书开始及各重要章节开始,都以完整的实例引导,学生通过实例能感性地了解到需要学习的内容以及意义,比纯概念式的灌输能产生更好的教学效果。
  ●准确定位。本书强调为应用类读者服务,力求门槛低、内容全、描写细腻,与“应用类”读者群的需求相适应。选择从具有代表性、汇编难度适中的8086/8088入手,重点关注汇编语言程序设计方法,为学生进一步掌握计算机控制技术、学习计算机接口和单片机等课程打好基础。
  ●精选用例。本书在设计用例时,突出主要知识点及应用中的关键问题,尽量减少代码量并给出详细注释,让程序结构与设计思想一目了然。
  ●加强输入/输出程序设计的教学。本书加入了对外设操作常用芯片的介绍,着重讨论外部连接、工作方式及其设定,学习相关程序设计方法,突出软件方面内容。对于这一部分,教师可以根据实际情况灵活处理,即使之后开设接口课,多数会基于C语言教学,本书介绍的输入输出内容也是有益的衔接。
  ●配套实验指导。随本书出版,我们将在出版社网站上同时发布相应的实验指导材料,采用认识-模仿-组装-创新的结构组织实验内容。在每次实验前,教师可以向学生下发当次实验的电子文档,学生上机时,有些内容只需要复制、粘贴就可以进入实质性的实验,突出汇编语言程序算法与设计方法的学习,避免将大量的时间用到文字输入与审校中。为了让学生充分思考问题,又设计了一些带创新性的问题,包括程序组装与程序设计题,引导学生不断深入。

图书特色

图书前言

汇编语言是一门涉及硬件的程序设计语言,汇编语言程序设计是计算机专业的一门重要的专业基础课。汇编语言一般与某一种CPU提供的机器指令相对应,人们可以用它直接控制硬件系统进行工作,可以直接访问计算机系统内部各资源,汇编语言程序具有实时性强、执行速度快、代码效率高等优点。学习汇编语言程序设计时,由于软硬件知识交叉,因此对程序设计能力要求较高,学习难度较大。但学好本课程,对于了解计算机系统的组成结构与工作原理、体验底层编程的经验、更深入地学习程序设计方法很有意义,同时也会更加通透地理解数据结构、计算机组成原理、操作系统等课程中所学的知识,也为学习计算机接口、单片机及其他计算机控制类课程打下坚实的基础。本书以8086/8088指令为主,以实模式下的80x86指令为辅,系统地介绍了汇编语言的基础理论知识和程序设计方法,较深入地介绍了与汇编语言编程相关的硬件知识,强调结构化与软件重用的思想。本教材以面向应用、深入浅出、重视实践、方便教学为宗旨,顺应人们实践—理论—实践的认识规律,面对枯燥、抽象的汇编语言程序,以实例先行,力求突出“怎么用”,再讨论“为什么这样用,规律是什么”,以及如何利用这些基本方法去解决实际问题,引导读者理论联系实际,切实掌握本课程主要知识点,进而提高程序设计能力。
  汇编语言是一门程序设计语言,学习程序设计的思想与方法既是学习的重点也是难点,本书的目标就是要帮助读者提高程序设计的能力,较深入地掌握汇编语言程序设计的思想与方法。学习汇编语言时,有些读者已经学习过例如C语言等高级语言,这将为我们理解程序设计的思想打下良好基础;但也可能从未学习过其他语言,此时虽然框框较少,但建立计算机语言与程序设计的概念将是一大难题。汇编语言是多类知识交叉的学科,一部分知识往往还连带着其他的相关内容,如果处理不好这些连带的内容,将影响学习者对当前知识点的理解。但是如果先扫清外围,例如先介绍CPU与存储器的内部结构、数据形式,再介绍指令与指令系统、程序设计方法等等,如此虽然可以做到内容单一,也容易接受,但教学未以程序设计为线索展开,可能在开始学习后相当长一段时间里接触不到汇编语言程序设计的内容,这将令学习过程抽象无趣。本书考虑到这些情况,采用了实践先行的方法,以一个完整的程序实例引导,首先通过演示与动手,对程序设计及一些基本概念、基本方法建立感性认识,从而屏蔽了一些相关知识带来的干扰,在此基础上再逐一展开。学习的过程除了理解还有记忆与模仿,人们往往都是从死记、模仿走向创新的,实践引导的过程将为模仿创造条件,也提供了记忆的线索与内容。以程序为线索展开,将使我们在整个学习过程中的每一步都目标明确、主题清晰、基础扎实,在不知不觉中登上程序设计的巅峰。
  汇编语言的主要用途之一是涉及硬件的开发,目前社会上对具有一定硬件基础的计算机人才的需求较旺,本书围绕输入、输出程序设计介绍了若干常用芯片的结构与程序设计方法,既加强了涉及硬件的程序设计技术的教学,也有助于提高设计实际应用系统的能力。
  全书共9章。第1章,通过一个完整的8086汇编语言程序示例建立对汇编语言程序及汇编过程的感性认识,在此基础上介绍数据的表示形式、基本的DOS系统功能调用、微处理器的构成、内存与外设的概念。第2章,介绍寻址方式、指令的格式与最基本的一些8086汇编指令,通过一些简单程序段加深对指令的深入理解,同时也充分表现了指令在程序设计中的意义。为做到实践先行,第2章中有些程序(前面加有星号标志)涉及分支与循环,对于没有其他程序设计语言基础的读者,只要求对它们有所印象,实验时原样复制拷贝后编译执行即可,在学习第4章前不要求深入理解与掌握。第3章,介绍汇编语言语句格式与程序结构,伪指令及汇编语言程序开发环境,DEBUG程序调试方法。第4章,系统介绍DOS系统功能调用,程序流程概念,分支与循环程序及其设计方法,串处理程序设计方法。第5章,介绍子程序设计,结构化程序设计思想与方法,宏与宏程序设计方法。第6章,介绍BIOS系统调用,中断的概念,中断程序、输入与输出程序设计的一般方法。第7章,介绍一些常见的接口芯片,在此基础上介绍并行、串行程序,A/D与D/A转换程序,中断控制程序设计等设计方法。第8章,介绍磁盘文件的概念及其管理程序的设计方法。第9章,介绍汇编语言的其他技术,包括结构、重复块、条件汇编、多模块程序设计和C语言与汇编语言相互调用、驻留程序设计等。第10章,介绍80x86汇编的特点及概念。书后给出了几个附录,介绍了汇编语言程序设计常用的指令、DOS系统功能调用、BIOS功能调用等。本书第2、3、4、6章及71节、72节、74节由林姗编写,第5、8、9、10章由程传慧编写,程学先编写其他部分并修改全稿。陈永辉、史涵、鲁瑛、余小燕、周金松、椹章衡等参加校对与程序调试,在此表示感谢。
  本书可作为高等院校计算机及相关专业应用类学生教材,也可供从事计算机应用与开发的各类人员学习和使用。建议本课程教学时数为90学时,其中包括实验36学时。由于编者水平有限,书中如有错误和不妥之处,敬请广大读者批评指正。

封底文字

汇编语言是一门涉及硬件的程序设计语言,汇编语言程序设计是计算机专业的一门重要的专业基础课。汇编语言程序具有实时性强、执行速度快、代码效率高等优点,学好这门课程,对了解计算机系统的组成结构与工作原理、体验底层编程的乐趣以及更深入地学习程序设计方法很有意义,同时也有助于更好地理解数据结构、计算机组成原理、操作系统等课程中所学的知识。

本书特点
  ●认识领先。本书根据人的认识规律实践-理论-实践的特点组织教学内容,在全书开始及各重要章节开始,都以完整的实例引导,学生通过实例能感性地了解到需要学习的内容以及意义,比纯概念式的灌输能产生更好的教学效果。
  ●准确定位。本书强调为应用类读者服务,力求门槛低、内容全、描写细腻,与“应用类”读者群的需求相适应。选择从具有代表性、汇编难度适中的8086/8088入手,重点关注汇编语言程序设计方法,为学生进一步掌握计算机控制技术、学习计算机接口和单片机等课程打好基础。
  ●精选用例。本书在设计用例时,突出主要知识点及应用中的关键问题,尽量减少代码量并给出详细注释,让程序结构与设计思想一目了然。
  ●加强输入/输出程序设计的教学。本书加入了对外设操作常用芯片的介绍,着重讨论外部连接、工作方式及其设定,学习相关程序设计方法,突出软件方面内容。对于这一部分,教师可以根据实际情况灵活处理,即使之后开设接口课,多数会基于C语言教学,本书介绍的输入输出内容也是有益的衔接。
  ●配套实验指导。随本书出版,我们将在出版社网站上同时发布相应的实验指导材料,采用认识-模仿-组装-创新的结构组织实验内容。在每次实验前,教师可以向学生下发当次实验的电子文档,学生上机时,有些内容只需要复制、粘贴就可以进入实质性的实验,突出汇编语言程序算法与设计方法的学习,避免将大量的时间用到文字输入与审校中。为了让学生充分思考问题,又设计了一些带创新性的问题,包括程序组装与程序设计题,引导学生不断深入。

图书目录

前言

第1章 基础知识1
 11 汇编语言概述1
  111 汇编语言程序示例1
  112 机器语言3
  113 汇编语言4
  114 高级语言5
  115 三种语言的特点比较6
  116 汇编语言源程序的格式6
 12 计算机中数和字符的表示7
  121 不同进位制的数及相互间的转换7
  122 BCD码11
  123 ASCII码12
  124 整数和小数13
  125 原码、反码和补码13
 13 计算机中数的运算规则15
  131 算术运算15
  132 逻辑运算15
 14 80x86微处理器17
  141 微型计算机的结构17
  142 中央处理器18
 15 内存储器22
  151 内存单元的地址和内容22
  152 内存储器寻址24
 16 外部设备28
 小结29
 习题30
第2章 8086指令系统初步32
 21 8086指令格式32
 22 操作数的形式及寻址方式33
  221 寻址方式的概念33
  222 寻址方式36
  223 寻址方式小结42
 23 Intel 8086基本指令43
  231 数据传送指令43
  232 算术运算指令48
  233 位操作指令53
 小 结60
 习题61
第3章 汇编语言程序结构63
 31 表达式63
  311 常量63
  312 数值表达式64
  313 变量和标号64
  314 地址表达式66
 32 常用的汇编伪指令70
  321 段定义伪指令70
  322 假定伪指令ASSUME71
  323 置汇编地址计数器伪指令
ORG72
  324 符号定义伪指令LABEL72
  325 源程序结束伪指令END72
 33 汇编语言程序的上机过程73
  331 开发环境73
  332 上机过程74
 34 调试程序75
 小结77
 习题78
第4章 汇编语言程序设计80
 41 程序设计方法概述80
  411 程序设计的步骤80
  412 程序流程图设计方法81
 42 顺序结构程序设计82
 43 DOS系统功能调用83
  431 DOS系统功能调用的一般方法83
  432 常用系统功能调用84
 44 分支结构程序设计86
  441 常见的标志处理指令86
  442 控制转移类指令87
  443 分支结构程序设计91
 45 循环结构程序设计95
  451 循环指令95
  452 循环程序的基本结构96
  453 单重循环程序的设计举例98
  454 多重循环程序的设计举例101
 46 串处理类指令106
 47 数制转换程序设计110
  471 其他进制数到二进制数的转换111
  472 二进制数到其他进制数的转换113
  473 涉及BCD码的转换114
 48 数据运算程序设计115
  481 BCD码调整指令及涉及BCD码的
运算115
  482 浮点数据运算程序设计117
 小结122
 习题122
第5章 结构化程序设计126
 51 结构化程序设计的一般步骤和方法126
  52 子程序设计127
  521 子程序基本概念127
  522 子程序的定义、调用和返回127
  523 子程序设计中的现场保护与
参数传递129
  524 子程序的嵌套与递归133
  525 子程序设计实例138
 53 宏汇编147
  531 宏的概念147
  532 宏指令的定义和使用147
  533 宏调用中的参数150
  534 宏库及其使用155
  535 宏指令与子程序的比较157
 小结159
 习题159
第6章 输入输出程序设计162
 61 输入输出的基本概念162
  611 I/O端口地址162
  612 I/O指令163
  613 数据传送方式164
 62 中断及中断程序设计167
  621 中断的分类167
  622 中断优先级167
  623 中断向量表168
  624 设置中断向量168
  625 应用实例169
 63 BIOS功能调用170
 64 键盘I/O171
  641 键盘中断处理程序171
  642 键盘I/O程序172
 65 显示器I/O173
  651 文本显示方式及字符显示
属性173
  652 彩色图形显示方式174
  653 显示I/O中断调用174
  654 Intel 8279集成电路180
  655 8279程序设计184
 小结187
 习题188
第7章 通信与模数转换程序设计189
 71 并行通信189
  711 并行通信的概念189
  712 可编程并行接口芯片
Intel 8255189
  713 Intel 8255程序设计191
 72 串行通信I/O194
  721 串行通信的概念194
  722 异步通信芯片8251200
  723 8251应用举例203
 73 8259中断控制器及其程序设计205
  731 8259A的内部结构205
  732 8259程序设计206
 74 定时/计数程序设计210
  741 可编程内部定时器
8253/8254211
  742 IBM PC定时/计数程序
设计212
  743 通用发声程序设计212
 75 D/A与A/D转换程序设计213
 小结218
 习题218
第8章 磁盘文件处理程序220
 81 磁盘文件概念220
 82 传统文件管理方式221
  821 顺序存取方式221
  822 随机存取方式224
  823 随机分块存取方式226
 83 扩充文件管理方式227
  831 扩充文件管理功能调用227
  832 扩充文件管理方式实例228
 84 对文件外部特性与目录的操作237
 小结239
 习题239
第9章 汇编语言程序设计扩展241
 91 结构241
  911 结构的定义241
  912 结构变量及其字段的访问242
 92 条件汇编244
 93 重复汇编246
  931 给定次数的重复汇编伪指令
REPT247
  932 由参数个数决定次数的重复
汇编伪指令IRP247
  933 由字符串字符个数决定汇编
次数的伪指令IRPC248
 94 多模块程序设计249
  941 完整的段定义249
  942 关于堆栈段的说明251
  943 段组的说明和使用252
  944 段的简化定义253
  945 模块间的通信255
 95 汇编语言与C语言的混合编程257
  951 汇编语言指令嵌入到C语言
程序中的简单方法257
  952 模块连接法258
  953 汇编语言调用C语言程序259
 96 驻留程序设计260
 小结264
 习题265
第10章 80x86/Pentium汇编语言程序
设计266
 101 从8086到Pentium266
  1011 8086/Pentium结构特点266
  1012 Pentium工作模式268
  1013 Pentium 系统提供的特权级269
 102 Pentium CPU的寄存器组织270
 103 保护模式下程序使用的逻辑地址与
物理地址272
  1031 保护模式内存储器寻址272
  1032 选择器和描述符273
  1033 保护模式内存储器寻址范围
举例275
  1034 程序不可见寄存器276
 104 保护模式内存储器寻址方式280
 105 指令系统扩展281
  1051 源程序结构281
  1052 指令集的扩展287
 小结293
 习题293
附录A 指令表294
附录B伪指令表300
附录CMSDOS与BIOS调用表302
附录DBIOS功能调用307
参考文献310

教学资源推荐
作者: (美)Y. Daniel Liang 著
作者: 朱鸣华 罗晓芳 董明 孟军 汪德刚 编著
作者: 王立柱 编著