图书介绍

计算机系统概论 第2版 英文PDF|Epub|txt|kindle电子书版本网盘下载

计算机系统概论 第2版 英文
  • (美) 帕特(Patt,Y.N.)等著 著
  • 出版社: 机械工业出版社
  • ISBN:7111197666
  • 出版时间:2006
  • 标注页数:632页
  • 文件大小:117MB
  • 文件页数:40371828页
  • 主题词:计算机系统-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

计算机系统概论 第2版 英文PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

1 Welcome Aboard1

1.1 What We Will Try to Do1

1.2 How We Will Get There2

1.3 Two Recurring Themes3

1.3.1 The Notion of Abstraction3

1.3.2 Hardware versus Software5

1.4 A Computer System7

1.5 Two Very Important Ideas9

1.6 Computers as Universal Computational Devices9

1.7 How Do We Get the Electrons to Do the Work?12

1.7.1 The Statement of the Problem13

1.7.2 The Algorithm13

1.7.3 The Program14

1.7.4 The ISA14

1.7.5 The Microarchitecture15

1.7.6 The Logic Circuit16

1.7.7 The Devices16

1.7.8 Putting It Together16

Exercises17

2 Bits,Data Types,and Operations21

2.1 Bits and Data Types21

2.1.1 The Bit as the Unit of Information21

2.1.2 Data Types22

2.2 Integer Data Types23

2.2.1 Unsigned Integers23

2.2.2 Signed Integers23

2.3 2’s Complement Integers25

2.4 Binary-Decimal Conversion27

2.4.1 Binary to Decimal Conversion27

2.4.2 Decimal to Binary Conversion28

2.5 Operations on Bits—Part I:Arithmetic29

2.5.1 Addition and Subtraction29

2.5.2 Sign-Extension30

2.5.3 Overflow31

2.6 Operations on Bits—Part II:Logical Operations33

2.6.1 The AND Function33

2.6.2 The OR Function34

2.6.3 The NOT Function35

2.6.4 The Exclusive-OR Function35

2.7 Other Representations36

2.7.1 The Bit Vector36

2.7.2 Floating Point Data Type37

2.7.3 ASCII Codes40

2.7.4 Hexadecimal Notation41

Exercises43

3 Digital Logic Structures51

3.1 The Transistor51

3.2 Logic Gates53

3.2.1 The NOT Gate(Inverter)53

3.2.2 OR and NOR Gates54

3.2.3 AND and NAND Gates56

3.2.4 DeMorgan’s Law58

3.2.5 Larger Gates58

3.3 Combinational Logic Circuits59

3.3.1 Decoder59

3.3.2 Mux60

3.3.3 Full Adder61

3.3.4 The Programmable Logic Array (PLA)63

3.3.5 Logical Completeness64

3.4 Basic Storage Elements64

3.4.1 The R-S Latch64

3.4.2 The Gated D Latch66

3.4.3 A Register66

3.5 The Concept of Memory67

3.5.1 Address Space68

3.5.2 Addressability68

3.5.3 A 22-by-3-Bit Memory68

3.6 Sequential Logic Circuits70

3.6.1 A Simple Example:The Combination Lock71

3.6.2 The Concept of State72

3.6.3 Finite State Machines74

3.6.4 An Example:The Complete Implementation of a Finite State Machine77

3.7 The Data Path of the LC-380

Exercises82

4 The von Neumann Model97

4.1 Basic Components97

4.1.1 Memory98

4.1.2 Processing Unit99

4.1.3 Input and Output100

4.1.4 Control Unit100

4.2 The LC-3:An Example von Neumann Machine101

4.3 Instruction Processing103

4.3.1 The Instruction103

4.3.2 The Instruction Cycle104

4.4 Changing the Sequence of Execution107

4.4.1 Control of the Instruction Cycle108

4.5 Stopping the Computer110

Exercises111

5 The LC-3115

5.1 The ISA:Overview115

5.1.1 Memory Organization116

5.1.2 Registers116

5.1.3 The Instruction Set117

5.1.4 Opcodes117

5.1.5 Data Types118

5.1.6 Addressing Modes118

5.1.7 Condition Codes120

5.2 Operate Instructions120

5.3 Data Movement Instructions123

5.3.1 PC-Relative Mode124

5.3.2 Indirect Mode125

5.3.3 Base+offset Mode127

5.3.4 Immediate Mode128

5.3.5 An Example129

5.4 Control Instructions130

5.4.1 Conditional Branches131

5.4.2 An Example132

5.4.3 Two Methods for Loop Control135

5.4.4 Example:Adding a Column of Numbers Using a Sentinel135

5.4.5 The J M P Instruction136

5.4.6 The TRAP Instruction137

5.5 Another Example:Counting Occurrences of a Character138

5.6 The Data Path Revisited141

5.6.1 Basic Components of the Data Path141

5.6.2 The Instruction Cycle144

Exercises145

6 Programming155

6.1 Problem Solving155

6.1.1 Systematic Decomposition155

6.1.2 The Three Constructs:Sequential,Conditional,Iterative156

6.1.3 LC-3 Control Instructions to Implement the Three Constructs157

6.1.4 The Character Count Example from Chapter 5,Revisited158

6.2 Debugging162

6.2.1 Debugging Operations163

6.2.2 Examples:Use of the Interactive Debugger164

Exercises172

7 Assembly Language177

7.1 Assembly Language Programming—Moving Up a Level177

7.2 An Assembly Language Program178

7.2.1 Instructions179

7.2.2 Pseudo-ops(Assembler Directives)182

7.2.3 Example:The Character Count Example of Section 5.5,Revisited183

7.3 The Assembly Process185

7.3.1 Introduction185

7.3.2 A Two-Pass Process185

7.3.3 The First Pass:Creating the Symbol Table186

7.3.4 The Second Pass:Generating the Machine Language Program187

7.4 Beyond the Assembly of a Single Assembly Language Program188

7.4.1 The Executable Image189

7.4.2 More than One Object File189

Exercises190

8 I/O199

8.1 I/O Basics199

8.1.1 Device Registers199

8.1.2 Memory-Mapped I/O versus Special Input/Output Instructions200

8.1.3 Asynchronous versus Synchronous200

8.1.4 Interrupt-Driven versus Polling202

8.2 Input from the Keyboard202

8.2.1 Basic Input Registers(the KBDR and the KBSR)202

8.2.2 The Basic Input Service Routine202

8.2.3 Implementation of Memory-Mapped Input203

8.3 Output to the Monitor204

8.3.1 Basic Output Registers(the DDR and the DSR)204

8.3.2 The Basic Output Service Routine205

8.3.3 Implementation of Memory-Mapped Output206

8.3.4 Example:Keyboard Echo207

8.4 A More Sophisticated Input Routine207

8.5 Interrupt-Driven I/O209

8.5.1 What Is Interrupt-Driven I/O?209

8.5.2 Why Have Interrupt-Driven I/O?210

8.5.3 Generation of the Interrupt Signal211

8.6 Implementation of Memory-Mapped I/O,Revisited214

Exercises215

9 TRAP Routines and Subroutines219

9.1 LC-3 TRAP Routines219

9.1.1 Introduction219

9.1.2 The TRAP Mechanism220

9.1.3 The TRAP Instruction221

9.1.4 The Complete Mechanism222

9.1.5 TRAP Routines for Handling I/O225

9.1.6 TRAP Routine for Halting the Computer225

9.1.7 Saving and Restoring Registers229

9.2 Subroutines230

9.2.1 The Call/Return Mechanism230

9.2.2 The JSR(R)Instruction232

9.2.3 The TRAP Routine for Character Input,Revisited233

9.2.4 PUTS:Writing a Character String to the Monitor235

9.2.5 Library Routines235

Exercises240

10 And,Finally&The Stack251

10.1 The Stack:Its Basic Structure251

10.1.1 The Stack—An Abstract Data Type251

10.1.2 Two Example Implementations252

10.1.3 Implementation in Memory253

10.1.4 The Complete Picture257

10.2 Interrupt-Driven I/O(Part 2)258

10.2.1 Initiate and Service the Interrupt259

10.2.2 Return from the Interrupt261

10.2.3 An Example262

10.3 Arithmetic Using a Stack264

10.3.1 The Stack as Temporary Storage264

10.3.2 An Example265

10.3.3 OpAdd,OpMult,and OpNeg265

10.4 Data Type Conversion272

10.4.1 Example:The Bogus Program:2+3=e272

10.4.2 ASCII to Binary273

10.4.3 Binary to ASCII276

10.5 Our Final Example:The Calculator278

Exercises283

11 Introduction to Programmingi n C289

11.1 Our Objective289

11.2 Bridging the Gap290

11.3 Translating High-Level Language Programs292

11.3.1 Interpretation292

11.3.2 Compilation293

11.3.3 Pros and Cons293

11.4 The C Programming Language293

11.4.1 The C Compiler295

11.5 A Simple Example297

11.5.1 The Function main297

11.5.2 Formatting,Comments,and Style299

11.5.3 The C Preprocessor300

11.5.4 Input and Output301

11.6 Summary304

Exercises305

12 Variables and Operators307

12.1 Introduction307

12.2 Variables308

12.2.1 Three Basic Data Types:int,char,double308

12.2.2 Choosing Identifiers310

12.2.3 Scope:Local versus Global311

12.2.4 More Examples313

12.3 Operators314

12.3.1 Expressions and Statements315

12.3.2 The Assignment Operator316

12.3.3 Arithmetic Operators317

12.3.4 Order of Evaluation318

12.3.5 Bitwise Operators319

12.3.6 Relational Operators320

12.3.7 Logical Operators322

12.3.8 Increment /Decrement Operators322

12.3.9 Expressions with Multiple Operators324

12.4 Problem Solving Using Operators324

12.5 Tying it All Together326

12.5.1 Symbol Table326

12.5.2 Allocating Space for Variables328

12.5.3 A Comprehensive Example331

12.6 Additional Topics332

12.6.1 Variations of the Three Basic Types332

12.6.2 Literals,Constants,and Symbolic Values334

12.6.3 Storage Class335

12.6.4 Additional C Operators336

12.7 Summary337

Exercises338

13 Control Structures343

13.1 Introduction343

13.2 Conditional Constructs344

13.2.1 The if Statement344

13.2.2 The if-else Statement347

13.3 Iteration Constructs350

13.3.1 The while Statement350

13.3.2 The for Statement353

13.3.3 The do-while Statement358

13.4 Problem Solving Using Control Structures359

13.4.1 Problem 1:Approximating the Value of π360

13.4.2 Problem 2:Finding Prime Numbers Less than 100362

13.4.3 Problem 3:Analyzing an E-mail Address366

13.5 Additional C Control Structures368

13.5.1 The switch Statement368

13.5.2 The break and continue Statements370

13.5.3 An Example:Simple Calculator370

13.6 Summary372

Exercises372

14 Functions379

14.1 Introduction379

14.2 Functions in C380

14.2.1 A Function with a Parameter380

14.2.2 Example:Area of a Ring384

14.3 Implementing Functions in C385

14.3.1 Run-Time Stack385

14.3.2 Getting It All to Work388

14.3.3 Tying It All Together393

14.4 Problem Solving Using Functions394

14.4.1 Problem 1:Case Conversion395

14.4.2 Problem 2:Pythagorean Triples397

14.5 Summary398

Exercises399

15 Testing and Debugging407

15.1 Introduction407

15.2 Types of Errors408

15.2.1 Syntactic Errors409

15.2.2 Semantic Errors409

15.2.3 Algorithmic Errors411

15.3 Testing412

15.3.1 Black-Box Testing412

15.3.2 White-Box Testing413

15.4 Debugging414

15.4.1 Ad Hoc Techniques414

15.4.2 Source-Level Debuggers415

15.5 Programming for Correctness417

15.5.1 Nailing Down the Specification417

15.5.2 Modular Design418

15.5.3 Defensive Programming418

15.6 Summary419

Exercises421

16 Pointers and Arrays427

16.1 Introduction427

16.2 Pointers428

16.2.1 Declaring Pointer Variables429

16.2.2 Pointer Operators430

16.2.3 Passing a Reference Using Pointers432

16.2.4 Null Pointers433

16.2.5 Demystifying the Syntax434

16.2.6 An Example Problem Involving Pointers434

16.3 Arrays436

16.3.1 Declaring and Using Arrays436

16.3.2 Examples Using Arrays438

16.3.3 Arrays as Parameters440

16.3.4 Strings in C441

16.3.5 The Relationship Between Arrays and Pointers in C446

16.3.6 Problem Solving:Insertion Sort446

16.3.7 Common Pitfalls with Arrays in C449

16.4 Summary451

Exercises451

17 Recursion457

17.1 Introduction457

17.2 What Is Recursion?458

17.3 Recursion versus Iteration459

17.4 Towers of Hanoi460

17.5 Fibonacci Numbers464

17.6 Binary Search468

17.7 Integer to ASCII471

17.8 Summary473

Exercises473

18 I/O in C481

18.1 Introduction481

18.2 The C Standard Library481

18.3 I/O,One Character at a Time482

18.3.1 I/O Streams482

18.3.2 putchar483

18.3.3 getchar483

18.3.4 Buffered I/O483

18.4 Formatted I/O485

18.4.1 printf485

18.4.2 scanf487

18.4.3 Variable Argument Lists489

18.5 I/O from Files491

18.6 Summary493

Exercises494

19 Data Structures497

19.1 Introduction497

19.2 Structures498

19.2.1 typedef500

19.2.2 Implementing Structures in C501

19.3 Arrays of Structures502

19.4 Dynamic Memory Allocation504

19.4.1 Dynamically Sized Arrays506

19.5 Linked Lists508

19.5.1 An Example510

19.6 Summary516

Exercises517

A The LC-3 ISA521

A.1 Overview521

A.2 Notation523

A.3 The Instruction Set523

A.4 Interrupt and Exception Processing543

A.4.1 Interrupts543

A.4.2 Exceptions544

B From LC-3 to x86547

B.1 LC-3 Features and Corresponding x86 Features548

B.1.1 Instruction Set548

B.1.2 Memory553

B.1.3 Internal State553

B.2 The Format and Specification of x86 Instructions557

B.2.1 Prefix558

B.2.2 Opcode559

B.2.3 ModR/M Byte559

B.2.4 SIB Byte560

B.2.5 Displacement560

B.2.6 Immediate560

B.3 An Example562

C The Microarchitecture of the LC-3565

C.1 Overview565

C.2 The State Machine567

C.3 The Data Path569

C.4 The Control Structure569

C.5 Memory-Mapped I/O575

C.6 Interrupt and Exception Control576

C.6.1 Initiating an Interrupt579

C.6.2 Returning from an Interrupt,RTI581

C.6.3 The Illegal Opcode Exception582

C.7 Control Store583

D The C Programming Language585

D.1 Overview585

D.2 C Conventions585

D.2.1 Source Files585

D.2.2 Header Files585

D.2.3 Comments586

D.2.4 Literals586

D.2.5 Formatting588

D.2.6 Keywords588

D.3 Types589

D.3.1 Basic Data Types589

D.3.2 Type Qualifiers590

D.3.3 Storage Class591

D.3.4 Derived Types592

D.3.5 typedef594

D.4 Declarations595

D.4.1 Variable Declarations595

D.4.2 Function Declarations596

D.5 Operators596

D.5.1 Assignment Operators597

D.5.2 Arithmetic Operators597

D.5.3 Bit-wise Operators598

D.5.4 Logical Operators598

D.5.5 Relational Operators599

D.5.6 Increment/Decrement Operators599

D.5.7 Conditional Expression600

D.5.8 Pointer,Array,and Structure Operators600

D.5.9 sizeof601

D.5.10 Order of Evaluation602

D.5.11 Type Conversions602

D.6 Expressions and Statements603

D.6.1 Expressions603

D.6.2 Statements604

D.7 Control604

D.7.1 If604

D.7.2 If-else605

D.7.3 Switch605

D.7.4 While606

D.7.5 For607

D.7.6 Do-while607

D.7.7 Break608

D.7.8 continue608

D.7.9 return609

D.8 The C Preprocessor609

D.8.1 Macro substitution609

D.8.2 File inclusion610

D.9 Some Standard Library Functions610

D.9.1 I/O Functions611

D.9.2 String Functions612

D.9.3 Math Functions613

D.9.4 Utility Functions613

E Useful Tables615

E.1 Commonly Used Numerical Prefixes615

E.2 Standard ASCII codes616

E.3 Powers of 2617

F Solutions to Selected Exercises619

热门推荐