图书介绍
计算机系统概论 第2版 英文PDF|Epub|txt|kindle电子书版本网盘下载
- (美) 帕特(Patt,Y.N.)等著 著
- 出版社: 机械工业出版社
- ISBN:7111197666
- 出版时间:2006
- 标注页数:632页
- 文件大小:117MB
- 文件页数:40371828页
- 主题词:计算机系统-英文
PDF下载
下载说明
计算机系统概论 第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