Assembly language for intel-based computers:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston
Pearson
[2015]
|
Ausgabe: | seventh edition, global edition |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis Inhaltsverzeichnis |
Beschreibung: | 712 Seiten |
ISBN: | 9781292061214 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV044538081 | ||
003 | DE-604 | ||
005 | 20171108 | ||
007 | t | ||
008 | 171016s2015 xxu |||| 00||| eng d | ||
020 | |a 9781292061214 |9 978-1-292-06121-4 | ||
035 | |a (OCoLC)1011369979 | ||
035 | |a (DE-599)GBV833302906 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
044 | |a xxu |c US | ||
049 | |a DE-473 | ||
084 | |a ST 170 |0 (DE-625)143602: |2 rvk | ||
100 | 1 | |a Irvine, Kip R. |e Verfasser |0 (DE-588)154938998 |4 aut | |
245 | 1 | 0 | |a Assembly language for intel-based computers |c Kip R. Irvine ; global edition contributions by Lyla B. Das |
250 | |a seventh edition, global edition | ||
264 | 1 | |a Boston |b Pearson |c [2015] | |
264 | 4 | |c © 2015 | |
300 | |a 712 Seiten | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a IBM Personal Computer |x Programming | |
650 | 4 | |a Assembler language (Computer program language) | |
650 | 0 | 7 | |a IBM PC |0 (DE-588)4026436-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Assembler |0 (DE-588)4003255-3 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a IBM PC |0 (DE-588)4026436-1 |D s |
689 | 0 | 1 | |a Assembler |0 (DE-588)4003255-3 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | |m DE-601 |q pdf/application |u http://www.gbv.de/dms/tib-ub-hannover/833302906.pdf |3 Inhaltsverzeichnis | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg - ADAM Catalogue Enrichment |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029937216&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-029937216 |
Datensatz im Suchindex
_version_ | 1804177894571769856 |
---|---|
adam_text | Contents
Preface 23
1 Basic Concepts 33
1.1 Welcome to Assembly Language 33
1.1.1 Questions You Might Ask 35
1.1.2 Assembly Language Applications 38
1.1.3 Section Review 38
1.2 Virtual Machine Concept 39
1.2.1 Section Review 41
1.3 Data Representation 41
1.3.1 Binary Integers 42
1.3.2 Binary Addition 44
1.3.3 Integer Storage Sizes 45
1.3.4 Hexadecimal Integers 45
1.3.5 Hexadecimal Addition 47
1.3.6 Signed Binary Integers 48
1.3.7 Binary Subtraction 50
1.3.8 Character Storage 51
1.3.9 Section Review 53
1.4 Boolean Expressions 54
1.4.1 Truth Tables for Boolean Functions 56
1.4.2 Section Review 58
1.5 Chapter Summary 58
1.6 Key Terms 59
1.7 Review Questions and Exercises 60
1.7.1 Short Answer 60
1.7.2 Algorithm Workbench 62
2 x86 Processor Architecture 64
2.1 General Concepts 65
2.1.1 Basic Microcomputer Design 65
2.1.2 Instruction Execution Cycle 66
5
6
2.1.3 Reading from Memory 68
2.1.4 Loading and Executing a Program 68
2.1.5 Section Review 69
2.2 32-Bit x86 Processors 69
2.2.1 Modes of Operation 69
2.2.2 Basic Execution Environment 70
2.2.3 x86 Memory Management 73
2.2.4 Section Review 74
2.3 64-Bit X86-64 Processors 74
2.3.1 64-Bit Operation Modes 75
2.3.2 Basic 64-Bit Execution Environment 75
2.4 Components of a Typical x86 Computer 76
2.4.1 Motherboard 76
2.4.2 Memory 78
2.4.3 Section Review 78
2.5 Input-Output System 79
2.5.1 Levels of I/O Access 79
2.5.2 Section Review 81
2.6 Chapter Summary 82
2.7 Key Terms 83
2.8 Review Questions 84
3 Assembly Language Fundamentals 85
3.1 Basic Language Elements 86
3.1.1 First Assembly Language Program 86
3.1.2 Integer Literals 87
3.1.3 Constant Integer Expressions 88
3.1.4 Real Number Literals 89
3.1.5 Character Literals 89
3.1.6 String Literals 90
3.1.7 Reserved Words 90
3.1.8 Identifiers 90
3.1.9 Directives 91
3.1.10 Instructions 92
3.1.11 Section Review 95
3.2 Example: Adding and Subtracting Integers 95
3.2.1 The AddTwo Program 95
3.2.2 Running and Debugging the AddTwo Program 97
3.2.3 Program Template 102
3.2.4 Section Review 102
Contents
--------·
Contents 7
•------------------------------------------------------------------------------------------------------·
3.3 Assembling, Linking, and Running Programs 103
3.3.1 The Assemble-Link-Execute Cycle 103
3.3.2 Listing File 103
3.3.3 Section Review 105
3.4 Defining Data 106
3.4.1 Intrinsic Data Types 106
3.4.2 Data Definition Statement 106
3.4.3 Adding a Variable to the AddTwo Program 107
3.4.4 Defining BYTE and SBYTE Data 108
3.4.5 Defining WORD and SWORD Data 110
3.4.6 Defining DWORD and SDWORD Data 111
3.4.7 Defining QWORD Data 111
3.4.8 Defining Packed BCD (TBYTE) Data 112
3.4.9 Defining Floating-Point Types 113
3.4.10 A Program That Adds Variables 113
3.4.11 Little-Endian Order 114
3.4.12 Declaring Uninitialized Data 115
3.4.13 Section Review 115
3.5 Symbolic Constants 116
3.5.1 Equal-Sign Directive 116
3.5.2 Calculating the Sizes of Arrays and Strings 117
3.5.3 EQU Directive 118
3.5.4 TEXTEQU Directive 119
3.5.5 Section Review 120
3.6 64-Bit Programming 120
3.7 Chapter Summary 122
3.8 Key Terms 123
3.8.1 Terms 123
3.8.2 Instructions, Operators, and Directives 124
3.9 Review Questions and Exercises 124
3.9.1 Short Answer 124
3.9.2 Algorithm Workbench 125
3.10 Programming Exercises 126
4 Data Transfers, Addressing, and
Arithmetic 127
4.1 Data Transfer Instructions 128
4.1.1 Introduction 128
4.1.2 Operand Types 128
4.1.3 Direct Memory Operands 128
5 Contents
4.1.4 MOV Instruction 130
4.1.5 Zero/Sign Extension of Integers 131
4.1.6 LAHF and SAHF Instructions 133
4.1.7 XCHG Instruction 134
4.1.8 Direct-Offset Operands 134
4.1.9 Example Program (Moves) 135
4.1.10 Section Review 136
4.2 Addition and Subtraction 137
4.2.1 INC and DEC Instructions 137
4.2.2 ADD Instruction 137
4.2.3 SUB Instruction 138
4.2.4 NEG Instruction 138
4.2.5 Implementing Arithmetic Expressions 138
4.2.6 Flags Affected by Addition and Subtraction 139
4.2.7 Example Program (AddSubTest) 143
4.2.8 Section Review 144
4.3 Data-Related Operators and Directives 144
4.3.1 OFFSET Operator 144
4.3.2 ALIGN Directive 145
4.3.3 PTR Operator 146
4.3.4 TYPE Operator 147
4.3.5 LENGTHOF Operator 148
4.3.6 SIZEOF Operator 148
4.3.7 LABEL Directive 148
4.3.8 Section Review 149
4.4 Indirect Addressing 149
4.4.1 Indirect Operands 149
4.4.2 Arrays 150
4.4.3 Indexed Operands 151
4.4.4 Pointers 153
4.4.5 Section Review 154
4.5 JMP and LOOP Instructions 155
4.5.1 JMP Instruction 155
4.5.2 LOOP Instruction 156
4.5.3 Displaying an Array in the Visual Studio Debugger 157
4.5.4 Summing an Integer Array 158
4.5.5 Copying a String 159
4.5.6 Section Review 160
4.6 64-Bit Programming 160
4.6.1 MOV Instruction 160
4.6.2 64-Bit Version of SumArray 162
4.6.3 Addition and Subtraction 162
4.6.4 Section Review 163
Contents
9
4.7 Chapter Summary 164
4.8 Key Terms 165
4.8.1 Terms 165
4.8.2 Instructions, Operators, and Directives 165
4.9 Review Questions and Exercises 166
4.9.1 Short Answer 166
4.9.2 Algorithm Workbench 168
4.10 Programming Exercises 169
5 Procedures 171
5.1 Stack Operations 172
5.1.1 Runtime Stack (32-Bit Mode) 172
5.1.2 PUSH and POP Instructions 174
5.1.3 Section Review 177
5.2 Defining and Using Procedures 177
5.2.1 PROC Directive 177
5.2.2 CALL and RET Instructions 179
5.2.3 Nested Procedure Calls 180
5.2.4 Passing Register Arguments to Procedures 182
5.2.5 Example: Summing an Integer Array 182
5.2.6 Saving and Restoring Registers 184
5.2.7 Section Review 185
5.3 Linking to an External Library 185
5.3.1 Background Information 186
5.3.2 Section Review 187
5.4 The Irvine32 Library 187
5.4.1 Motivation for Creating the Library 187
5.4.2 Overview 189
5.4.3 Individual Procedure Descriptions 190
5.4.4 Library Test Programs 202
5.4.5 Section Review 210
5.5 64-Bit Assembly Programming 210
5.5.1 The Irvine64 Library 210
5.5.2 Calling 64-Bit Subroutines 211
5.5.3 The x64 Calling Convention 211
5.5.4 S ample Program that Calls a Procedure 212
5.6 Chapter Summary 214
5.7 Key Terms 215
5.7.1 Terms 215
5.7.2 Instructions, Operators, and Directives 215
Contents
5.8 Review Questions and Exercises 215
5.8.1 ShortAnswer 215
5.8.2 Algorithm Workbench 218
5.9 Programming Exercises 218
6 Conditional Processing 221
6.1 Conditional Branching 222
6.2 Boolean and Comparison Instructions 222
6.2.1 The CPU Status Flags 223
6.2.2 AND Instruction 223
6.2.3 OR Instruction 224
6.2.4 Bit-Mapped Sets 226
6.2.5 XOR Instruction 227
6.2.6 NOT Instruction 228
6.2.7 TEST Instruction 228
6.2.8 CMP Instruction 229
6.2.9 Setting and Clearing Individual CPU Flags 230
6.2.10 Boolean Instructions in 64-Bit Mode 231
6.2.11 Section Review 231
6.3 Conditional Jumps 231
6.3.1 Conditional Structures 231
6.3.2 Jcond Instruction 232
6.3.3 Types of Conditional Jump Instructions 233
6.3.4 Conditional Jump Applications 236
6.3.5 Section Review 240
6.4 Conditional Loop Instructions 241
6.4.1 LOOPZ and LOOPE Instructions 241
6.4.2 LOOPNZ and LOOPNE Instructions 241
6.4.3 Section Review 242
6.5 Conditional Structures 242
6.5.1 Block-Structured IF Statements 242
6.5.2 Compound Expressions 245
6.5.3 WHILE Loops 246
6.5.4 Table-Driven Selection 248
6.5.5 Section Review 251
6.6 Application: Finite-State Machines 251
6.6.1 Validating an Input String 251
6.6.2 Validating a Signed Integer 252
6.6.3 Section Review 256
6.7 Conditional Control Flow Directives 257
6.7.1 Creating IF Statements 258
6.7.2 Signed and Unsigned Comparisons 259
6.7.3 Compound Expressions 260
6.7.4 Creating Loops with .REPEAT and .WHILE 263
10
•--
Contents 11
·֊֊----—---------—----------------—------------------------------------------------------·
6.8 Chapter Summary 264
6.9 Key Terms 265
6.9 Л Terms 265
6.9.2 Instructions, Operators, and Directives 266
6.10 Review Questions and Exercises 266
6.10.1 Short Answer 266
6.10.2 Algorithm Workbench 268
6.11 Programming Exercises 269
6.11.1 Suggestions for Testing Your Code 269
6.11.2 Exercise Descriptions 270
7 Integer Arithmetic 274
7.1 Shift and Rotate Instructions 275
7.1.1 Logical Shifts and Arithmetic Shifts 275
7.1.2 SHL Instruction 276
7.1.3 SHR Instruction 277
7.1.4 SAL and SAR Instructions 278
7.1.5 ROL Instruction 279
7.1.6 ROR Instruction 279
7.1.7 RCL and RCR Instructions 280
7.1.8 Signed Overflow 281
7.1.9 SHLD/SHRD Instructions 281
7.1.10 Section Review 283
7.2 Shift and Rotate Applications 283
7.2.1 Shifting Multiple Doublewords 284
7.2.2 Binary Multiplication 285
7.2.3 Displaying Binary Bits 286
7.2.4 Extracting File Date Fields 286
7.2.5 Section Review 287
7.3 Multiplication and Division Instructions 287
7.3.1 MUL Instruction 287
7.3.2 IMUL Instruction 289
7.3.3 Measuring Program Execution Times 292
7.3.4 DIV Instruction 294
7.3.5 Signed Integer Division 296
7.3.6 Implementing Arithmetic Expressions 299
7.3.7 Section Review 301
7.4 Extended Addition and Subtraction 301
7.4.1 ADC Instruction 301
7.4.2 Extended Addition Example 302
7.4.3 SBB Instruction 304
7.4.4 Section Review 304
Contents
7.5 ASCII and Unpacked Decimal Arithmetic 305
7.5.1 AAA Instruction 306
7.5.2 A AS Instruction 308
7.5.3 AAM Instruction 308
7.5.4 AAD Instruction 308
7.5.5 Section Review 309
7.6 Packed Decimal Arithmetic 309
7.6.1 DA A Instruction 309
7.6.2 DAS Instruction 311
7.6.3 Section Review 311
7.7 Chapter Summary 311
7.8 Key Terms 312
7.8.1 Terms 312
7.8.2 Instructions, Operators, and Directives 312
7.9 Review Questions and Exercises 313
7.9.1 Short Answer 313
7.9.2 Algorithm Workbench 314
7.10 Programming Exercises 315
8 Advanced Procedures 318
8.1 Introduction 319
8.2 Stack Frames 319
8.2.1 Stack Parameters 319
8.2.2 Disadvantages of Register Parameters 320
8.2.3 Accessing Stack Parameters 322
8.2.4 32-Bit Calling Conventions 325
8.2.5 Local Variables 327
8.2.6 Reference Parameters 3 29
8.2.7 LEA Instruction 330
8.2.8 ENTER and LEAVE Instructions 330
8.2.9 LOCAL Directive 332
8.2.10 The Microsoft x64 Calling Convention 333
8.2.11 Section Review 334
8.3 Recursion 334
8.3.1 Recursively Calculating a Sum 335
8.3.2 Calculating a Factorial 336
8.3.3 Section Review 343
8.4 INVOKE, ADDR, PROC, and PROTO 343
8.4.1 INVOKE Directive 343
8.4.2 ADDR Operator 344
8.4.3 PROC Directive 345
8.4.4 PROTO Directive 348
Contents 1 Ъ
•--------------------------------------------------------------------------------------------------- ·
8.4.5 Parameter Classifications 351
8.4.6 Example: Exchanging Two Integers 352
8.4.7 Debugging Tips 353
8.4.8 WriteStackFrame Procedure 354
8.4.9 Section Review 355
8.5 Creating Multimodule Programs 355
8.5.1 Hiding and Exporting Procedure Names 355
8.5.2 Calling External Procedures 356
8.5.3 Using Variables and Symbols across Module Boundaries 357
8.5.4 Example: ArraySum Program 358
8.5.5 Creating the Modules Using Extern 358
8.5.6 Creating the Modules Using INVOKE and PROTO 362
8.5.7 Section Review 365
8.6 Advanced Use of Parameters (Optional Topic) 365
8.6.1 Stack Affected by the USES Operator 365
8.6.2 Passing 8-Bit and 16-Bit Arguments on the Stack 367
8.6.3 Passing 64-Bit Arguments 368
8.6.4 Non-Doubleword Local Variables 369
8.7 Java Bytecodes (Optional Topic) 371
8.7.1 Java Virtual Machine 371
8.7.2 Instruction Set 372
8.7.3 Java Disassembly Examples 373
8.7.4 Example: Conditional Branch 376
8.8 Chapter Summary 378
8.9 Key Terms 379
8.9.1 Terms 379
8.9.2 Instructions, Operators, and Directives 380
8.10 Review Questions and Exercises 380
8.10.1 Short Answer 380
8.10.2 Algorithm Workbench 380
8.11 Programming Exercises 381
9 Strings and Arrays 384
9.1 Introduction 384
9.2 String Primitive Instructions 385
9.2.1 MOVSB, MOVSW, and MOVSD 386
9.2.2 CMPSB, CMPSW, and CMPSD 387
9.2.3 SCASB, SCASW, and SCASD 388
9.2.4 STOSB, STOSW, and STOSD 388
9.2.5 LODSB, LODSW, and LODSD 388
9.2.6 Section Review 389
14 Contents
•-----—-----------------------------------------------------------------------------------------------------·
9.3 Selected String Procedures 389
9.3.1 Str_compare Procedure 390
9.3.2 Strjength Procedure 391
9.3.3 Str_copy Procedure 391
9.3.4 Strjrim Procedure 392
9.3.5 Str_ucase Procedure 395
9.3.6 String Library Demo Program 396
9.3.7 String Procedures in the Irvine64 Library 397
9.3.8 Section Review 400
9.4 Two-Dimensional Arrays 400
9.4.1 Ordering of Rows and Columns 400
9.4.2 Base-Index Operands 401
9.4.3 Base-Index-Displacement Operands 403
9.4.4 Base-Index Operands in 64-Bit Mode 404
9.4.5 Section Review 405
9.5 Searching and Sorting integer Arrays 405
9.5.1 Bubble Sort 405
9.5.2 Binary Search 407
9.5.3 Section Review 414
9.6 Java Bytecodes: String Processing (Optional Topic) 414
9.7 Chapter Summary 415
9.8 Key Terms and Instructions 416
9.9 Review Questions and Exercises 416
9.9.1 Short Answer 416
9.9.2 Algorithm Workbench 417
9.10 Programming Exercises 418
10 Structures and Macros 422
10.1 Structures 422
10.1.1 Defining Structures 423
10.1.2 Declaring Structure Variables 425
10.1.3 Referencing Structure Variables 426
10.1.4 Example: Displaying the System Time 429
10.1.5 Structures Containing Structures 431
10.1.6 Example: Drunkard’s Walk 431
10.1.7 Declaring and Using Unions 435
10.1.8 Section Review 437
10.2 Macros 437
10.2.1 Overview 437
10.2.2 Defining Macros 438
10.2.3 Invoking Macros 439
Contents
15
•.................................................................................. ·
10.2.4 Additional Macro Features 440
10.2.5 Using the Book’s Macro Library (32-bit mode only) 444
10.2.6 Example Program: Wrappers 451
10.2.7 Section Review 452
10.3 Conditional-Assembly Directives 452
10.3.1 Checking for Missing Arguments 453
10.3.2 Default Argument Initializers 454
10.3.3 Boolean Expressions 455
10.3.4 IF, ELSE, and ENDIF Directives 455
10.3.5 The IFIDN and IFIDNI Directives 456
10.3.6 Example: Summing a Matrix Row 457
10.3.7 Special Operators 460
10.3.8 Macro Functions 463
10.3.9 Section Review 465
10.4 Defining Repeat Blocks 465
10.4.1 WHILE Directive 465
10.4.2 REPEAT Directive 466
10.4.3 FOR Directive 466
10.4.4 FORC Directive 467
10.4.5 Example: Linked List 468
10.4.6 Section Review 469
10.5 Chapter Summary 470
10.6 Key Terms 471
10.6.1 Terms 471
10.6.2 Operators and Directives 471
10.7 Review Questions and Exercises 472
10.7.1 Short Answer 472
10.7.2 Algorithm Workbench 472
10.8 Programming Exercises 474
11 MS-Windows Programming 477
11.1 Win32 Console Programming 477
11.1.1 Background Information 478
11.1.2 Win32 Console Functions 482
11.1.3 Displaying a Message Box 484
11.1.4 Console Input 487
11.1.5 Console Output 493
11.1.6 Reading and Writing Files 495
11.1.7 File I/O in the Irvine32 Library 500
11.1.8 Testing the File I/O Procedures 502
11.1.9 Console Window Manipulation 505
11.1.10 Controlling the Cursor 508
Contents
------·
11.1.11 Controlling the Text Color 509
11.1.12 Time and Date Functions 511
11.1.13 Using the 64-Bit Windows API 514
11.1.14 Section Review 516
11.2 Writing a Graphical Windows Application 516
11.2.1 Necessary Structures 516
11.2.2 The MessageBox Function 518
11.2.3 The WinMain Procedure 518
11.2.4 The WinProc Procedure 519
11.2.5 The ErrorHandler Procedure 520
11.2.6 Program Listing 520
11.2.7 Section Review 524
11.3 Dynamic Memory Allocation 524
11.3.1 HeapTest Programs 528
11.3.2 Section Review 531
11.4 x86 Memory Management 531
11.4.1 Linear Addresses 532
11.4.2 Page Translation 535
11.4.3 Section Review 537
11.5 Chapter Summary 537
11.6 Key Terms 539
11.7 Review Questions and Exercises 539
11.7.1 Short Answer 539
11.7.2 Algorithm Workbench 540
11.8 Programming Exercises 541
12 Floating-Point Processing and Instruction
Encoding 543
12.1 Floating-Point Binary Representation 543
12.1.1 IEEE Binary Floating-Point Representation 544
12.1.2 The Exponent 546
12.1.3 Normalized Binary Floating-Point Numbers 546
12.1A Creating the IEEE Representation 546
12.1.5 Converting Decimal Fractions to Binary Reals 548
12.1.6 Section Review 550
12.2 Floating-Point Unit 550
12.2.1 FPU Register Stack 551
12.2.2 Rounding 553
12.2.3 Floating-Point Exceptions 555
12.2.4 Floating-Point Instruction Set 555
16
•—
Contents
17
12.2.5 Arithmetic Instructions 558
12.2.6 Comparing Floating-Point Values 562
12.2.7 Reading and Writing Floating-Point Values 565
12.2.8 Exception Synchronization 566
12.2.9 Code Examples 567
12.2.10 Mixed-Mode Arithmetic 569
12.2.11 Masking and Unmasking Exceptions 570
12.2.12 Section Review 571
12.3 x86 Instruction Encoding 571
12.3.1 Instruction Format 572
12.3.2 Single-Byte Instructions 573
12.3.3 Move Immediate to Register 573
12.3.4 Register-Mode Instructions 574
12.3.5 Processor Operand-Size Prefix 575
12.3.6 Memory-Mode Instructions 576
12.3.7 Section Review 579
12.4 Chapter Summary 579
12.5 Key Terms 581
12.6 Review Questions and Exercises 581
12.6.1 Short Answer 581
12.6.2 Algorithm Workbench 582
12.7 Programming Exercises 583
13 High-Level Language Interface 587
13.1 Introduction 587
13.1.1 General Conventions 588
13.1.2 .MODEL Directive 589
13.1.3 Examining Compiler-Generated Code 591
13.1.4 Section Review 596
13.2 Inline Assembly Code 596
13.2.1 asm Directive in Visual C++ 596
13.2.2 File Encryption Example 598
13.2.3 Section Review 601
13.3 Linking 32-Bit Assembly Language Code to C/C++ 602
13.3.1 IndexOf Example 602
13.3.2 Calling C and C++ Functions 606
13.3.3 Multiplication Table Example 608
13.3.4 Calling C Library Functions 611
13.3.5 Directory Listing Program 614
13.3.6 Section Review 615
13.4 Chapter Summary 615
13.5 Key Terms 616
13.6 Review Questions 616
13.7 Programming Exercises 617
Chapters are available from the Companion Web site
14 16-Bit MS-DOS Programming 14.1
14.1 MS-DOS and the IBM-PC 14.1
14.1.1 Memory Organization 14.2
14.1.2 Redirecting Input-Output 14.3
14.1.3 Software Interrupts 14.4
14.1.4 INT Instruction 14.5
14.1.5 Coding for 16-Bit Programs 14.6
14.1.6 Section Review 14.7
14.2 MS-DOS Function Calls (INT 21 h) 14.7
14.2.1 Selected Output Functions 14.9
14.2.2 Hello World Program Example 14.11
14.2.3 Selected Input Functions 14.12
14.2.4 Date/Time Functions 14.16
14.2.5 Section Review 14.20
14.3 Standard MS-DOS File I/O Services 14.20
14.3.1 Create or Open File (716Ch) 14.22
14.3.2 Close File Handle (3Eh) 14.23
14.3.3 Move File Pointer (42h) 14.23
14.3.4 Get File Creation Date and Time 14.24
14.3.5 Selected Library Procedures 14.24
14.3.6 Example: Read and Copy a Text File 14.25
14.3.7 Reading the MS-DOS Command Tail 14.27
14.3.8 Example: Creating a Binary File 14.30
14.3.9 Section Review 14.33
14.4 Chapter Summary 14.33
14.5 Programming Exercises 14.35
15 Disk Fundamentals 15.1
15.1 Disk Storage Systems 15.1
15.1.1 Tracks, Cylinders, and Sectors 15.2
15.1.2 Disk Partitions (Volumes) 15.4
15.1.3 Section Review 15.4
Contents
--------·
Contents
•--------------------------—------------------------------------------------------·
15.2 File Systems 15.5
15.2.1 FAT 12 15.6
15.2.2 FAT 16 15.6
15.2.3 FAT32 15.6
15.2.4 NTFS 15.7
15.2.5 Primary Disk Areas 15.7
15.2.6 Section Review 15.8
15.3 Disk Directory 15.9
15.3.1 MS-DOS Directory Structure 15.10
15.3.2 Long Filenames in MS-Windows 15.12
15.3.3 File Allocation Table (FAT) 15.14
15.3.4 Section Review 15.14
15.4 Reading and Writing Disk Sectors 15.15
15.4.1 Sector Display Program 15.16
15.4.2 Section Review 15.19
15.5 System-Level File Functions 15.20
15.5.1 Get Disk Free Space (7303h) 15.20
15.5.2 Create Subdirectory (39h) 15.23
15.5.3 Remove Subdirectory (3Ah) 15.23
15.5.4 Set Current Directory (3Bh) 15.23
15.5.5 Get Current Directory (47h) 15.24
15.5.6 Get and Set File Attributes (7143h) 15.24
15.5.7 Section Review 15.25
15.6 Chapter Summary 15.25
15.7 Programming Exercises 15.26
16 BIOS-Level Programming 16.1
16.1 Introduction 16.1
16.1.1 BIOS Data Area 16.2
16.2 Keyboard Input with INT 16h 16.3
16.2.1 How the Keyboard Works 16.3
16.2.2 INT 16h Functions 16.4
16.2.3 Section Review 16.8
16.3 VIDEO Programming with INT 10h 16.8
16.3.1 Basic Background 16.8
16.3.2 Controlling the Color 16.10
16.3.3 INT 10h Video Functions 16.12
16.3.4 Library Procedure Examples 16.22
16.3.5 Section Review 16.23
Contents
•----------------------------------------------—--------------------------------·
16.4 Drawing Graphics Using INT lOh 16.23
16.4.1 INT 1 Oh Pixel-Related Functions 16.24
16.4.2 DrawLine Program 16.25
16.4.3 Cartesian Coordinates Program 16.27
16.4.4 Converting Cartesian Coordinates to Screen Coordinates 16.29
16.4.5 Section Review 16.30
16.5 Memory-Mapped Graphics 16.30
16.5.1 Mode 13h: 320 X 200,256 Colors 16.30
16.5.2 Memory-Mapped Graphics Program 16.32
16.5.3 Section Review 16.34
16.6 Mouse Programming 16.35
16.6.1 Mouse INT 33h Functions 16.35
16.6.2 Mouse Tracking Program 16.40
16.6.3 Section Review 16.44
16.7 Chapter Summary 16.45
16.8 Programming Exercises 16.46
17 Expert MS-DOS Programming 17.1
17.1 Introduction 17.1
17.2 Defining Segments 17.2
17.2.1 Simplified Segment Directives 17.2
17.2.2 Explicit Segment Definitions 17.4
17.2.3 Segment Overrides 17.7
17.2.4 Combining Segments 17.7
17.2.5 Section Review 17.9
17.3 Runtime Program Structure 17.9
17.3.1 Program Segment Prefix 17.10
17.3.2 COM Programs 17.10
17.3.3 EXE Programs 17.11
17.3.4 Section Review 17.13
17.4 Interrupt Handling 17.13
17.4.1 Hardware Interrupts 17.14
17.4.2 Interrupt Control Instructions 17.16
17.4.3 Writing a Custom Interrupt Handler 17.16
17.4.4 Terminate and Stay Resident Programs 17.19
17.4.5 Application: The No__Reset Program 17.19
17.4.6 Section Review 17.23
17.5 Hardware Control Using I/O Ports 17.23
17.5.1 Input-Output Ports 17.24
17.5.2 PC Sound Program 17.24
17.6 Chapter Summary 17.26
Contents
•-------
21
Appendix A MASM Reference 619
Appendix B The x86 Instruction Set 641
Appendix C Answers to Section Review
Questions 676
Appendices are available from the Companion Web site
Appendix D BIOS and MS-DOS Interrupts D.1
Appendix E Answers to Review Questions
(Chapters 14-17) E.1
Index 696
|
any_adam_object | 1 |
author | Irvine, Kip R. |
author_GND | (DE-588)154938998 |
author_facet | Irvine, Kip R. |
author_role | aut |
author_sort | Irvine, Kip R. |
author_variant | k r i kr kri |
building | Verbundindex |
bvnumber | BV044538081 |
classification_rvk | ST 170 |
ctrlnum | (OCoLC)1011369979 (DE-599)GBV833302906 |
discipline | Informatik |
edition | seventh edition, global edition |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01642nam a2200409zc 4500</leader><controlfield tag="001">BV044538081</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20171108 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">171016s2015 xxu |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781292061214</subfield><subfield code="9">978-1-292-06121-4</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1011369979</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)GBV833302906</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxu</subfield><subfield code="c">US</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 170</subfield><subfield code="0">(DE-625)143602:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Irvine, Kip R.</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)154938998</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Assembly language for intel-based computers</subfield><subfield code="c">Kip R. Irvine ; global edition contributions by Lyla B. Das</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">seventh edition, global edition</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston</subfield><subfield code="b">Pearson</subfield><subfield code="c">[2015]</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">© 2015</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">712 Seiten</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">IBM Personal Computer</subfield><subfield code="x">Programming</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Assembler language (Computer program language)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">IBM PC</subfield><subfield code="0">(DE-588)4026436-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Assembler</subfield><subfield code="0">(DE-588)4003255-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">IBM PC</subfield><subfield code="0">(DE-588)4026436-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Assembler</subfield><subfield code="0">(DE-588)4003255-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2=" "><subfield code="m">DE-601</subfield><subfield code="q">pdf/application</subfield><subfield code="u">http://www.gbv.de/dms/tib-ub-hannover/833302906.pdf</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg - ADAM Catalogue Enrichment</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029937216&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-029937216</subfield></datafield></record></collection> |
id | DE-604.BV044538081 |
illustrated | Not Illustrated |
indexdate | 2024-07-10T07:55:20Z |
institution | BVB |
isbn | 9781292061214 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-029937216 |
oclc_num | 1011369979 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG |
owner_facet | DE-473 DE-BY-UBG |
physical | 712 Seiten |
publishDate | 2015 |
publishDateSearch | 2015 |
publishDateSort | 2015 |
publisher | Pearson |
record_format | marc |
spelling | Irvine, Kip R. Verfasser (DE-588)154938998 aut Assembly language for intel-based computers Kip R. Irvine ; global edition contributions by Lyla B. Das seventh edition, global edition Boston Pearson [2015] © 2015 712 Seiten txt rdacontent n rdamedia nc rdacarrier IBM Personal Computer Programming Assembler language (Computer program language) IBM PC (DE-588)4026436-1 gnd rswk-swf Assembler (DE-588)4003255-3 gnd rswk-swf IBM PC (DE-588)4026436-1 s Assembler (DE-588)4003255-3 s DE-604 DE-601 pdf/application http://www.gbv.de/dms/tib-ub-hannover/833302906.pdf Inhaltsverzeichnis Digitalisierung UB Bamberg - ADAM Catalogue Enrichment application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029937216&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Irvine, Kip R. Assembly language for intel-based computers IBM Personal Computer Programming Assembler language (Computer program language) IBM PC (DE-588)4026436-1 gnd Assembler (DE-588)4003255-3 gnd |
subject_GND | (DE-588)4026436-1 (DE-588)4003255-3 |
title | Assembly language for intel-based computers |
title_auth | Assembly language for intel-based computers |
title_exact_search | Assembly language for intel-based computers |
title_full | Assembly language for intel-based computers Kip R. Irvine ; global edition contributions by Lyla B. Das |
title_fullStr | Assembly language for intel-based computers Kip R. Irvine ; global edition contributions by Lyla B. Das |
title_full_unstemmed | Assembly language for intel-based computers Kip R. Irvine ; global edition contributions by Lyla B. Das |
title_short | Assembly language for intel-based computers |
title_sort | assembly language for intel based computers |
topic | IBM Personal Computer Programming Assembler language (Computer program language) IBM PC (DE-588)4026436-1 gnd Assembler (DE-588)4003255-3 gnd |
topic_facet | IBM Personal Computer Programming Assembler language (Computer program language) IBM PC Assembler |
url | http://www.gbv.de/dms/tib-ub-hannover/833302906.pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=029937216&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT irvinekipr assemblylanguageforintelbasedcomputers |
Es ist kein Print-Exemplar vorhanden.
Inhaltsverzeichnis