Assembly Language For X86 Processors 6th Edition Irvine Solutions Manual

$26.99$50.00 (-46%)

In stock

Assembly Language For X86 Processors 6th Edition Irvine Solutions Manual.

Download sample

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

Instant download after Payment is complete

Main Menu