Assembly Language For X86 Processors 6th Edition Irvine Solutions Manual
$26.99$50.00 (-46%)
Assembly Language For X86 Processors 6th Edition Irvine Solutions Manual.
You may also like
Assembly Language For X86 Processors 6th Edition Irvine Solutions Manual
Product details:
- ISBN-10 : 013602212X
- ISBN-13 : 978-0136022121
- Author: Kip Irvine, Florida
Assembly Language for x86 Processors, 6/e is ideal for undergraduate courses in assembly language programming and introductory courses in computer systems and computer architecture. Written specifically for the Intel/Windows/DOS platform, this complete and fully updated study of assembly language teaches students to write and debug programs at the machine level. Based on the Intel processor family, the 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. Proficiency in one other programming language, preferably Java, C, or C++, is recommended.
Table contents:
Preface
xix
Basic Concepts
1(28)
Welcome to Assembly Language
1(6)
Good Questions ot Ask
2(3)
Assembly Language Applications
5(1)
Section Review
6(1)
Virtual Machine Coneepgt
7(2)
Section Review
9(1)
Data Representation
9(13)
Binary Integers
9(2)
Binary Addition
11(1)
Integer Storage Sizes
12(1)
Hexadecimal Integers
13(2)
Signed Integers
15(2)
Character Storage
17(2)
Section Review
19(3)
Boolean Operations
22(4)
Truth Tables for Boolean Functions
24(2)
Section Review
26(1)
Chapter Summary
26(1)
Exercises
27(2)
Programming Tasks
27(1)
Nonprogramming Tasks
27(2)
x86 Programming Architecture
29(29)
General Concepts
29(7)
Basic Microcomputer Design
30(1)
Instruction Executioni Cycle
31(2)
Reading from Memory
33(1)
How Programs Run
34(1)
Section Review
35(1)
x86 Architecture Details
36(7)
Modes of Operation
36(1)
Basic Execution Environment
36(3)
Floating-Point Unit
39(1)
Overview of Intel Microprocessors
39(3)
Section Review
42(1)
x86 Memory Management
43(5)
Real-Address Mode
43(2)
Protected Mode
45(2)
Section Review
47(1)
Components of a Typical x86 Computer
48(7)
Motherboard
48(2)
Video Output
50(1)
Memory
50(1)
Input-Output Ports and Device Interfaces
50(5)
Section Review
55(1)
Chapter Summary
55(2)
Chapter Exercises
57(1)
Assembly Language Fundamentals
58(36)
Basic Elements of Assembly Language
58(8)
Integer Constants
59(1)
Integer Expressions
60(1)
Real Number Constants
61(1)
Character Constants
61(1)
String Constants
61(1)
Reserved Words
62(1)
Identifiers
62(1)
Directives
62(1)
Instructions
63(2)
The NOP (No Operation) Instruction
65(1)
Section Review
66(1)
Example: Adding and Subtracting Integers
66(5)
Alternative Version of AddSub
69(1)
Program Template
70(1)
Section Review
70(1)
Assembling, Linking, and Running Programs
71(6)
The Assemble-Link-Execute Cycle
71(6)
Section Review
77(1)
Defining Data
77(9)
Intrinsic Data Types
77(1)
Data Definition Statement
77(1)
Defining BYTE and SBYTE Data
78(2)
Defining WORD and SWORD Data
80(1)
Defining DWORD and SDWORD Data
81(1)
Defining QWORD Data
81(1)
Defining Packed Binary Coded Decimal (TBYTE) Data
82(1)
Defining Real Number Data
83(1)
Little Endian Order
83(1)
Adding Variables to the AddSub Program
84(1)
Declaring Uninitialized Data
85(1)
Section Review
85(1)
Symbolic Constants
86(4)
Equal-Sign Directive
86(1)
Calculating the Sizes of Arrays and Strings
87(1)
EQU Directive
88(1)
TEXTEQU Directive
89(1)
Section Review
90(1)
Real-Address Mode Programming (Optional)
90(1)
Basic Changes
90(1)
Chapter Summary
91(1)
Programming Exercises
92(2)
Data Transfers, Addressing, and Arithmetic
94(38)
Data Transfer Instructions
94(10)
Introduction
94(1)
Operand Types
95(1)
Direct Memory Operands
96(1)
MOV Instruction
96(2)
Zero/Sign Extension of Integers
98(2)
LAHF and SAHF Instructions
100(1)
XCHG Instruction
100(1)
Direct-Offset Operands
101(1)
Example Program (Moves)
102(1)
Section Review
103(1)
Addition and Subtraction
104(8)
INC and DEC Instructions
104(1)
ADD Instruction
104(1)
SUB Instruction
105(1)
NEG Instruction
105(1)
Implementing Arithmetic Expressions
106(1)
Flags Affected by Addition and Subtraction
106(4)
Example Program (AddSub3)
110(1)
Section Review
111(1)
Data-Related Operators and Directives
112(5)
OFFSET Operator
112(1)
ALIGN Directive
113(1)
PTR Operator
114(1)
TYPE Operator
115(1)
LENGTHOF Operator
115(1)
SIZEOF Operator
116(1)
LABEL Directive
116(1)
Section Review
117(1)
Indirect Addressing
117(7)
Indirect Operands
118(1)
Arrays
119(1)
Indexed Operands
120(1)
Pointers
121(2)
Section Review
123(1)
JMP and LOOP Instructions
124(4)
JMP Instruction
124(1)
LOOP Instruction
124(2)
Summing an Integer Array
126(1)
Copying a String
126(1)
Section Review
127(1)
Chapter Summary
128(1)
Programming Exercises
129(3)
Procedures
132(48)
Introduction
132(1)
Linking to an External Library
132(2)
Background Information
133(1)
Section Review
134(1)
The Book’s Link Library
134(23)
Overview
136(1)
Individual Procedure Descriptions
137(12)
Library Test Programs
149(8)
Section Review
157(1)
Stack Operations
157(6)
Runtime Stack
158(2)
PUSH and POP Instructions
160(2)
Section Review
162(1)
Defining and Using Procedures
163(9)
PROC Directive
163(2)
CALL and RET Instructions
165(3)
Example: Summing an Integer Array
168(1)
Flowcharts
169(1)
Saving and Restoring Registers
170(1)
Section Review
171(1)
Program Design Using Procedures
172(5)
Integer Summation Program (Design)
173(2)
Integer Summation Implementation
175(2)
Section Review
177(1)
Chapter Summary
177(3)
Programming Exercises
180(1)
Conditional Processing
180(49)
Introduction
180(1)
Boolean and Comparison Instructions
181(1)
The CPU Flags
182(1)
And Instruction
182(1)
OR Instruction
183(1)
Bit-Mapped Sets
184(2)
XOR Instruction
186(1)
NOT Instruction
187(1)
TEST Instruction
187(1)
CMP Instruction
188(1)
Setting and Clearing Individual CPU Flags
189(1)
Section Review
189(1)
Conditioanl Jumps
190(10)
Conditional Structures
190(1)
Jcond Instruction
191(1)
Type of Conditional Jump Instructions
192(3)
Conditional Jump Applications
195(4)
Section Review
199(1)
Conditional Loop Instructions
200(2)
LOOPZ and LOOPE Instructions
200(1)
LOOPNZ and LOOPNE Instructions
201(1)
Section Review
201(1)
Conditional Structures
202(9)
Block-Structured IF Statements
202(2)
Compound Expressions
204(2)
WHILE Loops
206(2)
Table-Driven Selection
208(2)
Section Review
210(1)
Application: Finite-State Machines
211(6)
Validating an Input String
211(1)
Validating a Signed Integer
212(4)
Section Review
216(1)
Conditional Control Flow Directives
217(7)
Creating IF Statements
218(1)
Signed and Unsigned Comparisons
219(1)
Compound Expressions
220(3)
Creating Loops with .REPEAT and .WHILE
223(1)
Chapter Summarry
224(1)
Programming Exercises
225(4)
Integer Arithmetic
229(41)
Introduction
229(1)
Shift and Rotate Instructions
230(9)
Logical Shifts and Arithmetic Shifts
230(1)
SHL Instruction
231(1)
SHR Instruction
232(1)
SAL and SAR Instructions
233(1)
ROL Instruction
234(1)
ROR Instruction
235(1)
RCL and RCR Instructions
235(1)
Signed Overflow
236(1)
SHLD/SHRD Instructions
236(2)
Section Review
238(1)
Shift and Rotate Applications
239(4)
Shifting Multiple Doublewords
240(1)
Binary Multiplication
241(1)
Displaying Binary Bits
242(1)
Isolating MS-DOS File Date Fields
242(1)
Section Review
243(1)
Multiplication and Division Instruction
243(13)
MUL Instruction
243(2)
IMUL Instruction
245(2)
Measuring Program Execution Times
247(2)
DIV Instruction
249(1)
Signed Integer Division
250(3)
Implementing Arithmetic Expressions
253(2)
Section Review
255(1)
Extended Addition and Subtraction
256(4)
ADC Instruction
256(1)
Extended Addition Example
257(1)
SBB Instruction
258(1)
Section Review
259(1)
ASCII and Unpacked Decimal Arithmetic
260(4)
AAA Instruction
261(1)
AAS Instruction
262(1)
AAM Instruction
263(1)
AAD Instruction
263(1)
Section Review
264(1)
Packed Decimal Arithmetic
264(2)
DAA Instruction
264(2)
DAS Instruction
266(1)
Section Review
266(1)
Chapter Summary
266(1)
Programming Exercises
267(3)
Advanced Procedures
270(62)
Introduction
270(1)
Stack Frames
271(19)
Stack Parameters
272(1)
Accessing Stack Parameters
273(8)
Local Variables
281(4)
ENTER and LEAVE Instructions
285(1)
LOCAL Directive
286(3)
Section Review
289(1)
Recursion
290(9)
Recuersively Calculating a Sum
291(1)
Calculating a Factorial
292(6)
Section Review
298(1)
INVOKE, ADDR, PROC, and PROTO
299(12)
INVOKE Directive
299(1)
ADDR Operator
300(1)
PROC Directive
301(3)
PROTO Directive
304(3)
Parameter Classifications
307(1)
Example: Exchanging Two Integers
307(1)
Debugging Tips
308(1)
WriteStackFrame Procedure
309(1)
Section Review
310(1)
Creating Multimodul Programs
311(10)
Hiding and Exporting Procedure Names
311(1)
Calling External Procedures
312(1)
Using Variables and Symbols across Module Boundaries
313(1)
Example: ArraySum Program
314(1)
Creating the Modules Using Extern
314(4)
Creating the Modules Using INVOKE and PROTO
318(3)
Section Review
321(1)
Java Bytecodes
321(7)
Java Virtual Machine
321(1)
Instruction Set
322(1)
Java Disassembly Examples
323(5)
Chapter Summary
328(1)
Programming Exercises
329(3)
Strings and Arrays
332(34)
Introduction
332(1)
String Primitive Instructions
333(5)
MOVSB, MOVSW, and MOVSD
334(1)
CMPSB, CMPSW, and CMPSD
335(1)
SCASB, SCASW, and SCASD
336(1)
STOSB, STOSW, and STOSD
336(1)
LODSB, LODSW, and LODSD
337(1)
Section Review
337(1)
Selected String Procedures
338(8)
Str_compare Procedure
338(1)
Str_length Procedure
339(1)
Str_copy Procedure
340(1)
Str_trim Procedure
340(3)
Str_ucase Procedure
343(1)
String Library Demo Program
344(2)
Section Review
346(1)
Two-Dimensional Arrays
346(4)
Ordering of Rows and Columns
346(1)
Base-Index Operands
347(2)
Base-Index-Displacement Operands
349(1)
Section Review
350(1)
Searching and Sorting Integer Arrays
350(9)
Bubble Sort
350(2)
Binary Search
352(7)
Section Review
359(1)
Java Bytecodes: String Processing
359(1)
Chapter Summary
360(1)
Programming Exercises
361(5)
Stuctures and Macros
366(53)
Structures
366(16)
Defining Structures
367(3)
Declaring Structures Varibles
370(1)
Referencing Structures Variables
370(2)
Example: Displaying the System Time
372(3)
Structures Containing Structures
375(1)
Example: Drunkard’s Walk
375(3)
Declaring and Using Unions
378(3)
Section Review
381(1)
Macros
382(14)
Overview
382(1)
Defining Macros
382(1)
Invoking Macros
383(1)
Additional Macro Features
384(4)
Using the Book’s Macro Library
388(6)
Example Program: Wrappers
394(1)
Section Review
395(1)
Conditional-Assembly Directives
396(14)
Checking for Missing Arguments
397(1)
Default Argument Initializers
398(1)
Boolean Expressions
399(1)
IF, ELSE, and ENDIF Directives
399(1)
The IFIDN and IFIDNI Directives
400(1)
Example: Summing a Matrix Row
401(3)
Special Operators
404(3)
Macro Functions
407(2)
Section Review
409(1)
Defining Repeat Blocks
410(5)
WHILE Directive
410(1)
REPEAT Directive
410(1)
FOR Directive
411(1)
FORC Directive
412(1)
Example: Linked List
412(2)
Section Review
414(1)
Chapter Summary
415(1)
Programming Exercises
416(3)
MS-Windows Programming
419(64)
Win32 Console Programming
419(38)
Background Information
420(4)
Win32 Console Functions
424(2)
Displaying a Message Box
426(3)
Console Input
429(6)
Console Output
435(2)
Reading and Writing Files
437(5)
File I/O in the Irvine32 Library
442(2)
Testing the File I/O Procedures
444(3)
Console Window Manipulation
447(3)
Controlling the Cursor
450(1)
Controlling the Text Color
451(2)
Time and Date Functions
453(3)
Section Review
456(1)
Writing a Graphical Windows Application
457(9)
Necessary Structures
458(1)
The MessageBox Function
459(1)
The WinMain Procedure
460(1)
The WinProc Procedure
460(1)
The ErrorHandler Procedure
461(1)
Program Listing
461(4)
Section Review
465(1)
Dynamic Memory Allocation
466(7)
HeapTest Programs
469(4)
Section Review
473(1)
x86 Memory Management
473(6)
Linear Addresses
473(4)
Page Translation
477(2)
Section Review
479(1)
Chapter Summary
479(2)
Programming Exercises
481(2)
Floating-Point Processing and Instruction Encoding
483(42)
Floating-Point Binary Representation
483(7)
IEEE Binary Floating-Point Representation
484(1)
The Exponent
485(1)
Normalized Binary Floating-Point Numbers
486(1)
Creating the IEEE Representation
486(2)
Converting Decimal Fractions to Binary Reals
488(2)
Section Review
490(1)
Floating-Point Unit
490(22)
FPU Register Stack
491(2)
Rounding
493(2)
Floating-Point Exceptions
495(1)
Floating-Point Instruction Set
495(3)
Arithmetic Instructions
498(4)
Comparing Floating-Point Values
502(2)
Reading and Writing Floating-Point Values
504(2)
Exception Synchronization
506(1)
Code Examples
507(1)
Mixed-Mode Arithmetic
508(1)
Masking and Unmasking Exceptions
509(2)
Section Review
511(1)
x86 Instruction Encoding
512(8)
Instruction Format
512(1)
Single-Byte Instructions
513(1)
Move Immediate to Register
514(1)
Register-Mode Instructions
514(1)
Processor Operand-Size Prefix
515(1)
Memory-Mode Instructions
516(3)
Section Review
519(1)
Chapter Summary
520(1)
Programming Exercises
521(4)
High-Level Language Interface
525(37)
Introduction
525(4)
General Conventions
526(1)
MODEL Directive
527(2)
Section Review
529(1)
Inline Assembly Code
529(6)
_asm Directive in Microsoft Visual C++
529(3)
File Encryption Example
532(3)
Section Review
535(1)
Linking to C/C++ in Protected Mode
535(17)
Using Assembly Language to Optimize C++ Code
536(6)
Calling C and C++ Functions
542(2)
Multiplication Table Example
544(3)
Calling C Library Functions
547(3)
Directory Listing Program
550(2)
Section Review
552(1)
Linking to C/C++ in Real-Address Mode
552(8)
Linking to Borland C++
553(1)
ReadSector Example
554(4)
Example: Large Random Integers
558(1)
Section Review
559(1)
Chapter Summary
560(1)
Programming Exercises
560(2)
16-Bit MS-DOS Programming
562(34)
MS-DOS and the IBM-PC
562(6)
Memory Organization
563(1)
Redirecting Input-Output
564(1)
Software Interrupts
565(1)
INT Instruction
565(2)
Coding for 16-Bit Programs
567(1)
Section Review
568(1)
MS-DOS Function Calls (INT 21h)
568(13)
Selected Output Functions
570(2)
Hello World Program Example
572(1)
Selected Input Functions
573(4)
Date/Time Functions
577(4)
Section Review
581(1)
Standard MS-DOS File I/O Services
581(13)
Create or Open File (716Ch)
583(1)
Close File Handle (3Eh)
584(1)
Move File Pointer (42h)
584(1)
Get File Creation Date and Time
585(1)
Selected Library Procedures
585(1)
Example: Read and Copy a Text File
586(2)
Reading the MS-DOS Command Tail
588(3)
Example: Creating a Binary File
591(3)
Section Review
594(1)
Chapter Summary
594(2)
Programming Exercises
596
People also search:
Assembly Language For X86 Processors 6th
Assembly Language For X86 Processors 6th edition
Assembly Language For X86 Processors 6th pdf
Assembly Language For X86 Processors 6th pdf free
Assembly Language For X86 Processors 6th download full pdf version