《微型计算机体系结构及程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)韦克利(Wakerly,J.F.)著;清华大学微处理机设计组译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1985
  • ISBN:15235·132
  • 页数:495 页
图书介绍:

第一部分 计算机初步 1

第一章 计算机和程序设计的一般介绍 1

1.1什么是计算机? 1

目录 1

1.2数字计算机硬件 2

1.3计算机的基本组成 4

1.4计算机系统软件 6

1.5算法 7

1.6计算机的数据类型 8

1.7计算机分类 10

第二章 程序设计语言PASCAL 12

2.1综述 12

参考文献 12

2.2词汇集 14

2.3程序结构 16

2.4说明 17

2.5标准数据类型和表达式 19

2.5.1整数类型 19

2.5.2实数类型 20

2.5.3字符类型 20

2.5.4布尔类型 20

2.6由用户定义的类型 21

2.6.1枚举型 21

2.6.2子界类型 22

2.7.2GOTO语句 23

2.7.1赋值语句 23

2.7简单语句 23

2.7.3过程语句 24

2.8结构语句Ⅰ 25

2.8.1复合语句 25

2.8.2IF语句 26

2.8.3FOR语句 28

2.9结构语句Ⅱ 28

2.9.1WHILE语句 28

2.9.2REPEAT语句 30

2.9.3CASE语句 31

3.1一维数组 36

第三章 PASCAL程序的数据结构 36

习题 36

参考文献 36

3.2多维数组 39

3.3堆栈 40

3.4队列 44

3.5单向链接表 47

3.6双向链接表 50

3.7表的存贮管理 52

参考文献 56

习题 56

第四章 数制及其算术运算 56

4.1进位计数制 56

4.2八进制和十六进制数 57

4.3进位计数制的一般转换 58

4.4非十进制数的加法和减法 59

4.5负数的表示法 60

4.5.1带符号数值的表示法 60

4.5.2补码数制 61

4.5.3基数-补码表示法 61

4.5.42的补码表示法 62

4.5.5基数减1补码表示法 63

4.5.61的补码表示法 63

4.5.7余2m-1码表示法 64

4.62的补码的加法和减法 64

4.6.1加法规则 64

4.6.4减法规则 65

4.6.3溢出 65

4.6.2图示法 65

4.6.52的补码和无符号二进制数 67

4.71的补码的加法和减法 67

4.8二进制乘法 69

4.8.1不带符号的乘法 69

4.8.2带符号的乘法 70

4.9二进制除法 71

4.9.1不带符号的除法 71

4.9.2带符号的除法 75

4.10二进制编码的十进制表示法 75

4.11定点和浮点表示法 76

4.11.1定点表示法 76

4.11.2基本的浮点表示法 77

4.11.3典型计算机中的浮点表示法 78

4.11.4浮点运算 79

4.12字符码 80

参考文献 83

习题 83

第二部分 一般原理 83

第五章 基本的计算机组成 83

5.1存贮器 83

5.1.1存贮器组成 83

5.1.2处理器与存贮器的Pascal模拟 84

5.2累加器型处理器 85

5.2.1单累加器型处理器的组成 85

5.1.3存贮器的种类 85

5.2.2基本指令周期 86

5.2.3机器指令 87

5.2.4指令组 87

5.2.5机器语言程序 89

5.2.6汇编语言 90

5.2.7一个简单程序的运行 90

5.2.8执行指令的Pascal模拟 92

5.2.9间接寻址 93

5.2.1子程序 95

5.3通用寄存器型处理器 98

5.3.1通用寄存器型处理器的组成 98

5.3.2指令格式 99

5.3.4指令系统 100

5.3.5程序实例 101

5.4堆栈型机器 103

5.4.1堆栈型机器的组成 104

5.4.2指令系统 105

5.4.3程序实例 107

5.4.4堆栈型机器的强处和弱点 108

5.5其它处理器的组成及分类 110

参考文献 111

习题 112

第六章 汇编语言程序设计 116

6.1汇编语言 116

6.1.1汇编语言格式 117

6.1.2伪操作和PLC 118

6.1.3表达式 121

6.1.4汇编时间、装入时间和运行时间的操作 121

6.2两次扫描的汇编程序 122

6.3目标模块和装入程序 126

6.4浮动汇编程序及装载程序 127

6.4.1浮动 127

6.4.2连接 129

6.5宏命令 130

6.6结构化汇编语言 133

参考文献 135

习题 136

第七章 寻址方式 138

7.1一般概念 138

7.2单参量寻址方式 140

7.2.1寄存器寻址 140

7.2.2绝对寻址 140

7.2.3立即寻址 141

7.2.5自动增量和自动减量 142

注:号表示高级的课题,初次阅读可以略去。 142

7.2.4寄存器间接寻址 142

7.3多参量寻址方式 145

7.3.1页面寻址 145

7.3.2变址寻址 147

7.3.3基址寻址 151

7.3.4基址变址寻址 153

7.3.5相对寻址 154

7.4位置无关码 155

7.5存贮器的地址变换和管理 156

7.5.1存贮器地址变换 156

7.5.2存贮器管理 158

习题 160

5.3.3寻址方式 160

参考文献 160

第八章 操作 162

8.1指令格式 162

8.2条件位 163

8.3数据传送 165

8.4加法和减法 166

8.5某些单操作数指令 167

8.6程序控制 168

8.7逻辑操作 172

8.8旋转和移位 173

8.9多精度加法和减法 177

8.10乘法和除法 178

8.11十进制运算 179

习题 182

参考文献 182

第九章 子程序和参数 186

9.1Pascal中的过程和函数 186

9.1.1过程 186

9.1.2函数 189

9.2高级语言程序中的参数 190

9.2.1Pascal参数 190

9.2.2数值参数 191

9.2.3变量参数 192

9.2.4过程和函数的参数 193

9.2.5其它高级语言中的参数 193

9.3汇编语言子程序和参数 194

9.3.1子程序调用方法 194

9.3.2子程序参数 195

9.3.3在寄存器和存贮器单元中传递参数 196

9.3.4参数区域 197

9.3.5静态和动态分配 198

9.3.6面向堆栈的参数传递方法 198

9.3.7另一例子:队列管理子程序 201

9.4递归 204

9.4.1递归过程和函数 204

9.4.2递归子程序 205

9.5共用程序 207

9.5.1一般结构 207

9.5.2扩展Pascal共用程序 208

9.5.3汇编语言共用程序 209

9.5.4共用程序的应用 213

参考文献 213

习题 214

10.1.1总线 217

10.1I/O的组成 217

第十章 输入/输出 217

10.1.2设备与接口 218

10.1.3端口 218

10.2I/O编程 219

10.2.1独立编址的I/O 219

10.2.2存贮器编址的I/O 221

10.3I/O规约 223

10.3.1输入操作 223

10.3.2重迭的I/O 225

10.3.3输出操作 226

10.4I/O驱动程序 227

10.4.1终端I/O 227

10.4.2共用的I/O驱动程序 232

第十一章 中断、直接存贮器存取和进程 233

习题 233

参考文献 233

11.1基本的中断系统结构和编程 236

11.1.1一般考虑 236

11.1.2一个简单的中断系统 237

11.1.3一个使用中断的I/O程序 238

11.1.4其他中断线 240

11.1.5一个中断系统的Pascal模拟 242

11.2中断系统和编程的种类 243

11.2.1中断级别和允许 243

11.2.2中断优先权 244

11.2.3中断的鉴别和查询 244

11.2.4向量中断 244

11.3.1陷阱 246

11.3.2软件中断 246

11.3陷阱和软件中断 246

11.4直接存贮器存取 247

11.4.1动机的形成 247

11.4.2DMA通道的编程 248

11.4.3存贮器映象屏幕 250

11.5中断进程 250

11.5.1进程 250

11.5.2简化的限制 251

11.5.3并行操作和多重中断进程 252

11.5.4实现的细节 252

11.5.5醒着和睡着 254

11.5.6与时序有关的错误和临界区 255

11.5.7检测临界区 255

11.5.8锁位及信号 256

11.6共用的数据和指令 257

11.6.1共用的变量和数据结构 257

11.6.2共用的指令(可重入程序) 259

11.6.3汇编语言程序举例 261

参考文献 266

习题 266

第十二章 程序开发 270

12.1程序开发的步骤 270

12.2说明和设计 270

12.2.1程序结构 271

12.2.2详细的模块设计 271

12.2.3设计的逐步完善 272

12.2.4数据结构 273

12.3编制文档 274

12.3.1前言 274

12.3.2程序模块前言 274

12.3.3数据模块前言 275

12.3.4全程数据结构的所有权 276

12.3.5文档的编制 277

12.4编码 277

12.4.1编码规则 277

12.4.2编码技巧 278

12.5测试和调试 281

12.5.1开发的方法 281

12.5.2测试 282

12.5.3调试 282

12.6维护 284

参考文献 285

习题 285

第三部分 特定微型计算机的体系结构 285

第十三章 DECPDP-11和LSI-11 285

13.1.1计算机结构 287

13.1基本组成 287

13.1.2处理器编程模型 288

13.1.3指令格式 288

13.2汇编语言 289

13.3寻址方式 290

13.3.1基本寻址方式 290

13.3.2PC寻址方式 291

13.3.3寻址方式摘要 291

13.3.4寻址方式的Pascal模拟 291

13.3.5存贮器地址变换和管理 293

13.4操作类型 294

13.4.1双操作数指令 294

13.4.2单操作数指令 294

13.4.3程序控制指令 294

13.4.4杂类指令 296

13.4.5扩充指令 297

13.4.6PDP-11作为一个堆栈型机器 298

13.5程序实例 299

13.6输入/输出、中断和陷阱 308

13.6.1输入/输出 308

13.6.2中断 310

13.6.3陷阱 312

参考文献 314

习题 314

第十四章 MOTOROLA68000 314

14.1基本组成 316

14.1.1计算机结构 316

14.1.2处理器编程模型 317

14.1.3指令格式 318

14.2汇编语言 318

14.3.1寄存器直接寻址 320

14.3寻址方式 320

14.3.2立即寻址 321

14.3.3绝对寻址 322

14.3.4地址寄存器间接寻址 322

14.3.5自动增量和自动减量寻址 322

14.3.6基址寻址 322

14.3.7变址寻址 323

14.3.8基址变址寻址 323

14.3.9相对寻址 323

14.3.10相对变址寻址 324

14.4操作 324

14.4.1存贮器访问指令 324

14.4.2特殊的存贮器访问指令 324

14.4.3移位和循环指令 327

14.4.4程序控制指令 327

14.4.5规则性和一致性 330

14.5程序实例 332

14.6输入/输出、中断和陷阱 342

14.6.1输入/输出 342

14.6.2中断 344

14.6.3陷阱 346

参考文献 347

习题 347

第十五章 ZILOGZ8000 349

15.1基本组成 349

15.1.1计算机结构 349

15.1.2处理器编程模型 350

15.1.3指令格式 351

15.2汇编语言 351

15.3寻址方式 351

15.3.1Z8001同Z8002的寻址比较 352

15.3.2寄存器寻址 354

15.3.3立即寻址 354

15.3.4绝对寻址 354

15.3.5寄存器间接寻址 355

15.3.6变址寻址 355

15.3.7基址寻址 355

15.3.8基址变址寻址 356

15.3.9相对寻址 356

15.4操作 356

15.4.1存贮器访问指令 356

15.4.2特殊的存贮器访问指令 358

15.4.3寄存器访问指令 358

15.4.4程序控制指令 359

15.5程序实例 361

15.4.5串操作指令 361

15.6输入/输出、中断和陷阱 372

15.6.1输入/输出 372

15.6.2中断 375

15.6.3陷阱 379

参考文献 379

习题 380

第十六章 TEXASINSTRUMENTS9900- 381

16.1基本组成 381

16.1.1计算机结构 381

16.1.2处理器编程模型 381

16.1.3指令格式 383

16.2汇编语言 383

16.3寻址方式 383

16.3.3绝对寻址 384

16.3.1寄存器直接寻址 384

16.3.2立即寻址 384

16.3.4寄存器间接寻址 385

16.3.5自动增量寻址 385

16.3.6基址或变址寻址 385

16.4操作 385

16.4.1存贮器到存贮器指令 385

16.4.2存贮器到寄存器指令 386

16.4.3单操作数指令 387

16.4.4程序控制指令 388

16.5程序实例 390

16.6输入/输出、中断和陷阱 399

16.6.1输入/输出 399

16.6.2中断 400

参考文献 403

16.6.3陷阱 403

习题 404

第十七章 MOTOROLA6809 405

17.1基本组成 405

17.1.1计算机结构 405

17.1.2处理器编程模型 405

17.1.3指令格式 406

17.2汇编语言 406

17.3寻址方式 408

17.3.1立即寻址 408

17.3.2绝对寻址 409

17.3.3直接页面寻址 410

17.3.4“变址”寻址方式 412

17.3.5寄存器间接寻址 412

17.3.6基址和变址寻址 412

17.3.9相对寻址 413

17.3.7基址变址寻址 413

17.3.8自动增量和自动减量寻址 413

17.3.10间接寻址 414

17.4操作 415

17.4.1存贮器访问指令 415

17.4.2程序控制指令 416

17.4.3杂类指令 417

17.5程序实例 418

17.6输入/输出、中断和陷阱 420

17.6.1输入/输出 420

17.6.2中断 420

17.6.3陷阱 421

参考文献 421

习题 421

18.1.1计算机结构 423

第十八章 INTEL8086 423

18.1基本组成 423

18.1.2处理器编程模型 424

18.1.3指令格式 426

18.2汇编语言 427

18.3寻址方式 429

18.3.1寻址方式后继字节 430

18.3.2寄存器寻址 432

18.3.3立即寻址 432

18.3.4绝对寻址 432

18.3.5寄存器间接寻址 432

18.3.6基址寻址 432

18.3.10存贮器地址变换 433

18.3.9相对寻址 433

18.3.8基址变址寻址 433

18.3.7变址寻址 433

18.4操作 436

18.4.1数据传送指令 436

18.4.2算术运算指令 438

18.4.3逻辑和移位指令 439

18.4.4程序控制指令 440

18.4.5串操作指令 441

18.5程序实例 442

18.6输入/输出、中断和陷阱 457

18.6.1输入/输出 457

18.6.2中断 458

18.6.3陷阱 462

习题 463

参考文献 463

第十九章 INTELMCS48系列 465

19.1基本组成 465

19.1.1计算机结构 465

19.1.2处理器编程模型 466

19.1.3指令格式 467

19.2汇编语言 467

19.3寻址方式 468

19.3.1程序存贮器 468

19.3.2数据存贮器 469

19.4操作 470

19.4.1累加器和数据存贮器指令 470

19.4.2程序控制和杂类指令 470

19.5程序实例 472

19.6.1输入/输出 477

19.6输入/输出和中断 477

19.6.2中断 478

参考文献 479

习题 479

附录A ASCII字符码 481

A.1ASCII编码 481

A.2ASCII和终端 481

附录B 扩展PASCAL 483

B.1无符号整数 483

B.2位类型 483

B.3位数组和子数组 483

B.4简单位数组的赋值 484

B.6链接 485

B.7位数组的标准函数 485

B.5位数组表达式和一般的赋值 485

B.8中缀运算符 486

B.9位数组常数 486

B.10位数组表达式 487

B.11类型的自动转换 487

B.12举例 487

附录C 串行通信 488

C.1串行数据链路 488

C.2异步串行通信格式 490

C.3串行I/O接口电路 492

C.3.1Motorola6850ACIA 492

C.3.2控制端口 492

C.3.3发送器数据端口 494

C.3.4接收器数据端口 494

C.3.5状态端口 494

C.3.6调制解调器控制线 495