promo_download_app_ios_2025
Натисніть знайти для пошуку
Assembly Language for x86 Processors 7th Edition
Assembly Language for x86 Processors 7th Edition
Характеристики та опис

Основні

ISBN978-0133769401, 9780133769517

Користувальницькі характеристики

АвторKip Irvine
Рік2015
ВидавництвоPearson Education Limited
Сторінк720
Assembly Language for x86 Processors, 7e is intended for use in undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture. This title is also suitable for embedded systems programmers and engineers, communication specialists, game programmers, and graphics programmers. Proficiency in one other programming language, preferably Java, C, or C++, is recommended. Written specifically for 32- and 64-bit Intel/Windows platform, this complete and fullyupdated study of assembly language teaches students to write and debug programs at the machine level. This text simplifies and demystifies concepts that students need to grasp before they can go on to more advanced computer architecture and operating systems courses. Students put theory into practice through writing software at the machine level, creating a memorable experience that gives them the confidence to work in any OS/machine-oriented environment.Additional learning and teaching tools are available on the author’s web site at http://asmirvine.com/ where both instructors and students can access chapter objectives, debugging tools, supplemental files, a Getting Started with MASM and Visual Studio 2012 tutorial, and more.Teaching and Learning ExperienceThis program presents a better teaching and learning experience-for you and your students. It will help:Teach Effective Design Techniques: Top-down program design demonstration and explanation allows studentsto apply techniques to multiple programming courses.Put Theory into Practice: Students will write software at the machine level, preparing them to work in any OS/machine-oriented environment.Tailor the Text to Fit your Course: Instructors can cover optional chapter topics in varying order and depth.Support Instructors and Students: Visit the author's web site http://asmirvine.com/ for chapter objectives, debugging tools, supplemental files, a Getting Started with MASM and Visual Studio 2012 tutorial, and more. 1 Basic Concepts 11.1 Welcome to Assembly Language 11.1.1 Questions You Might Ask 31.1.2 Assembly Language Applications 61.1.3 Section Review 61.2 Virtual Machine Concept 71.2.1 Section Review 91.3 Data Representation 91.3.1 Binary Integers 101.3.2 Binary Addition 121.3.3 Integer Storage Sizes 131.3.4 Hexadecimal Integers 131.3.5 Hexadecimal Addition 151.3.6 Signed Binary Integers 161.3.7 Binary Subtraction 181.3.8 Character Storage 191.3.9 Section Review 211.4 Boolean Expressions 221.4.1 Truth Tables for Boolean Functions 241.4.2 Section Review 261.5 Chapter Summary 261.6 Key Terms 271.7 Review Questions and Exercises 281.7.1 Short Answer 281.7.2 Algorithm Workbench 302 x86 Processor Architecture 322.1 General Concepts 332.1.1 Basic Microcomputer Design 332.1.2 Instruction Execution Cycle 342.1.3 Reading from Memory 362.1.4 Loading and Executing a Program 362.1.5 Section Review 372.2 32-Bit x86 Processors 372.2.1 Modes of Operation 372.2.2 Basic Execution Environment 382.2.3 x86 Memory Management 412.2.4 Section Review 422.3 64-Bit x86-64 Processors 422.3.1 64-Bit Operation Modes 432.3.2 Basic 64-Bit Execution Environment 432.4 Components of a Typical x86 Computer 442.4.1 Motherboard 442.4.2 Memory 462.4.3 Section Review 462.5 Input—Output System 472.5.1 Levels of I/O Access 472.5.2 Section Review 492.6 Chapter Summary 502.7 Key Terms 512.8 Review Questions 523 Assembly Language Fundamentals 533.1 Basic Language Elements 543.1.1 First Assembly Language Program 543.1.2 Integer Literals 553.1.3 Constant Integer Expressions 563.1.4 Real Number Literals 573.1.5 Character Literals 573.1.6 String Literals 583.1.7 Reserved Words 583.1.8 Identifiers 583.1.9 Directives 593.1.10 Instructions 603.1.11 Section Review 633.2 Example: Adding and Subtracting Integers 633.2.1 The AddTwo Program 633.2.2 Running and Debugging the AddTwo Program 653.2.3 Program Template 703.2.4 Section Review 703.3 Assembling, Linking, and Running Programs 713.3.1 The Assemble-Link-Execute Cycle 713.3.2 Listing File 713.3.3 Section Review 733.4 Defining Data 743.4.1 Intrinsic Data Types 743.4.2 Data Definition Statement 743.4.3 Adding a Variable to the AddTwo Program 753.4.4 Defining BYTE and SBYTE Data 763.4.5 Defining WORD and SWORD Data 783.4.6 Defining DWORD and SDWORD Data 793.4.7 Defining QWORD Data 793.4.8 Defining Packed BCD (TBYTE) Data 803.4.9 Defining Floating-Point Types 813.4.10 A Program That Adds Variables 813.4.11 Little-Endian Order 823.4.12 Declaring Uninitialized Data 833.4.13 Section Review 833.5 Symbolic Constants 843.5.1 Equal-Sign Directive 843.5.2 Calculating the Sizes of Arrays and Strings 853.5.3 EQU Directive 863.5.4 TEXTEQU Directive 873.5.5 Section Review 883.6 64-Bit Programming 883.7 Chapter Summary 903.8 Key Terms 913.8.1 Terms 913.8.2 Instructions, Operators, and Directives 923.9 Review Questions and Exercises 923.9.1 Short Answer 923.9.2 Algorithm Workbench 933.10 Programming Exercises 944 Data Transfers, Addressing, and Arithmetic 954.1 Data Transfer Instructions 964.1.1 Introduction 964.1.2 Operand Types 964.1.3 Direct Memory Operands 964.1.4 MOV Instruction 984.1.5 Zero/Sign Extension of Integers 994.1.6 LAHF and SAHF Instructions 1014.1.7 XCHG Instruction 1024.1.8 Direct-Offset Operands 1024.1.9 Example Program (Moves) 1034.1.10 Section Review 1044.2 Addition and Subtraction 1054.2.1 INC and DEC Instructions 1054.2.2 ADD Instruction 1054.2.3 SUB Instruction 1064.2.4 NEG Instruction 1064.2.5 Implementing Arithmetic Expressions 1064.2.6 Flags Affected by Addition and Subtraction 1074.2.7 Example Program (AddSubTest) 1114.2.8 Section Review 1124.3 Data-Related Operators and Directives 1124.3.1 OFFSET Operator 1124.3.2 ALIGN Directive 1134.3.3 PTR Operator 1144.3.4 TYPE Operator 1154.3.5 LENGTHOF Operator 1164.3.6 SIZEOF Operator 1164.3.7 LABEL Directive 1164.3.8 Section Review 1174.4 Indirect Addressing 1174.4.1 Indirect Operands 1174.4.2 Arrays 1184.4.3 Indexed Operands 1194.4.4 Pointers 1214.4.5 Section Review 1224.5 JMP and LOOP Instructions 1234.5.1 JMP Instruction 1234.5.2 LOOP Instruction 1244.5.3 Displaying an Array in the Visual Studio Debugger 1254.5.4 Summing an Integer Array 1264.5.5 Copying a String 1274.5.6 Section Review 1284.6 64-Bit Programming 1284.6.1 MOV Instruction 1284.6.2 64-Bit Version of SumArray 1304.6.3 Addition and Subtraction 1304.6.4 Section Review 1314.7 Chapter Summary 1324.8 Key Terms 1334.8.1 Terms 1334.8.2 Instructions, Operators, and Directives 1334.9 Review Questions and Exercises 1344.9.1 Short Answer 1344.9.2 Algorithm Workbench 1364.10 Programming Exercises 1375 Procedures 1395.1 Stack Operations 1405.1.1 Runtime Stack (32-bit mode) 1405.1.2 PUSH and POP Instructions 1425.1.3 Section Review 1455.2 Defining and Using Procedures 1455.2.1 PROC Directive 1455.2.2 CALL and RET Instructions 1475.2.3 Nested Procedure Calls 1485.2.4 Passing Register Arguments to Procedures 1505.2.5 Example: Summing an Integer Array 1505.2.6 Saving and Restoring Registers 1525.2.7 Section Review 1535.3 Linking to an External Library 1535.3.1 Background Information 1545.3.2 Section Review 1555.4 The Irvine32 Library 1555.4.1 Motivation for Creating the Library 1555.4.2 Overview 1575.4.3 Individual Procedure Descriptions 1585.4.4 Library Test Programs 1705.4.5 Section Review 1785.5 64-Bit Assembly Programming 1785.5.1 The Irvine64 Library 1785.5.2 Calling 64-Bit Subroutines 1795.5.3 The x64 Calling Convention 1795.5.4 Sample Program that Calls a Procedure 1805.6 Chapter Summary 1825.7 Key Terms 1835.7.1 Terms 1835.7.2 Instructions, Operators, and Directives 1835.8 Review Questions and Exercises 1835.8.1 Short Answer 1835.8.2 Algorithm Workbench 1865.9 Programming Exercises 1876 Conditional Processing 1896.1 Conditional Branching 1906.2 Boolean and Comparison Instructions 1906.2.2 AND Instruction 1916.2.3 OR Instruction 1926.2.4 Bit-Mapped Sets 1946.2.5 XOR Instruction 1956.2.6 NOT Instruction 1966.2.7 TEST Instruction 1966.2.8 CMP Instruction 1976.2.9 Setting and Clearing Individual CPU Flags 1986.2.10 Boolean Instructions in 64-Bit Mode 1996.2.11 Section Review 1996.3 Conditional Jumps 1996.3.1 Conditional Structures 1996.3.2 J cond Instruction 2006.3.3 Types of Conditional Jump Instructions 2016.3.4 Conditional Jump Applications 2046.3.5 Section Review 2086.4 Conditional Loop Instructions 2096.4.1 LOOPZ and LOOPE Instructions 2096.4.2 LOOPNZ and LOOPNE Instructions 2096.4.3 Section Review 2106.5 Conditional Structures 2106.5.1 Block-Structured IF Statements 2106.5.2 Compound Expressions 2136.5.3 WHILE Loops 2146.5.4 Table-Driven Selection 2166.5.5 Section Review 2196.6 Application: Finite-State Machines 2196.6.1 Validating an Input String 2196.6.2 Validating a Signed Integer 2206.6.3 Section Review 2246.7 Conditional Control Flow Directives 2256.7.1 Creating IF Statements 2266.7.2 Signed and Unsigned Comparisons 2276.7.3 Compound Expressions 2286.7.4 Creating Loops with .REPEAT and .WHILE 2316.8 Chapter Summary 2326.9 Key Terms 2336.9.1 Terms 2336.9.2 Instructions, Operators, and Directives 2346.10 Review Questions and Exercises 2346.10.1 Short Answer 2346.10.2 Algorithm Workbench 2366.11 Programming Exercises 2376.11.1 Suggestions for Testing Your Code 2376.11.2 Exercise Descriptions 2387 Integer Arithmetic 2427.1 Shift and Rotate Instructions 2437.1.1 Logical Shifts and Arithmetic Shifts 2437.1.2 SHL Instruction 2447.1.3 SHR Instruction 2457.1.4 SAL and SAR Instructions 2467.1.5 ROL Instruction 2477.1.6 ROR Instruction 2477.1.7 RCL and RCR Instructions 2487.1.8 Signed Overflow 2497.1.9 SHLD/SHRD Instructions 2497.1.10 Section Review 2517.2 Shift and Rotate Applications 2517.2.1 Shifting Multiple Doublewords 2527.2.2 Binary Multiplication 2537.2.3 Displaying Binary Bits 2547.2.4 Extracting File Date Fields 2547.2.5 Section Review 2557.3 Multiplication and Division Instructions 2557.3.1 MUL Instruction 2557.3.2 IMUL Instruction 2577.3.3 Measuring Program Execution Times 2607.3.4 DIV Instruction 2627.3.5 Signed Integer Division 2647.3.6 Implementing Arithmetic Expressions 2677.3.7 Section Review 2697.4 Extended Addition and Subtraction 2697.4.1 ADC Instruction 2697.4.2 Extended Addition Example 2707.4.3 SBB Instruction 2727.4.4 Section Review 2727.5 ASCII and Unpacked Decimal Arithmetic 2737.5.1 AAA Instruction 2747.5.2 AAS Instruction 2767.5.3 AAM Instruction 2767.5.4 AAD Instruction 2767.5.5 Section Review 2777.6 Packed Decimal Arithmetic 2777.6.1 DAA Instruction 2777.6.2 DAS Instruction 2797.6.3 Section Review 2797.7 Chapter Summary 2797.8 Key Terms 2807.8.1 Terms 2807.8.2 Instructions, Operators, and Directives 2807.9 Review Questions and Exercises 2817.9.1 Short Answer 2817.9.2 Algorithm Workbench 2827.10 Programming Exercises 2848 Advanced Procedures 2868.1 Introduction 2878.2 Stack Frames 2878.2.1 Stack Parameters 2888.2.2 Disadvantages of Register Parameters 2888.2.3 Accessing Stack Parameters 2908.2.4 32-Bit Calling Conventions 2938.2.5 Local Variables 2958.2.6 Reference Parameters 2978.2.7 LEA Instruction 2988.2.8 ENTER and LEAVE Instructions 2988.2.9 LOCAL Directive 3008.2.10 The Microsoft x64 Calling Convention 3018.2.11 Section Review 3028.3 Recursion 3028.3.1 Recursively Calculating a Sum 3038.3.2 Calculating a Factorial 3048.3.3 Section Review 3118.4 INVOKE, ADDR, PROC, and PROTO 3118.4.1 INVOKE Directive 3118.4.2 ADDR Operator 3128.4.3 PROC Directive 3138.4.4 PROTO Directive 3168.4.5 Parameter Classifications 3198.4.6 Example: Exchanging Two Integers 3208.4.7 Debugging Tips 3218.4.8 WriteStackFrame Procedure 3228.4.9 Section Review 3238.5 Creating Multimodule Programs 3238.5.1 Hiding and Exporting Procedure Names 3238.5.2 Calling External Procedures 3248.5.3 Using Variables and Symbols across Module Boundaries 3258.5.4 Example: ArraySum Program 3268.5.5 Creating the Modules Using Extern 3268.5.6 Creating the Modules Using INVOKE and PROTO 3308.5.7 Section Review 3338.6 Advanced Use of Parameters (Optional Topic) 3338.6.1 Stack Affected by the USES Operator 3338.6.2 Passing 8-Bit and 16-Bit Arguments on the Stack 3358.6.3 Passing 64-Bit Arguments 3368.6.4 Non-Doubleword Local Variables 3378.7 Java Bytecodes (Optional Topic) 3398.7.1 Java Virtual Machine 3398.7.2 Instruction Set 3408.7.3 Java Disassembly Examples 3418.7.4 Example: Conditional Branch 3448.8 Chapter Summary 3468.9 Key Terms 3478.9.1 Terms 3478.9.2 Instructions, Operators, and Directives 3488.10 Review Questions and Exercises 3488.10.1 Short Answer 3488.10.2 Algorithm Workbench 3488.11 Programming Exercises 3499 Strings and Arrays 3529.1 Introduction 3529.2 String Primitive Instructions 3539.2.1 MOVSB, MOVSW, and MOVSD 3549.2.2 CMPSB, CMPSW, and CMPSD 3559.2.3 SCASB, SCASW, and SCASD 3569.2.4 STOSB, STOSW, and STOSD 3569.2.5 LODSB, LODSW, and LODSD 3569.2.6 Section Review 3579.3 Selected String Procedures 3579.3.1 Str_compare Procedure 3589.3.2 Str_length Procedure 3599.3.3 Str_copy Procedure 3599.3.4 Str_trim Procedure 3609.3.5 Str_ucase Procedure 3639.3.6 String Library Demo Program 3649.3.7 String Procedures in the Irvine64 Library 3659.3.8 Section Review 3689.4 Two-Dimensional Arrays 3689.4.1 Ordering of Rows and Columns 3689.4.2 Base-Index Operands 3699.4.3 Base-Index-Displacement Operands 3719.4.4 Base-Index Operands in 64-Bit Mode 3729.4.5 Section Review 3739.5 Searching and Sorting Integer Arrays 3739.5.1 Bubble Sort 3739.5.2 Binary Search 3759.5.3 Section Review 3829.6 Java Bytecodes: String Processing (Optional Topic) 3829.7 Chapter Summary 3839.8 Key Terms and Instructions 3849.9 Review Questions and Exercises 3849.9.1 Short Answer 3849.9.2 Algorithm Workbench 3859.10 Programming Exercises 38610 Structures and Macros 39010.1 Structures 39010.1.1 Defining Structures 39110.1.2 Declaring Structure Variables 39310.1.3 Referencing Structure Variables 39410.1.4 Example: Displaying the System Time 39710.1.5 Structures Containing Structures 39910.1.6 Example: Drunkard’s Walk 39910.1.7 Declaring and Using Unions 40310.1.8 Section Review 40510.2 Macros 40510.2.1 Overview 40510.2.2 Defining Macros 40610.2.3 Invoking Macros 40710.2.4 Additional Macro Features 40810.2.5 Using the Book’s Macro Library (32-bit mode only) 41210.2.6 Example Program: Wrappers 41910.2.7 Section Review 42010.3 Conditional-Assembly Directives 42010.3.1 Checking for Missing Arguments 42110.3.2 Default Argument Initializers 42210.3.3 Boolean Expressions 42310.3.4 IF, ELSE, and ENDIF Directives 42310.3.5 The IFIDN and IFIDNI Directives 42410.3.6 Example: Summing a Matrix Row 42510.3.7 Special Operators 42810.3.8 Macro Functions 43110.3.9 Section Review 43310.4 Defining Repeat Blocks 43310.4.1 WHILE Directive 43310.4.2 REPEAT Directive 43410.4.3 FOR Directive 43410.4.4 FORC Directive 43510.4.5 Example: Linked List 43610.4.6 Section Review 43710.5 Chapter Summary 43810.6 Key Terms 43910.6.1 Terms 43910.6.2 Operators and Directives 43910.7 Review Questions and Exercises 44010.7.1 Short Answer 44010.7.2 Algorithm Workbench 44010.8 Programming Exercises 44211 MS-Windows Programming 44511.1 Win32 Console Programming 44511.1.1 Background Information 44611.1.2 Win32 Console Functions 45011.1.3 Displaying a Message Box 45211.1.4 Console Input 45511.1.5 Console Output 46111.1.6 Reading and Writing Files 46311.1.7 File I/O in the Irvine32 Library 46811.1.8 Testing the File I/O Procedures 47011.1.9 Console Window Manipulation 47311.1.10 Controlling the Cursor 47611.1.11 Controlling the Text Color 47711.1.12 Time and Date Functions 47911.1.13 Using the 64-Bit Windows API 48211.1.14 Section Review 48411.2 Writing a Graphical Windows Application 48411.2.1 Necessary Structures 48411.2.2 The MessageBox Function 48611.2.3 The WinMain Procedure 48611.2.4 The WinProc Procedure 48711.2.5 The ErrorHandler Procedure 48811.2.6 Program Listing 48811.2.7 Section Review 49211.3 Dynamic Memory Allocation 49211.3.1 HeapTest Programs 49611.3.2 Section Review 49911.4 x86 Memory Management 49911.4.1 Linear Addresses 50011.4.2 Page Translation 50311.4.3 Section Review 50511.5 Chapter Summary 50511.6 Key Terms 50711.7 Review Questions and Exercises 50711.7.1 Short Answer 50711.7.2 Algorithm Workbench 50811.8 Programming Exercises 50912 Floating-Point Processing and Instruction Encoding 51112.1 Floating-Point Binary Representation 51112.1.1 IEEE Binary Floating-Point Representation 51212.1.2 The Exponent 51412.1.3 Normalized Binary Floating-Point Numbers 51412.1.4 Creating the IEEE Representation 51412.1.5 Converting Decimal Fractions to Binary Reals 51612.1.6 Section Review 51812.2 Floating-Point Unit 51812.2.1 FPU Register Stack 51912.2.2 Rounding 52112.2.3 Floating-Point Exceptions 52312.2.4 Floating-Point Instruction Set 52312.2.5 Arithmetic Instructions 52612.2.6 Comparing Floating-Point Values 53012.2.7 Reading and Writing Floating-Point Values 53312.2.8 Exception Synchronization 53412.2.9 Code Examples 53512.2.10 Mixed-Mode Arithmetic 53712.2.11 Masking and Unmasking Exceptions 53812.2.12 Section Review 53912.3 x86 Instruction Encoding 53912.3.1 Instruction Format 54012.3.2 Single-Byte Instructions 54112.3.3 Move Immediate to Register 54112.3.4 Register-Mode Instructions 54212.3.5 Processor Operand-Size Prefix 54312.3.6 Memory-Mode Instructions 54412.3.7 Section Review 54712.4 Chapter Summary 54712.5 Key Terms 54912.6 Review Questions and Exercises 54912.6.1 Short Answer 54912.6.2 Algorithm Workbench 55012.7 Programming Exercises 55113 High-Level Language Interface 55513.1 Introduction 55513.1.1 General Conventions 55613.1.2 .MODEL Directive 55713.1.3 Examining Compiler-Generated Code 55913.1.4 Section Review 56413.2 Inline Assembly Code 56413.2.1 __asm Directive in Visual C++ 56413.2.2 File Encryption Example 56613.2.3 Section Review 56913.3 Linking 32-Bit Assembly Language Code to C/C++ 57013.3.1 IndexOf Example 57013.3.2 Calling C and C++ Functions 57413.3.3 Multiplication Table Example 57613.3.4 Calling C Library Functions 57913.3.5 Directory Listing Program 58213.3.6 Section Review 58313.4 Chapter Summary 58313.5 Key Terms 58413.6 Review Questions 58413.7 Programming Exercises 58614 16-Bit MS-DOS Programming 14.114.1 MS-DOS and the IBM-PC 14.114.1.1 Memory Organization 14.214.1.2 Redirecting Input-Output 14.314.1.3 Software Interrupts 14.414.1.4 INT Instruction 14.514.1.5 Coding for 16-Bit Programs 14.614.1.6 Section Review 14.714.2 MS-DOS Function Calls (INT 21h) 14.714.2.1 Selected Output Functions 14.914.2.2 Hello World Program Example 14.1114.2.3 Selected Input Functions 14.1214.2.4 Date/Time Functions 14.1614.2.5 Section Review 14.2014.3 Standard MS-DOS File I/O Services 14.2014.3.1 Create or Open File (716Ch) 14.2214.3.2 Close File Handle (3Eh) 14.2314.3.3 Move File Pointer (42h) 14.2314.3.4 Get File Creation Date and Time 14.2414.3.5 Selected Library Procedures 14.2414.3.6 Example: Read and a Text File 14.2514.3.7 Reading the MS-DOS Command Tail 14.2714.3.8 Example: Creating a Binary File 14.3014.3.9 Section Review 14.3314.4 Chapter Summary 14.3314.5 Programming Exercises 14.3515 Disk Fundamentals 15.115.1 Disk Storage Systems 15.115.1.1 Tracks, Cylinders, and Sectors 15.215.1.2 Disk Partitions (Volumes) 15.415.1.3 Section Review 15.415.2 File Systems 15.515.2.1 FAT12 15.615.2.2 FAT16 15.615.2.3 FAT32 15.615.2.4 NTFS 15.715.2.5 Primary Disk Areas 15.715.2.6 Section Review 15.815.3 Disk Directory 15.915.3.1 MS-DOS Directory Structure 15.1015.3.2 Long Filenames in MS-Windows 15.1215.3.3 File Allocation Table (FAT) 15.1415.3.4 Section Review 15.1415.4 Reading and Writing Disk Sectors 15.1515.4.1 Sector Display Program 15.1615.4.2 Section Review 15.1915.5 System-Level File Functions 15.2015.5.1 Get Disk Free Space (7303h) 15.2015.5.2 Create Subdirectory (39h) 15.2315.5.3 Remove Subdirectory (3Ah) 15.2315.5.4 Set Current Directory (3Bh) 15.2315.5.5 Get Current Directory (47h) 15.2415.5.6 Get and Set File Attributes (7143h) 15.2415.5.7 Section Review 15.2515.6 Chapter Summary 15.2515.7 Programming Exercises 15.2616 BIOS-Level Programming 16.116.1 Introduction 16.116.1.1 BIOS Data Area 16.216.2 Keyboard Input with INT 16h 16.316.2.1 How the Keyboard Works 16.316.2.2 INT 16h Functions 16.416.2.3 Section Review 16.816.3 VIDEO Programming with INT 10h 16.816.3.1 Basic Background 16.816.3.2 Controlling the Color 16.1016.3.3 INT 10h Video Functions 16.1216.3.4 Library Procedure Examples 16.2216.3.5 Section Review 16.2316.4 Drawing Graphics Using INT 10h 16.2316.4.1 INT 10h Pixel-Related Functions 16.2416.4.2 DrawLine Program 16.2516.4.3 Cartesian Coordinates Program 16.2716.4.4 Converting Cartesian Coordinates to Screen Coordinates 16.2916.4.5 Section Review 16.3016.5 Memory-Mapped Graphics 16.3016.5.1 Mode 13h: 320 X 200, 256 Colors 16.3016.5.2 Memory-Mapped Graphics Program 16.3216.5.3 Section Review 16.3416.6 Mouse Programming 16.3516.6.1 Mouse INT 33h Functions 16.3516.6.2 Mouse Tracking Program 16.4016.6.3 Section Review 16.4416.7 Chapter Summary 16.4516.8 Programming Exercises 16.4617 Expert MS-DOS Programming 17.117.1 Introduction 17.117.2 Defining Segments 17.217.2.1 Simplified Segment Directives 17.217.2.2 Explicit Segment Definitions 17.417.2.3 Segment Overrides 17.717.2.4 Combining Segments 17.717.2.5 Section Review 17.917.3 Runtime Program Structure 17.917.3.1 Program Segment Prefix 17.1017.3.2 COM Programs 17.1017.3.3 EXE Programs 17.1117.3.4 Section Review 17.1317.4 Interrupt Handling 17.1317.4.1 Hardware Interrupts 17.1417.4.2 Interrupt Control Instructions 17.1617.4.3 Writing a Custom Interrupt Handler 17.1617.4.4 Terminate and Stay Resident Programs 17.1917.4.5 Application: The No_Reset Program 17.1917.4.6 Section Review 17.2317.5 Hardware Control Using I/O Ports 17.2317.5.1 Input—Output Ports 17.2417.5.2 PC Sound Program 17.2417.6 Chapter Summary 17.26Appendix A MASM Reference 587Appendix B The x86 Instruction Set 609Appendix C Answers to Section ReviewQuestions 644Appendices D-E are available on the Companion Web siteAppendix D BIOS and MS-DOS Interrupts D.1Appendix E Answers to Review Questions (Chapters 14—17) E.1Index 664

Assembly Language for x86 Processors 7th Edition

В наявності
Код: 138828
990 
Способи оплати
Безпечна оплата
  • Як післяплата, тільки без переплат
  • Повернем гроші, якщо щось піде не так
  • Bigl гарантує безпеку
Післяплата
Нова Пошта, Самовивіз
Способи доставки
Нова Пошта — Безкоштовно за умови
Укрпошта — від 35 грн
Самовивіз
Умови повернення
Уточнюйте у продавця
Інші товари продавця
Подібні товари інших продавців
Дивіться також
Новинки в категорії навчальна та розвиваюча дитяча література
Чат