计算机类专业教育 > 硬件类

汇编语言程序设计

书号:9787113101015 套系名称:普通高等学校计算机科学与技术专业规划教材

作者:白小明主编 出版日期:2009-08-01

定价:35.00 页码 / 开本:334 /16

策划编辑:严晓舟 周海燕 责任编辑:秦绪好

适用专业:无 适用层次:本科

最新印刷时间:

资源下载
教学课件 教学素材(暂无)
习题答案(暂无) 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  •         本书根据IEEE/ACM推出的CC2005和我国教育部高等学校计算机科学与技术教学指导委员会2006年发布的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》编写而成,内容涵盖了知识领域CS-AR3 汇编级机器组织的知识点。

            本书以Intel 80x86指令系统和汇编语言开发工具MASM 6.11与MASM 32为主体,在PC的MS-DOS和Windows环境中,较为系统地介绍了汇编语言程序设计所需要的指令、语法以及调试工具。第1~5章是80x86汇编语言的基本内容,包括汇编语言基础知识、寻址方式、主要汇编指令、伪指令、源程序格式、分支结构程序、循环结构程序、子程序和宏的程序设计技巧;第6~8章介绍了输入/输出程序的设计,包括输入/输出的基本概念,查询方式的I/O程序设计,中断处理程序设计,键盘、鼠标和视频的操作,磁盘文件存取的相关程序设计;第9~10章将内容扩展到32位汇编语言、多媒体指令和浮点编程等应用方面以及Windows窗口应用程序的开发。

            本书适合作为高等院校计算机科学与技术及相关专业的教材,也可作为相关专业工程技术人员的参考书。
  •         “汇编语言程序设计”是继“高级语言程序设计”之后的又一门计算机语言程序设计课程,它讲解的是面向机器硬件的低级语言。汇编语言能够为程序员提供最直接操作机器硬件系统的途径,利用它可以编写出在“时间”和“空间”两个方面最具效率的程序。

            “汇编语言程序设计”是计算机各专业的一门重要基础课程,是必修的核心课程之一,是“操作系统”和“微机原理与接口技术”等其他核心课程必要的先修课。该课程一方面可加强学生的高级语言编程能力;另一方面配合“计算机组成原理”和“微机原理及接口技术”课程,从软件角度理解计算机工作原理;同时,还可作为自动控制等与硬件相关应用领域的程序设计基础,以及为“操作系统”、“嵌入式系统”等课程提供基础知识。

            ★ 本书的主要特色

            在多年的汇编语言程序设计课程教学过程中,我们使用过的教材有:沈美明编著的“IBM-PC汇编语言程序设计”、周明德主编的“80x86的结构与汇编语言程序设计”、张怀莲主编的“宏汇编语言程序设计”、钱晓捷主编的“汇编语言程序设计”等。这些教材都是很优秀的教材,被很多高校采用。经过二十几年的发展,Intel处理器技术和汇编语言程序设计方法有了全新的进展。为了跟踪新技术,给读者构造合理的学习线索,需要真正地遵循循序渐进的原则。一方面,我们需要打破传统的章节划分,对课程的内容进行重组、分割和补充;另一方面,根据多年从事本课程教学的经验,我们觉得对本课程的教学思路需要做一些调整。本书在编写上有如下特色:

            第一,本书根据IEEE/ACM推出的CC2005和我国教育部高等学校计算机科学与技术教学指导委员会2006年发布的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》编写而成,内容涵盖了知识领域CS-AR3 汇编级机器组织的知识点,基本涵盖了当前汇编语言的内容,适用范围较为广泛。

            第二,本书的编写目的是使汇编语言的编程和学习变得更轻松、更深入、更有趣。在教学内容编排上,由浅入深,循序渐进,对知识点的逻辑结构进行了精心设计安排。

            第三,本书主要通过例证来教学。本书在第1章就给出了一个完整的汇编语言程序,并且在学生能够理解的层次上,仔细考察了程序的各个部分。随后的章节包含了许多汇编语言代码的例子,同时,对一些新的或者难以理解的概念给出了恰当的解释。本书使用了大量的图表和例子,给出许多“指令执行前”和“指令执行后”的例子来讲解指令,以及一些演示调试程序使用的例子。这些例子可以帮助学生深入了解计算机内部的工作。同时,在每一章节后配以典型的、多样的练习题,汇编语言实验指导部分配有实用性的实验题目,从而引导学生饶有兴趣地学习理论知识,通过完成练习题目,能动地完成实验,在潜移默化中巩固和加深对知识点的理解和掌握。

            ★ 本书内容的组织

            为了适应任何层次的编程,程序员必须了解在机器层的某些基本原理,它们在大多数的计算机体系结构中都要用到。本书将涉及以下基本概念:

            存储器地址、CPU寄存器及其使用。

            计算机中数值型格式的数据和字符串的表示。

             指令格式。

            数据的存储方式与寻址方式。

            指令集及其分类(数据操作、控制、输入/输出)。

            子程序调用和返回机制。

            中断处理。

            汇编语言和机器语言编程基础。

            本书共分10章。第1章介绍汇编语言的基本概念、数据在计算机中的表示、80x86的寄存器结构、存储器和堆栈的结构;第2章以80x86为背景,讲解了指令操作数的寻址方式,数据处理指令(包括传送、算术运算、逻辑运算指令);第3章介绍了汇编语言的常用伪指令、汇编语言程序格式和如何利用DOS提供的功能调用实现基本输入/输出操作;第4章介绍了汇编语言程序的基本结构,转移地址寻址方式以及转移指令、循环指令、串操作指令的格式和功能,通过实例讲解如何利用汇编语言实现程序的分支和循环结构;第5章详细讲解了子程序调用与返回指令,子程序的定义及参数传递,宏定义和宏调用等内容;第1~5章可作为初学者学习汇编语言程序设计的基本内容。第6章以PC及其兼容机为硬件平台,介绍输入/输出和中断等概念,讲解如何利用汇编语言编写I/O程序和中断处理程序;第7章介绍了键盘、鼠标和视频显示的工作原理,讨论了利用BIOS中断调用实现键盘、鼠标操作和视频显示程序的设计;第8章介绍了磁盘系统的基本知识,讲解了以文件代号方式实现磁盘文件存取的相关程序设计;第6~8章的内容可作为汇编语言的提高部分。第9~10章将内容扩展到32位汇编语言、多媒体指令和浮点指令编程等应用方面,还简要介绍了Windows汇编程序的开发过程及Windows应用程序的设计;这两章的内容可作为读者了解高档微处理器、保护方式编程和Windows汇编程序设计技术的参考书。汇编语言实验指导部分列举了大量实验题目。最后的附录A部分介绍汇编语言的调试工具,附录B部分给出了DOS系统功能调用和BIOS中断调用内容,应在上机实验前先阅读了解附录部分内容。

            ★ 教学学时安排

            本书建议总学时为48~64学时,各高校按照计算机专业课程体系中课程设置和讲授内容的不同可以灵活调整。

            本书由白小明担任主编,徐苏、娄芳任副主编,陈萌参编,由白小明最后统一定稿。本书从编写大纲的制定到定稿的全过程得到南昌大学王命延教授的热情关心和大力支持,承蒙他审阅了全书,在此表示衷心感谢!

            本书在编写过程中还得到了同事程从从教授、邱桃荣教授和余松森博士的帮助,在此一并表示感谢!
    限于编者的能力和水平,书中不妥与疏漏之处在所难免,恳请同行和读者批评指正。

            编  者  

            2009年5月

  • 第1章  汇编语言入门 1
    1.1  认识汇编语言 1
    1.1.1  机器语言 1
    1.1.2  汇编语言 2
    1.1.3  一个显示字符串的汇编语言程序 3
    1.2  数据在计算机中的表示 4
    1.2.1  数值数据在计算机中的表示 4
    1.2.2  BCD码表示 7
    1.2.3  字符编码 8
    1.3  80x86微处理器 11
    1.3.1  80x86微处理器的演化 11
    1.3.2  80x86微处理器的组成 13
    1.3.3  80x86微处理器的编程结构 14
    1.4  存储器与堆栈 16
    1.4.1  存储器 17
    1.4.2  实模式下存储器的组织 18
    1.4.3  保护模式下存储器的组织 21
    1.4.4  堆栈的结构与数据存取 22
    本章小结 24
    习题 24
    第2章  寻址方式和指令 26
    2.1  80x86指令系统概述 26
    2.1.1  80x86的指令种类 26
    2.1.2  80x86的指令格式 29
    2.2  80x86指令操作数的寻址 31
    2.2.1  80x86指令的操作数类型 31
    2.2.2  立即数寻址 32
    2.2.3  寄存器操作数的寻址 33
    2.2.4  存储器操作数的寻址 34
    2.3  80x86的几类基本指令 39
    2.3.1  数据传送类指令 39
    2.3.2  算术运算类指令 46
    2.3.3  逻辑运算类指令 52
    2.3.4  处理器控制指令 59
    本章小结 60
    习题 61
    第3章  汇编语言的要素 65
    3.1  伪指令 65
    3.1.1  段定义伪指令 65
    3.1.2  源程序开始和结束伪指令 71
    3.1.3  数据定义及存储器分配伪指令 72
    3.1.4  其他伪指令 75
    3.2  汇编语言语句格式 78
    3.2.1  名字项 78
    3.2.2  操作项 79
    3.2.3  操作数项 79
    3.2.4  注释项 83
    3.2.5  汇编语言源程序的格式 83
    3.3  常用的DOS系统功能调用 85
    3.3.1  概述 85
    3.3.2  常用的输入/输出系统功能调用 85
    本章小结 90
    习题 90
    第4章  程序逻辑与控制 93
    4.1  程序控制结构 93
    4.1.1  分支程序结构 93
    4.1.2  循环程序结构 94
    4.1.3  子程序结构 95
    4.2  分支结构程序设计 95
    4.2.1  无条件转移指令 96
    4.2.2  条件转移指令 98
    4.2.3  分支程序设计方法 102
    4.3  循环结构程序设计 107
    4.3.1  循环指令 107
    4.3.2  单重循环程序设计 108
    4.3.3  多重循环程序设计 113
    4.4  串操作 115
    4.4.1  串操作指令 115
    4.4.2  字符串程序处理程序举例 121
    本章小结 123
    习题 123
    第5章 子程序和宏 125
    5.1  子程序 125
    5.1.1  子程序调用与返回指令 125
    5.1.2  子程序设计的一般方法 130
    5.1.3  子程序设计举例 134
    5.2  宏 139
    5.2.1  宏定义与宏调用 140
    5.2.2  宏定义中的参数 142
    5.2.3  宏操作符 143
    5.2.4  嵌套的宏 144
    5.2.5  与宏相关的伪指令 146
    5.3  重复汇编和条件汇编 148
    5.3.1  重复汇编 148
    5.3.2  条件汇编 149
    本章小结 150
    习题 151
    第6章  输入/输出与中断 153
    6.1  输入/输出的基本概念 153
    6.1.1  I/O地址与输入/输出指令 153
    6.1.2  数据传送控制方式 156
    6.1.3  存取RT/CMOS RAM 157
    6.2  查询方式数据传送 159
    6.2.1  查询方式 159
    6.2.2  查询方式输入/输出程序设计 160
    6.3  80x86的中断系统 162
    6.3.1  80x86的中断分类 163
    6.3.2  中断向量表 164
    6.3.3  中断处理过程 167
    6.3.4  中断优先级和中断嵌套 168
    6.4  中断处理程序设计 169
    6.4.1  设置和获取中断向量 169
    6.4.2  中断处理程序的设计 171
    6.4.3  BIOS中断调用 177
    本章小结 179
    习题 180
    第7章  键盘、鼠标和视频的操作 181
    7.1  键盘输入 181
    7.1.1  BIOS键盘数据区 181
    7.1.2  键盘输入的INT 16H操作 185
    7.2  鼠标操作 187
    7.2.1  基本的鼠标操作 187
    7.2.2  鼠标操作程序设计举例 189
    7.3  视频的设置 192
    7.3.1  文本显示模式 192
    7.3.2  彩色文本模式的BIOS中断调用 194
    7.3.3  图形显示模式 196
    本章小结 202
    习题 203
    第8章  磁盘文件存取 204
    8.1  磁盘的记录方式 204
    8.1.1  磁盘记录信息的地址 204
    8.1.2  磁盘系统区和数据区 206
    8.1.3  磁盘目录及文件分配表 207
    8.2  磁盘存取方式——文件代号 208
    8.2.1  文件代号式磁盘存取的基本概念 209
    8.2.2  常用的磁盘文件管理DOS功能调用 211
    8.2.3  写磁盘文件 213
    8.2.4  读磁盘文件 216
    8.2.5  移动读/写指针 220
    8.3  BIOS磁盘存取中断调用和编程 224
    8.3.1  基本的BIOS磁盘操作 224
    8.3.2  BIOS磁盘操作程序设计举例 226
    本章小结 229
    习题 229
    第9章  汇编语言扩展 231
    9.1  32位指令及其编程 231
    9.1.1  32位处理器寄存器结构 231
    9.1.2  32位处理器指令系统 234
    9.1.3  32位指令的程序设计 236
    9.2  多媒体指令 239
    9.2.1  MMX指令 239
    9.2.2  SSE指令 246
    9.2.3  SSE指令集的发展 253
    9.3  浮点运算指令及编程 255
    9.3.1  协处理器的内部结构 255
    9.3.2  协处理器的指令系统 258
    9.3.3  浮点运算指令编程举例 262
    本章小结 264
    习题 265
    第10章 Win32汇编 267
    10.1  Win32汇编的环境和基础 267
    10.1.1  Win32汇编的编程环境 267
    10.1.2  Win32汇编程序的结构 272
    10.1.3  API函数的使用 274
    10.2  Win32汇编语言的基本语法 277
    10.2.1  标号和变量 277
    10.2.2  子程序设计 278
    10.2.3  高级语法 280
    10.3  Win32汇编程序设计 283
    10.3.1  Win32窗口程序设计 283
    10.3.2  菜单和加速键程序设计 288
    10.3.3  工具栏和状态栏的使用 294
    10.3.4  图形界面的操作 296
    本章小结 299
    习题 300
    汇编语言实验指导 301
    实验1  初级程序的编写与调试实验 301
    实验2  汇编语言程序上机过程 304
    实验3  分支程序实验 305
    实验4  循环程序实验 307
    实验5  子程序实验 308
    实验6  字符处理程序实验 311
    实验7  键盘和窗口程序 314
    实验8  显示器与磁盘文件I/O程序设计 315
    附录A  汇编语言编程和调试工具 319
    A.1  宏汇编MASM 319
    A.2  调试工具 324
    附录B  DOS系统功能调用和BIOS中断调用 327
    参考文献 335