汇编语言程序设计

汇编语言程序设计"

作者:廖建明
ISBN:9787302200772
定价:¥35
字数:千字
页数:
出版时间:2009.10.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本书以80x86系列微型计算机为硬件基础,系统地介绍汇编语言程序设计的基本知识、基本原理、程序设计技术,以及汇编语言程序的开发过程。全书共分11章,介绍相关基础知识,IBM PC微型计算机的结构、功能、寻址方式和指令系统,基本汇编语言和MASM高级宏汇编语言的格式和各种伪指令,基本的顺序、分支和循环程序设计方法和技术,子程序的设计方法,以实例形式介绍算术运算、串操作、表处理和代码转换等常用汇编语言程序设计技术与方法,输入输出、中断、DOS系统调用和BIOS中断调用程序的设计,32位微处理器结构、指令特点以及Win32编程基础方法,汇编语言程序的开发过程及上机操作   过程。

本书可作为高校计算机及相关专业的教材,也可作为高校师生和工程技术人员的参考书。

前言

“汇编语言程序设计”课程是计算机及相关专业重要的专业基础课程。汇编语言具有与高级语言不同的特点,在操作系统核心程序、嵌入式系统、驱动程序设计、信息安全以及资源受限的系统环境中具有不可替代的作用。在计算机系统的知识体系结构中,“汇编语言程序设计”是联系软、硬件知识的重要纽带。通过本课程的学习,使学生了解计算机系统中软件和硬件之间的关系,从机器级熟悉计算机的基本工作原理,掌握基于硬件的基本程序设计方法;从理论、技术和应用等全方面认识计算机系统,提高学生实践动手能力。在本课程的学习中,学生将了解计算机系统的组织结构,熟悉IBM PC系列微型计算机的指令系统和寻址方式,掌握常用的程序设计基本思想和设计方法。

本书在编写过程中,遵循微型计算机系统的特点,注重基本知识与典型应用的介绍;深入浅出、概念清楚、重点突出,以实例帮助理解。本书不仅适合于作为计算机专业的本科生教材,也可作为其他专业的本科生或研究生学习汇编语言程序设计的教材和参考资料。

建议使用本书的授课学时为40~60学时。在教学过程中可根据教学对象和学时要求选取有关章节。由于汇编语言程序设计课程是一门实践性很强的课程,在课堂教学的同时,还应安排20学时左右的上机实践,以培养学生对所学知识的深入理解和实际编程能力。

本书作者多年从事“汇编语言程序设计”课程教学并长期承担相关科研任务,具有丰富的教学实践和计算机程序设计经验。本书的第1章和附录部分由廖建明编写,第2~第4章由詹瑾瑜编写,第5、第6、第8、第10章由唐勇编写,第7、第9、第11章由匡平编写,廖建明负责全书统稿。

由于编者水平有限,编写时间仓促,书中错误之处难免,恳请读者指正。

编者       

2009年4月于成都

IV

应用系统开发导论实验教程

V

目录

第1章  基础知识 1

1.1  汇编语言程序的一般概念 1

1.1.1  机器语言 1

1.1.2  高级语言 2

1.1.3  汇编语言 3

1.2  进位计数制及其相互转换 3

1.2.1  进位计数制 3

1.2.2  各种数制间的相互转换 4

1.3  计算机中数和字符的表示 9

1.3.1  带符号数的表示 9

1.3.2  字符的表示 13

1.4  基本逻辑运算 14

习题1 15

第2章  IBM PC微型计算机基本构成 17

2.1  IBM PC微型计算机的基本结构 17

2.1.1  微型计算机系统的组成 17

2.1.2  Intel 8086/8088微处理器的功能结构 20

2.2  Intel 8086/8088 CPU的寄存器组 23

2.2.1  通用寄存器 23

2.2.2  段寄存器 25

2.2.3  控制寄存器 26

2.3  存储器 30

2.3.1  IBM PC存储器的组织 30

2.3.2  存储器的段结构 31

2.3.3  逻辑地址与物理地址 33

2.4  堆栈 36

2.4.1  堆栈的概念 36

2.4.2  堆栈的组织 37

2.4.3  堆栈的操作 38

习题2 40

第3章  Intel 8086/8088的寻址方式与指令系统 42

3.1  寻址方式 42

3.1.1  寄存器寻址 43

3.1.2  立即数寻址 43

3.1.3  存储器寻址 44

3.2  指令系统 54

3.2.1  传送类指令 54

3.2.2  算术运算类指令 65

3.2.3  位操作类指令 71

3.2.4  处理器控制类指令 80

3.3  指令编码 81

3.3.1  双操作数指令编码格式 82

3.3.2  单操作数指令编码格式 87

3.3.3  与AX或AL有关的指令编码格式 88

3.3.4  其他指令编码格式 89

习题3 90

第4章  基本汇编语言 94

4.1  汇编语言语句种类及其格式 94

4.1.1  指令语句 94

4.1.2  伪指令语句 95

4.1.3  标识符 96

4.2  汇编语言数据 96

4.2.1  常量 96

4.2.2  变量 97

4.2.3  标号 104

4.3  表达式与运算符 105

4.3.1  算术运算符 105

4.3.2  移位运算符 106

4.3.3  逻辑运算符 107

4.3.4  关系运算符 108

4.3.5  数值返回运算符 108

4.3.6  属性修改运算符 112

4.3.7  运算符的优先级 113

4.4  常用的伪指令 114

4.4.1  符号定义伪指令 114

4.4.2  数据定义伪指令 116

4.4.3  LABEL属性定义伪指令 118

4.4.4  SEGMENT/ENDS段定义伪指令 119

4.4.5  ASSUME段寻址伪指令 122

4.4.6  PROC/ENDP过程定义伪指令 124

4.4.7  ORG定位伪指令和$当前位置计数器 125

4.4.8  TITLE标题伪指令 126

4.4.9  END程序结束伪指令 126

4.4.10  PUBLIC和EXTRN模块连接伪指令 126

4.5  汇编源程序的结构 128

4.5.1  程序的段结构 128

4.5.2  段寄存器的装入 130

4.6  程序返回操作系统 133

4.6.1  用4CH系统功能调用实现返回 133

4.6.2  用程序段前缀实现返回 134

习题4 135

第5章  顺序、分支与循环程序设计 140

5.1  概述 140

5.2  顺序程序设计 143

5.3  分支程序设计 145

5.3.1  无条件转移指令 147

5.3.2  条件转移指令 150

5.3.3  分支程序设计 154

5.4  循环程序设计 163

5.4.1  循环控制指令 163

5.4.2  循环程序结构 164

5.4.3  单重循环程序设计 166

5.4.4  多重循环程序设计 171

习题5 175

第6章  子程序设计 180

6.1  子程序的调用与返回 181

6.1.1  子程序的定义 181

6.1.2  调用指令 181

6.1.3  返回指令 183

6.2  子程序设计的基本要求 184

6.3  子程序与主程序间的参数传递 186

6.3.1  用寄存器传递参数 186

6.3.2  用堆栈传递参数 188

6.3.3  用地址表传递参数 190

6.4  子程序的嵌套与递归调用 192

6.4.1  子程序的嵌套调用 192

6.4.2  子程序的递归调用 192

习题6 194

第7章  汇编语言简单应用程序设计 198

7.1  算术运算调整指令及其应用 198

7.1.1  BCD码校正及其加减法BCD码校正指令 198

7.1.2  乘除法运算及其BCD码校正指令 204

7.1.3  开方运算 212

7.2  串和表的处理 216

7.2.1  串操作指令 216

7.2.2  表的处理 221

7.3  代码转换及其应用 225

7.3.1  十六进制ASCII码与二进制数之间的转换 225

7.3.2  二进制数与十进制数之间转换 229

习题7 230

第8章  高级宏汇编语言 231

8.1  结构 231

8.1.1  结构的定义 232

8.1.2  结构的预置与存储分配 232

8.1.3  对结构变量及其字段的操作 234

8.1.4  程序举例 235

8.2  记录 237

8.2.1  记录的定义 237

8.2.2  记录的预置与存储分配 238

8.2.3  记录运算符 239

8.2.4  对记录及其字段的操作 240

8.3  宏指令 241

8.3.1  宏指令的使用过程 241

8.3.2  宏操作符 244

8.3.3  局部符号伪指令 246

8.3.4  宏库 247

8.4  重复汇编 249

8.4.1  定重复伪指令 249

8.4.2  不定重复伪指令 250

8.5  条件汇编 251

习题8 255

第9章  输入输出和中断 259

9.1  输入输出指令 259

9.1.1  I/O端口 259

9.1.2  I/O端口寻址 260

9.1.3  I/O指令 261

9.2  输入输出控制方式 263

9.2.1  程序控制方式 263

9.2.2  中断控制方式 267

9.2.3  直接存储器存取方式 267

9.3  中断 269

9.3.1  中断源及中断类型码 270

9.3.2  中断矢量表 271

9.3.3  中断优先级 272

9.3.4  中断过程 272

9.3.5  如何编写中断处理程序 275

9.4  BIOS和DOS中断调用 277

9.4.1  键盘BIOS功能调用 279

9.4.2  键盘DOS功能调用 281

9.4.3  打印机BIOS功能调用17H 282

9.4.4  时钟BIOS和DOS功能调用 283

9.4.5  显示器BIOS功能调用 284

9.4.6  显示器DOS功能调用 286

9.5  程序举例 286

习题9 290

第10章  32位微处理器指令及编程基础 291

10.1  80x86系列微处理器结构 291

10.1.1  80386微处理器的特点 291

10.1.2  80386微处理器的内部结构 292

10.1.3  80386微处理器的寄存器 293

10.1.4  80486微处理器 295

10.1.5  Pentium微处理器 296

10.2  80x86系列微处理器指令的特点 296

10.2.1  微处理器的工作模式 296

10.2.2  寻址方式 298

10.3  80x86系列微处理器的指令 298

10.3.1  数据传送指令 298

10.3.2  算术运算指令 299

10.3.3  逻辑运算与移位指令 300

10.3.4  堆栈操作指令 300

10.3.5  串操作指令 301

10.3.6  控制转移指令 301

10.3.7  位操作指令 302

10.3.8  I/O指令 302

10.3.9  特权指令 303

10.4  程序设计举例 303

习题10 305

第11章  汇编语言程序的开发 306

11.1  汇编语言程序的开发过程 306

11.2  编辑 307

11.3  汇编器的使用 308

11.4  连接器的使用 311

11.5  调试与运行 313

11.5.1  调试程序DEBUG的主要特点 313

11.5.2  DEBUG程序的启动与退出 314

11.5.3  显示命令 315

11.5.4  修改命令 316

11.5.5  程序运行 318

11.5.6  其他常用DEBUG命令 318

11.5.7  调试程序的基本步骤 320

附录A  ASCII码字符表 323

附录B  80x86系列微处理器指令系统汇总表 324

附录C  DOS系统功能调用(INT 21H) 353

附录D  BIOS中断调用 359

参考文献 364

X

汇编语言程序设计

IX

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个