Pentium™ Processor - 1st Edition - ISBN: 9780126272307, 9781483214252

Pentium™ Processor

1st Edition

Optimization Tools

Authors: Michael L. Schmit
eBook ISBN: 9781483214252
Imprint: Academic Press
Published Date: 28th October 1994
Page Count: 406
Sales tax will be calculated at check-out Price includes VAT/GST
Price includes VAT/GST
× DRM-Free

Easy - Download and start reading immediately. There’s no activation process to access eBooks; all eBooks are fully searchable, and enabled for copying, pasting, and printing.

Flexible - Read on multiple operating systems and devices. Easily read eBooks on smart phones, computers, or any eBook readers, including Kindle.

Open - Buy once, receive and download all available eBook formats, including PDF, EPUB, and Mobi (for Kindle).

Institutional Access

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.


Pentium Processor Optimization Tools covers advanced program optimization techniques for the Intel 80x86 family of chips, including the Pentium. The book starts by providing a review and history of the optimization tool. The text then discusses the 80x86 programming language; Pentium and its tools; and the superscalar Pentium programming. The operation of the floating-point unit; techniques for including assembly language routines in C or C++ programs; and the protected-mode programming are also considered. The book further tackles optimizations and code alignment; as well as the background and technical capabilities of the PowerPC vs. the Pentium and their future technical directions. Computer programmers and students taking related courses will find the book invaluable.

Table of Contents


Who Is This Book For

What Is on the Disk

Why Learn Assembly Language for the Pentium

How to Proceed


I Review and Historical Context

1 Number Systems


Signed Numbers

Numeric Overflow

Data Sizes

Little Endian vs. Big Endian

2 What is Assembly


Tools and Terminology

What Are Compilers, Interpreters and Assemblers

3 The 8086 Family History and Architecture

Compatibility Lessons

Math Co-processors

The 80286

32-bit 80386

RISCy 80486

The 80586

The Competition

The P6

II 80x86 Family Background

4 8086 Architecture and Instruction Set

8088 Architecture

The 8088 Instruction Set

Program Control and Branching

Flag Manipulations

BCD Instructions

String Instructions


Miscellaneous Instructions

Flag Summary

5 Writing Beginning Programs

What Do All Those Statements Mean

Labels and Identifiers



Defining Data Items

Using DOS System Functions

The END Directive

Memory Models

6 Assembly Tools






7 The Instruction Set Evolves: The 186 to the 386

The Lost Brother, the 80186

The 80286

The 80386

New 386 Addressing Modes

New 386 Instructions

Protected Mode

III Introduction to Pentium and Tools

8 The 80486 and Pentium


Bigger Cache

New Pentium Instructions


9 Superscalar Programming

Dual Integer Pipelines

Branch Prediction Logic

Optimized Cycle Times

10 Integer and Floating-Point Pipeline Operation

The Memory Cache


Address Generation Interlock AGI)

Paired Pipelines

486 Pipeline Delays

Pentium Pipeline Delays

Pentium Floating-Point Pipeline

FPU Pipeline Delays

Concurrent Integer and FPU Processing

11 Using the Pentium Optimizer Program

How It Works

Address Generation Interlocks


12 Timing with a Software Timer

Built-in Pentium Timer

Software Timer

Timer Software Function Reference

Percent Speed Changes

IV Superscalar Pentium Programming

13 Optimization Warm-Ups

String Instruction Optimizations

14 String Search and Translate

String Search

String Translations

Atomic Programming

Coding Challenge

Reality Check

Case-Independent String Searching

Case-Independent String Scan

Case-Independent String Compare


15 Checksums and Extended Precision Addition

Step 1

Step 2

Step 3

Step 4

Step 5

Step 6

Coming Completely Undone


False Steps

Extended Precision Addition

V Advanced Topics

16 Floating-Point Math

FPU Matrix Optimizations

Which Array Declaration Is Best

Optimizing with Assembly

17 Interfacing to C

Inline Assembly

Inline Assembly Example

Linking Separate Modules

Calling Conventions

Full C-to-Assembly Templates

Examples of Calling Assembly Routines from C

Using the Extended PROC directive


Fastcall Registers

Timing C Code

18 Protected-Mode Programming

Introduction to Protected Mode

DPMI, DOS Protected-Mode Interface

Protected-Mode Segments

Converting Code to Protected Mode

Mixed 16-Bit and 32-Bit Protected-Mode Programming

Full Segment Definitions

Protected Mode Timing

32-bit Protected-Mode Code Template

Large Data Segments

Timing 32-Bit Code

Cloaking Developers Toolkit

19 Final Notes and Optimizations

Speed vs. Code Size

LEA, the Multi-purpose Instruction

Code and Data Alignment

Local Stack Variables

Measuring and Correcting the Data Misalignment Penalty

Code Alignment

Further Reading

Where We've Been

VI PowerPC vs. Pentium 20

20. Power PC VS. PENTIUM

What Is RISC

What Is CISC

What Is RISC, Really

Which Is Better, RISC or CISC

Is the Pentium RISC or CISC

Superscalar Processors

Superscalar Techniques and Terminology

What Is in the PowerPC

Is the PowerPC Less Expensive

Future Processor Designs


A Instruction Set Reference

Part I

Part II

B Optimization Cross-Reference by Instruction

C Optimization Guidelines by CPU






D Simple Instructions for Pentium Pairing

E Instruction Pairing Rules for Pentium

F Single-Byte Instructions

Pairable One-byte Instructions

Non-pairable One-byte Instructions

Prefix Bytes

G Quick Reference for Important Instruction Timings

Important Combinations for the Pentium

H Undocumented Pentium Registers

I Debug32 Command Summary

New Instructions

J Improving Performance

Other Pentium-class Machines

K Glossary of Terms

L Products Mentioned



No. of pages:
© Academic Press 1995
Academic Press
eBook ISBN:

About the Author

Michael L. Schmit

Ratings and Reviews