热门关键字:  听力密码  听力密码  新概念美语  单词密码  巧用听写练听力
图书信息

汇编语言程序设计

中国水利水电出版社
    【作 者】王向慧 马海波 【I S B N 】978-7-5084-6563-0 【责任编辑】吴 萍 【适用读者群】本科 【出版时间】2009-06-01 【开 本】16开本 【装帧信息】平装(光膜) 【版 次】第1版 【页 数】328 【千字数】 【印 张】 【定 价】32 【丛 书】高等院校“十一五”规划教材 【备注信息】
图书详情

    本书以Intel 80x86微处理器为硬件平台,介绍了汇编语言程序设计的方法。全书共11章,包括预备知识、实模式编程和保护模式编程三部分。在介绍80x86微处理器和存储器组织之后,重点介绍了顺序结构、分支结构、循环结构和子程序设计方法,还介绍了宏汇编、中断和异常、输入/输出及模块化程序设计方法。

    本书对汇编语言的概念和程序设计的阐述通俗易懂,例子翔实;对习题的选择,难易适当,题型丰富;在介绍一门计算机语言的同时,注重对程序编制和调试能力的培养。

    本书可作为高等院校计算机及相关专业本、专科教材,也可作为从事计算机工作的工程技术人员以及计算机爱好者的参考书。

    “汇编语言程序设计”是高校计算机及相关专业的必修课程,是“微机原理”、“接口技术”、“操作系统”等核心课程的先修课。汇编语言是执行效率最高、控制硬件底层能力最强的语言。学习汇编语言,不仅有助于设计出执行时间短、占用存储空间少、控制硬件能力强的程序,还有助于了解计算机内部运行机制;学习编程技术,不仅掌握一门知识,也培养一种技能;应用汇编语言、运用调试工具,能够准确剖析可执行程序代码,优化程序性能。

    本书是作者在总结多年教学经验的基础上精心编写而成的。在编写过程中力争做到理论够用为度、突出实用的特点,基于培养编程能力的原则,合理组织课程内容:分为预备知识、实模式编程和保护模式编程三部分。以当今国内广泛使用的Intel 80x86系列微处理器为硬件平台,深入讨论汇编语言程序设计的方法,构造由浅入深的学习过程。

    本书力求结构清晰,脉络分明,在内容的编排上,力求由浅入深,图表结合,通俗易懂;在知识结构上注意分解难点,循序渐进,举一反三,突出重点。每个知识点辅以问题的分析,相关知识的引入,编程思想的形成,并辅以上机调试过程加以体会和消化;典型例题分析,既是知识的巩固和延伸,又提供分析问题和解决问题的方法;每章配备的习题和上机实践,便于复习和检验学习效果,同时提高编制程序和调试程序的能力,从不同的角度及时消化本章的知识点,为后续章节的学习作好铺垫。

    全书共有11章。第1章为汇编语言的必备基础知识,介绍二进制、ASCII码、补码,初步认识汇编语言。第2~8章为实模式下16位机的编程技术,也是保护模式编程的基础。第2章介绍Intel 8086微处理器的寄存器组织和存储器组织;第3章介绍寻址方式和几个常用汇编指令,并介绍简短程序的设计及调试方法;第4章介绍常用伪指令及完整汇编语言程序的编辑、汇编、连接、调试等上机操作方法;第5章和第6章详细介绍顺序结构、分支结构、循环结构程序和子程序的设计方法及相关指令;第7章和第8章介绍输入/输出、中断、宏汇编和模块化程序设计方法。第9章和第10章为保护模式下32位机的编程技术,介绍保护模式下的存储器管理、32位指令及程序设计方法。第11章介绍了保护模式的实现机理,供想深入学习保护模式编程的人员参考。

    本书由王向慧、马海波编著。具体分工为:第1~6章由王向慧编写,第9~11章由马海波编写,第7~8章由刘民编写,参与本书大纲讨论和编写工作的还有赵瑞、王德广、连志春、张家敏、银晓明、田宏、刘文光等,全书由王向慧和马海波统稿。在本书的编写过程中得到了中国水利水电出版社的大力支持,在此深表谢意,并对所参考的国内外教材和资料的原作者表示衷心的感谢!

    书中难免出现疏漏或不妥之处,敬请广大读者批评指正。

    前言
    第1部分  预备知识
    第1章  汇编语言与二进制 1
    学习目标 1
    1.1  认识汇编语言 1
    1.1.1  指令与程序 1
    1.1.2  机器语言、汇编语言和高级语言 2
    1.1.3  为什么学习和使用汇编语言 3
    1.2  汇编语言中的计数制 5
    1.2.1  进位计数制 5
    1.2.2  十进制数与二进制数之间的相互转换 5
    1.2.3  十进制数与十六进制数之间的相互转换 6
    1.2.4  二进制数与十六进制数之间的相互转换 7
    1.3  计算机中数和字符的表示 8
    1.3.1  无符号数与有符号数 8
    1.3.2  有符号数的补码表示 8
    1.3.3  ASCII码和BCD码 10
    1.4  基本的二进制运算规则 12
    1.4.1  算术运算 12
    1.4.2  逻辑运算 13
    1.4.3  补码的加减法运算 13
    思考与习题 14
    第2部分  实模式编程
    第2章  8086计算机组织 16
    学习目标 16
    2.1  微型计算机硬件系统 16
    2.2  Intel 80x86系列微处器简介 18
    2.3  8086微处理器的功能结构 21
    2.4  实模式下的内存组织 22
    2.4.1  内存的线性编址和数据存储 22
    2.4.2  内存的分段管理 23
    2.4.3  逻辑地址到物理地址的转换 24
    2.4.4  多个逻辑段的数据管理 25
    2.5  8086寄存器组 26
    2.5.1  通用寄存器 27
    2.5.2  段寄存器 28
    2.5.3  指令指针寄存器 29
    2.5.4  标志寄存器 29
    思考与习题 31
    第3章  简短的程序设计 33
    学习目标 33
    3.1  汇编指令基本格式 33
    3.2  开始设计汇编语言程序 35
    3.2.1  几个常用的汇编指令 35
    3.2.2  设计第一个汇编语言程序 40
    3.2.3  使用DEBUG进行汇编语言程序设计 41
    3.3  JMP、JE、JNE指令与分支 49
    3.4  LOOP指令与循环 53
    3.5  与数据有关的四类寻址方式 56
    3.5.1  固定寻址方式 56
    3.5.2  立即寻址方式 57
    3.5.3  寄存器寻址方式 58
    3.5.4  存储器寻址方式 58
    3.6  一条指令的执行过程 63
    3.7  上机实践 64
    思考与习题 65
    第4章  汇编语言源程序的结构及设计过程 69
    学习目标 69
    4.1  汇编语言的语句类型和语句格式 69
    4.1.1  初识完整的汇编语言源程序 70
    4.1.2  执行性语句和说明性语句 71
    4.1.3  汇编语言源程序的语句格式 71
    4.2  汇编语言源程序的结构形式 74
    4.2.1  完整的段定义结构 74
    4.2.2  程序段前缀结构 75
    4.2.3  简化的段定义结构 76
    4.3  汇编语言上机过程 77
    4.3.1  源程序的编辑 78
    4.3.2  对源程序的汇编 79
    4.3.3  对目标程序的连接 80
    4.3.4  EXE文件的运行与调试 81
    4.3.5  COM文件的运行与调试 84
    4.3.6  使用MASM 6.11下的ML.EXE汇编和连接 87
    4.4  汇编语言源程序中的伪指令 88
    4.4.1  符号定义伪指令 88
    4.4.2  数据定义伪指令 90
    4.4.3  定位伪指令与地址计数器 93
    4.4.4  段定义伪指令 95
    4.4.5  程序开始和结束伪指令 97
    4.4.6  简化段定义伪指令 97
    4.4.7  处理器选择伪指令 99
    4.5  上机实践 99
    思考与习题 102
    第5章  程序的基本控制结构及设计方法 105
    学习目标 105
    5.1  程序设计的一般步骤及基本控制结构 105
    5.1.1  程序设计的一般步骤 105
    5.1.2  算法的表示 105
    5.1.3  顺序、分支、循环结构 106
    5.2  顺序结构程序设计及常用指令 107
    5.2.1  数据传送类指令 107
    5.2.2  算术运算类指令 110
    5.2.3  逻辑运算类指令 114
    5.2.4  移位类指令 116
    5.2.5  标志位操作指令 118
    5.2.6  顺序结构程序设计示例 118
    5.2.7  上机实践 120
    5.3  分支结构程序设计及常用指令 120
    5.3.1  分支程序的基本结构形式 121
    5.3.2  与转移地址有关的寻址方式及无条件转移指令JMP 121
    5.3.3  条件转移类指令 123
    5.3.4  分支结构程序设计示例 126
    5.3.5  上机实践 131
    5.4  循环结构程序设计及常用指令 132
    5.4.1  循环程序的组成 133
    5.4.2  循环程序的结构形式 133
    5.4.3  循环控制类指令 134
    5.4.4  数据串操作类指令及其重复前缀 136
    5.4.5  循环控制的方法及循环结构程序设计示例 140
    5.4.6  上机实践 144
    思考与习题 146
    第6章  子程序设计 149
    学习目标 149
    6.1  子程序的引出 149
    6.1.1  调用程序与子程序 149
    6.1.2  堆栈在子程序设计中的作用 149
    6.1.3  过程定义伪指令 152
    6.1.4  CALL和RET指令 153
    6.2  子程序的结构 155
    6.2.1  调用程序与子程序在同一代码段内的程序结构 155
    6.2.2  调用程序与子程序不在同一代码段内的程序结构 155
    6.3  子程序设计方法 156
    6.3.1  子程序设计时应注意的几点问题 156
    6.3.2  现场的保护与恢复 156
    6.3.3  子程序说明文件 157
    6.3.4  主程序与子程序之间参数传递的方法 157
    6.4  子程序的嵌套与递归 167
    6.5  子程序设计示例 169
    6.6  上机实践 173
    思考与习题 175
    第7章  中断及输入/输出程序设计 177
    学习目标 177
    7.1  简单的输入/输出程序设计 177
    7.1.1  接口与端口 177
    7.1.2  IN和OUT指令 177
    7.1.3  一个发声程序示例 179
    7.2  中断 180
    7.2.1  中断及中断处理程序 180
    7.2.2  中断源与中断分类 181
    7.2.3  中断向量表 183
    7.2.4  INT和IRET指令 184
    7.2.5  中断过程 185
    7.2.6  实模式下中断程序设计 187
    7.3  BIOS和DOS中断 191
    7.3.1  BIOS中断调用及其使用方法 192
    7.3.2  DOS功能调用及其使用方法 193
    7.4  上机实践 195
    思考与习题 196
    第8章  高级汇编语言程序设计 198
    学习目标 198
    8.1  宏汇编 198
    8.1.1  宏的定义、调用和展开 198
    8.1.2  多次宏调用时标号的处理 200
    8.1.3  宏中参数的使用 202
    8.1.4  宏库的使用 205
    8.1.5  宏与子程序 206
    8.2  重复汇编 207
    8.2.1  定重复汇编 207
    8.2.2  不定重复汇编 208
    8.3  条件汇编 209
    8.4  上机实践 211
    8.5  模块化程序设计 212
    8.5.1  模块化分的原则 213
    8.5.2  模块间的通信 213
    8.5.3  模块化程序设计上机步骤 216
    8.5.4  模块化程序设计示例 216
    8.6  上机实践 220
    思考与习题 220
    第3部分  保护模式编程
    第9章  32位指令及其编程 222
    学习目标 222
    9.1  32位CPU的内部结构 222
    9.1.1  32位CPU内部结构及其功能 222
    9.1.2  程序可见的32位寄存器组 223
    9.2  80386存储器寻址方式 225
    9.2.1  寄存器寻址基本概念 225
    9.2.2  存储器寻址方式 226
    9.3  32位扩展指令 227
    9.3.1  数据传送类指令 228
    9.3.2  算术运算类指令 231
    9.3.3  逻辑和移位类指令 233
    9.3.4  串操作类指令 234
    9.3.5  控制转移类指令 235
    9.3.6  位操作类指令 236
    9.3.7  保护模式类指令 237
    9.4  32位指令的程序设计 238
    9.4.1  80386编程格式 238
    9.4.2  伪指令简化段定义格式 239
    9.4.3  简单的32位编程示例 240
    思考与习题 243
    第10章  保护模式下的存储器管理 246
    学习目标 246
    10.1  保护模式与实模式的比较 246
    10.1.1  实模式寻址特点 246
    10.1.2  保护模式寻址特点 247
    10.2  虚拟内存管理 247
    10.2.1  虚拟地址、线性地址、物理地址的转换过程 248
    10.2.2  保护机制 249
    10.3  控制寄存器和系统地址寄存器 250
    10.3.1  控制寄存器CR0、CR1、CR2、CR3 250
    10.3.2  描述符表 251
    10.3.3  全局描述符表寄存器GDTR 252
    10.3.4  局部描述符表寄存器LDTR 253
    10.3.5  中断描述符表寄存器IDTR 253
    10.3.6  任务状态段寄存器TR 253
    10.4  段式内存管理 254
    10.4.1  段的定义及存储段描述符 254
    10.4.2  段寄存器与段选择子 256
    10.4.3  段描述符高速缓冲寄存器 257
    10.5  页式内存管理 258
    10.5.1  分页管理机制 258
    10.5.2  两级页映射表 258
    10.5.3  线性地址到物理地址的转换 260
    10.5.4  页转换高速缓存TLB 260
    10.5.5  页面映射示例 261
    思考与习题 261
    第11章  保护模式及其编程 263
    学习目标 263
    11.1  实模式与保护模式之间的切换 263
    11.1.1  两种模式之间的切换 263
    11.1.2  头文件 264
    11.1.3  从实模式切换到保护模式的编程 268
    11.2  控制门 272
    11.2.1  系统段描述符 272
    11.2.2  门描述符 274
    11.3  任务切换 275
    11.3.1  任务状态段TSS 275
    11.3.2  直接任务切换 277
    11.3.3  间接任务切换 278
    11.3.4  任务切换的步骤 278
    11.3.5  任务内特权级变化的程序转移 279
    11.4  中断和异常 281
    11.4.1  80386的中断和异常 281
    11.4.2  异常类型 282
    11.4.3  中断和异常的处理过程 287
    11.5  操作系统类指令 291
    11.5.1  实模式和任何特权级下可执行的指令 291
    11.5.2  实模式及特权级0下可执行的指令 291
    11.5.3  只能在保护模式下执行的指令 293
    11.6  输入/输出保护 295
    11.6.1  输入/输出的保护方法 295
    11.6.2  重要标志保护 297
    11.7  虚拟8086模式 298
    11.7.1  V86模式 298
    11.7.2  进入及退出V86模式 299
    11.7.3  V86模式下的敏感指令 302
    思考与习题 302
    附录A  BIOS中断调用 304
    附录B  DOS功能调用(INT 21H) 307
    附录C  集成化开发环境PWB 312
    参考文献 316本书以Intel 80x86微处理器为硬件平台,介绍了汇编语言程序设计的方法。全书共11章,包括预备知识、实模式编程和保护模式编程三部分。在介绍80x86微处理器和存储器组织之后,重点介绍了顺序结构、分支结构、循环结构和子程序设计方法,还介绍了宏汇编、中断和异常、输入/输出及模块化程序设计方法。
    本书对汇编语言的概念和程序设计的阐述通俗易懂,例子翔实;对习题的选择,难易适当,题型丰富;在介绍一门计算机语言的同时,注重对程序编制和调试能力的培养。
    本书可作为高等院校计算机及相关专业本、专科教材,也可作为从事计算机工作的工程技术人员以及计算机爱好者的参考书。
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册