Sunteți pe pagina 1din 153

The Intel Microprocessors

--from 8086 to Pentium Architecture, Programming and Interfacing


Teach by Zuohang ( ) College of Software 2003-8

E-mail :

zuohang@263.net
Phone:

66860994

Content Arrangement Reference book Final score

1. Architecture

2. Programming

3. Interfacing

Memory

CPU
1. Architecture

3. Interfacing

Printer

2. Programming

I/O

1. Architecture 1.1 The architecture of CPU 1.2 Addressing modes

Internal Microprocessor Architecture AH (AX) AL EAX


DR EBX ECX EDX PR IR ESP EBP EDI ESI BH (BX) BL CH (CX) CL DH (DX) DL
SP BP DI SI

Accumulator Base index Count Data Stack pointer Base pointer Destination index Source index

Internal Microprocessor Architecture


EIP EFLAGS Special purpose registers
IP

Instruction pointer Flags Code Data Extra Stack

FLAGS CS DS ES SS FS

Segment registers

GS

1. Architecture

2. Programming

3. Interfacing

2. Programming
2.1 Data movement instructions 2.2 Arithmetic and logic instructions 2.3 Program control instructions

program
.DATA NUM DB 34H TABLE DW 0012H,0033H,5687H .CODE .STARTUP MOV BX,OFFSET TABLE MOV AX,[BX+4] MOV CX,88H MUL CX CMP AX,2000H JAE NEXT OUT AX,P8 .EXIT END

Application languages /application program High-level languages /compiler &interpretative program Assembly language/ assembly program
Keyboard command and system primitive / operating system Machine instruction system/ CPU

1. Architecture

2. Programming

3. Interfacing

3. Interfacing
1 8088/8086 hardware specifications 2 Memory interface 3 Basic I/O interface 4 Interrupts 5 Direct memory access and DMA-controlled I/O

8088 hardware specifications

Memory interface

Content Arrangement Reference book Final score

request
Familiar with
Addressing mode programming with assembly language interfacing of microprocessor

What we can do after learning this


Programming in assembly language in certain real-time system ,memory limited system or embedded system Design interfacing and writing drivers

Content Arrangement Reference book Final score

Reference Books
IBM-PC
The 80x86 IBM PC and Compatible Computers (Volumes I & II): Assembly Language, Design, and Interfacing (4th Edition)

Reference Lessons
Operating system Computer architecture

Content Arrangement Reference book Final score

Final Exam: 70% Homework & Attendance:30%


This may be revised according to the needs.

Now lets begin our exploration in microprocessor.

Chapter 1
Introduction to The Microprocessor and PC

Chapter 1:
1. What mankind has done before the microprocessor finally came out?

2. How many parts are there in the microprocessor ?

Chapter 1: Introduction to The Microprocessor and PC


1.1 A Historical Background 1.2 PC Based on Microprocessor

1.1 A Historical Background

1.1 A Historical Background


A. The Mechanical Age
Abacus (Babylonians) Analytical engine (Babbage, punched cards, 1823,failure)

1.1 A Historical Background


B. The Electrical Age
Motor-driven adding machines, based on mechanical calculator (Hollerith, set up IBMInternational Business Machines Corporation) First electronic calculating machine Z3 (German, Konrad Zuse,1942) The first general-purpose, programmable electronic computer ENIAC (University of Pennsylvania, 1946)

ENIAC Electronic Numerical Integrator And Calculator [Computer]

ENIAC

ENIAC

ENIAC

1.1 A Historical Background


C. The Microprocessor Age (Intel)
Date Part Data Bus Memory Size Width

1979 1989 1993 1997

4004 8088 80486sx Petium Petium II

4 8 32 64 64

1M 4G+16kcache 4G+16kcache 64G+32kl1 cache+512kl2c ache

Intel 4004

Intel 8088

Intel Petium

Intel Petium II

The Moores Law:

the number of transistors integrated in a chip will double very 18 or 24 mouths

1.1 A Historical Background


D. The Future of Microprocessors
The process speed will get more faster The memory will get more large The bulk will get more smaller The width of data bus will increase Architecture will get more efficient

1.2 PC Based on Microprocessor

Question: If we use a computer to figure out an arithmetic expression, how can it finish this work? 133*33+44*14

1.2 PC Based on Microprocessor

133*33+44*14

1.2 PC Based on Microprocessor

First input these numbers. Do the calculating work. Store The result Output the result.

Control this processing.

133*33+44*14
Input device

1.2 PC Based on Microprocessor


calculator Output device

memory

data bus Control bus controller

1.2 PC Based on Microprocessor


Address bus Microprocessor Memory Interface Control bus External devices
BUS definition p25

Data bus

Bus: P25

1.2 PC Based on Microprocessor

Address bus requests a memory location from the memory or an I/O location from the I/O devices. Data bus transfers information between the microprocessor and its memory and I/O address space. Control bus contains lines that select the memory or I/O and cause them to perform a read or write operation.

1.2 PC Based on Microprocessor

P25

1.2 PC Based on Microprocessor

1.2 PC Based on Microprocessor A. Relationship Figure


microprocessor PC ALU controller register internal memory I/O interface I/O Devices & external memory system software application software power panel pc frame, etc

PC system

Chapter 2
Introduction to Number System & Data Formats

Chapter 2: (-133)*33+44*14.5

How to represent these data? How to calculate them? How about other characters?

Chapter 2: Introduction to Number System & Data Formats

2.1 Number System ( ) 2.2 Computer Data Formats

2.1 Number System ( )

2.1 Number System ( )


Binary 101 (1) 1 0 1 power( ) 22 21 20 (2) weight( )4 2 1 Numeric value 1* 22 + 0* 21 + 1* 20 =5 (3)

2.1 Number System( )


2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 Digits () Positional Notation ( Conversion to Decimal Converting From Decimal Binary-Coded Hexadecimal Operation of Binary Three Forms of Binary Data

2.1.1 Digits ( )

2.1.1 Digits ( )
A. Decimal( ) (09) B. Binary (0----1) C. Octal( ) (07) D. Hexadecimal( ) (09,A,B,C,D,E,F)

2.1.1 Digits ( )
Example: A base 13( 13 13 )number contains 13 digits: 09,A(10),B(11),C(12)

2.1.2 Positional Notation (

2.1.2 Positional Notation (


Example 1: Decimal 132 1( ) 3( ) 2( ) hundreds tens units position position position

power( ) 102 101 100 weight( )100 10 1 In a base N number system, the radix is N( ) and the exponent (i) ( ) means the position.

2.1.2 Positional Notation ( Example 2: Binary 101 1 0 1 power( ) 22 21 20 weight( )4 2 1 Numeric value 1* 22 + 0* 21 + 1* 20 =5 In a base 2 number system, the radix is 2( ) and the exponent (i) ( ) means the position.

2.1.2 Positional Notation ( Special example Binary 1111 1 1 1 1 power( ) 23 22 21 20 weight( ) 8 4 2 1 Numeric value 8+4+2+1 =15 0-15 It can represent 16 different numbers.

2.1.2 Positional Notation (

Example 3: Decimal 1.025 1 . 0 2 5 power( ) 100 10-1 10-2 10-3(Ni) weight( )1 0.1 0.01 0.001 In a base N number system, the radix is N and the exponent (i) ( ) means the position. If the position is right to the point( ),the power is negative (N-i).

2.1.2 Positional Notation (


Summarize
A base N number system

Xm Xm Xm X0 . Y1Y2Y3Yn -1 -2 -3
Numeric value( ):
-1 -2 Xm * Nm +Xm * Nm + X0 * N0 -1 -2

+Y1 *N-1 +Y2 *N-2 + Yn * N-n

2.1.3 Conversion to Decimal

2.1.3 Conversion to Decimal


Example: Hexadecimal: E6A.C2 Decimal: E*162+6*161+6*160+C*16-1+2*16-2 =14*162+6*161+6*160+12*161 +2*16-2 =3690+0.75+0.0078125 =3690.7578125

2.1.4 Converting From Decimal

Summarize

2.1.4 Converting From Decimal


Xm-1Xm-2Xm-3X0 . Y1Y2Y3Yn

A base N number system

Decimal

Xm-1* Nm-1+Xm-2 * Nm-2+ X0 * N0 +Y1 *N-1 +Y2 *N-2 + Yn * N-n

From conversion to decimal we can assume that if we can figure out how many Ni are there in a decimal number, we may convert it back to a base N number system.

2.1.4 Converting From Decimal

Principle A: To convert a decimal whole number portion( ) to another number system, divide by the radix N ( ) and save the remainders( ).

2.1.4 Converting From Decimal

Principle A:

2.1.4 Converting From Decimal


Step 1: Divide the decimal number by

the radix (number base).


Step 2: Save the remainder (first

remainder is the least significant digit )


Step 3: Repeat steps 1 and 2 until the

quotient( ) is zero.

2.1.4 Converting From Decimal Principle A:


Example convert decimal number 14 to a base 4 number system

4 4

14 3 0

remainder = 2 remainder = 3 result = 32

(least significant)

2.1.4 Converting From Decimal Principle A:


Example convert decimal number 14 to a base 2 number system

2 2 2 2

14 7 3 1 0

remainder = 0 remainder = 1 remainder = 1 remainder = 1 result = 1110

(least significant)

Principle B: To convert a decimal fractional portion( ) to another number system, multiply it by the radix ( ) and the whole number portion( ) of the result is saved as a significant digit of the result.

2.1.4 Converting From Decimal

Principle B:

2.1.4 Converting From Decimal


Step 1: Multiply the decimal fraction by the radix (number base) Step 2: Save the whole number portion of the result (even if zero) as a digit. The first result is written immediately to the right of the radix point ( ). Step 3: Repeat 1 and 2 until the fraction part of step 2 is zero

2.1.4 Converting From Principle B:Decimal


Example convert decimal number 0.125 to a base 4 number system

.125 * 4 0.5 0.5 4 2.0

digit is 0

digit is 2

result is 0.02

2.1.4 Converting From Decimal Principle B:


Note: Some numbers are never-ending . That is, a zero is never a remainder. For example converting 0.15 to a base 4 number system. Why ?

Example: convert 0.15 to a base 4 number system.


.15 * 4 0.6 0.6 4 result is digit is 0 * 0.4 4 1.6 digit is 1

2.1.4 Converting From Decimal

2.4 digit is 2 0.0212

0.0212

2.1.4 Converting From Decimal

Numeric value: 0*4-1 + 2*4-2 + 1*4-3 + 2*4-4 =0 + 0.125 + 0.015625 + 0.0078125 = 0.1484375 0.15

When converting to decimal


A base N number system

2.1.4 Converting From Decimal


0 . Y1Y2Y3Yn

Decimal

Y1 *N-1 +Y2 *N-2 + Yn * N-n So it means that numerical value wont exist exactly in a base N number system. But we can find one close to it .

2.1.5 Binary-Coded Hexadecimal

2.1.5 Binary-Coded Hexadecimal


How many different numbers can 4 binary numbers form ?

2.1.5 Binary-Coded Hexadecimal BCH code

hexadecimal digit 0 1 2 3 4 5 6 7 8 9 A B C D E F 9E = 1001 1110 BCH code 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

BCD

2.1.5 Binary-Coded Hexadecimal (BCH)

BCH is used to represent hexadecimal data in binary code. Each hexadecimal digit is represented by a 4-bit binary number. Each BCH digit is separated by a space.

2.1.5 Binary-Coded Hexadecimal


Principle:
We just use 4-bit binary to replace each hexadecimal digit and write down them in the same sequence. Note that there must be a space between each 4-bit binary.

2.1.5 Binary-Coded Hexadecimal


Example:
Hexadecimal :2 A C . 5 BCH :0010 1010 1100 . 0101

BCH Hexadecimal B

:0010 1110 . 0101 1011 : 2 E . 5

2.1.6 Operation of Binary


All the numbers are unsigned.

2.1.6 Operation of Binary


In the above sliders we have discussed about binary, hexadecimal and decimal data. At the same time we learned the conversion between them. Now we will put our focus on the arithmetic operation of binary data. We take it for granted that all the data is unsigned.

2.1.6 Operation of Binary


Add Operation Rules: 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 0 submit( ) 1 1+1+1 = 1 submit( ) 1

2.1.6 Operation of Binary


Add Operation 1101 + 1011
1111 1101 + 1011 11000 submit bit add bit added bit result

2.1.6 Operation of Binary


Subtract Operation Rules 0-0 = 0 1-1 = 0 1-0 = 1 0-1 = 1 borrow( ) 1 Binary addition and subtraction get the same results on the unit position

2.1.6 Operation of Binary


Subtract Operation 11000100 00100101 111111

( )

1011101 ( ) 11000100 ( ) -00100101 ( ) 10011111

2.1.6 Operation of Binary


Multiply Operation Rules 0*0 = 0 0*1 = 0 1*0 = 0 1*1 = 1

2.1.6 Operation of Binary


Multiply Operation 1111 * 1101
1111 * 1101 1111 0000 1111 1111 11000011

2.1.6 Operation of Binary


Divide Operation
101 000111 100011 101 01111 101 101 101 0 101 101 100101 101 10001 101 111 101 10

2.1.6 Operation of Binary


All the numbers are unsigned , so they are positive.

How can we represent negative number in binary in a computer?

2.1.7 Three Forms of Binary Data

Signed data can be represented in three forms.


Sign magnitude( ) Radix-1 complements ( ) Radix complements ( )

2.1.7 Three Forms of Binary Data

We use byte-sized data in our examples.

2.1.7 Three Forms of Binary Data Sign magnitude ( )


0 0 0 0 0 0 0 0
0 positive 1 negative

Numerical value (-127~+127)

105 ---- 0 1101001 -105 ---- 1 1101001

Radix-1 complements ( ) A. positive Radix-1 complements is the same as sign magnitude . B. negative Represent the data in original form, then invert each bit of the number from 0 to 1 or from 1 to 0. The sign position is always 1.

2.1.7 Three Forms of Binary Data

sign magnitude ( ) 105 ---- 0 1101001 -105 ---- 1 1101001

2.1.7 Three Forms of Binary Data

Radix-1 complements ( ) 105 ---- 0 1101001 -105 ---- 1 0010110 0 ---- 0 0000000 -0 ---- 1 1111111

2.1.7 Three Forms of Binary Data

Radix complements ( ) A. Positive Radix complements is the same as sign magnitude . B. negative If we add 1 to the least significant bit of the radix-1 complements, then we get radix complements. The sign position is always 1.

2.1.7 Three Forms of Binary Data


Radix complements ( )
radix-1 complement complement 105 0 1101001 -105 1 0010110 0 0 0000000 -0 1 1111111 radix 0 1101001 1 0010111 0 0000000 0 0000000

Example: -8 +8=00001000 1000 (write number to first 1) 1111 (invert the remaining bits) -8= 1111 1000

2.1.7 Three Forms of Binary Data

25

2.1.7 Three Forms of Binary Data

25 0001 1001 25 1110 0111 39 39 0010 0111 39 1101 1001

Negative signed numbers are stored in the twos complement form. ( 2 ) A simpler technique for twos implement:
Write the number exactly as it appears from right to left until the first one. Write down the first one, and then invert all the remaining bits.

2.1.7 Three Forms of Binary Data

If we use radix complement to represent a negative data, we can change subtract operation to add operation. Z = X Y equal to Z =X + (Y)

2.1.7 Three Forms of Binary Data

2.1.7 Three Forms of Binary Data


64-10 = 64 + (-10) 64 = 01000000 + 01000000 11110110 100110110 (-10) =11110110

Z = X Y equal to Z =X + (-Y) Example 1: 64 -10

(right) result = 00110110 = 54

Nature lost

2.1.7 Three Forms of Binary Data Example 2: 34-68


34-68 = 34 +( -68) ( -68) =10111100 34 =00100010
+ 00100010 10111100 11011110

result = 11011110 = -34(right)

11011110( )= 11011101( ) = - 00100010( ) =-34

-1

10001101( ) = 10001100( ) = 01110011( ) =-115

The example shows that our test Z = X Y equal to Z =X + (-Y) is right, but why? The number of hour in a clock is 12. So we say the hour is mode 12. Suppose its 10 oclock, if we turn the hand 8 hour clockwise, we get 6 oclock. If we turn the hand 4 hour anticlockwise , we get 6 oclock too.

2.1.7 Three Forms of Binary Data

If Z = nK + Y (n integer) Then Z and Y has the same mode to K. (the above example K = 12, Z = -4, Y=8) So for a certain mode K, subtracting Y from X (Y<K) equals to adding (-Y+K). , X Y (Y<K) ,

2.1.7 Three Forms of Binary Data

You can turn to the reference book Microcomputer Principle and Application page 9 for details.

2.1.7 Three Forms of Binary Data

2.1.7 Three Forms of Binary Data


64-10 = 64 + (-10) 64 = 01000000 + 01000000 11110110 100110110 (-10) =11110110

Z = X Y equal to Z =X + (-Y) Example 1: 64 -10

(right) result = 00110110 = 54

Nature lost

2.1.7 Three Forms of Binary Data Example 3: 127 +8


127= 01111111 01111111 + 00001000 10000111
Overflow Error!

8=00001000

result = 135


O = 1( O 1 C=1, C 0 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0

O=1 C=0


O = 1( O 1 C=1, C 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 11 0 1 0 1 0 1 0

O=0 C=1


O = 1( O 1 C=1, C 0

0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0
+0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 O=0 C=0


O=1 O=1 C=1, C=0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0

O=1 C=0

2.2 Computer Data Formats

2.2 Computer Data Formats


2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 ASCII Data BCD Data Byte-Sized Data Word-Sized Data Doubleword-Sized Data Real Numbers

2.2.1 ASCII Data

2.2.1 ASCII Data


ASCII (American Standard Code for Information Interchange) represent alphanumeric characters in the memory of a computer system. ASCII use 8-bit(00HFFH) represent alphanumeric characters in computer.

2.2.1 ASCII Data


Table 1-7 on page 35 shows what is 00H7FH representing. Table 1-8 on the same page shows extended ASCII code. Including what is 8FHFFH representing. How to represent characters in other countries?

2.2.1 ASCII Data


Many Windows-based applications use the Unicode system to store alphanumeric data and thus resolve the problem. Unicode system use 16-bit data to represent character. 0000H00FFH is the same as ASCII code 0100HFFFFH is used to store other special characters from other countries.

2.2.2 BCD

Data

2.2.2 BCD
BCD code
decimal digit 0 1 2 3 4 5 6 7 8 9

Data
BCD code 0000 0010 0100 0110 1000

0001 0011 0101 0111 1001

1MB 1M BYTE

8 Bit 8 Bit

2.2.2 BCD

Data

BCD data has two forms. One is packed and the other is unpacked. In all case, store the least-significant data first.( : ) Packed BCD data are stored as two digits per byte 37-----0011 0111-----37H Unpacked BCD data are stored as one digit per byte 37-----0000 0011 0000 0111 -----0307H

2.2.3 Byte-Sized Data

2.2.3 Byte-Sized Data


The weights of each binary-bit position Unsigned byte 128 64 32 16 8 Signed byte -128 64 32 16 8 4 2 1

Radix complements ( ) -1 -2 -3 -4 -127 -128 1111 1111 1111 1111 1111 1110 1101 1100

1000 0001 1000 0000

2.2.3 Byte-Sized Data


One byte contains 8 bits. Byte-sized data are stored as unsigned and signed integers. Unsigned integers range in value from 00H to FFH (0-255) Signed integers range in value from -128 to +127.

2.2.3 Byte-Sized Data


Example of defining a byte-sized data:
unsigned
0000 FE 0001 87 0002 47 Signed 0003 9C 0004 64 All the data DATA1 DB 254 formats are DATA2 DB 87H based on a DATA3 DB 71 8088 microproces sor, whose DATA4 DB -100 data width DATA5 DB +100 is 8 bits. Store value

Store address

2.2.4 Word-Sized Data

2.2.4 Word-Sized Data


One word contains 16 bits. That is it is formed with two bytes of data. Word-sized data are stored as unsigned and signed integers. The difference between them is the weight of the highest position. For unsigned integers it is 32768 while signed is -32768.

2.2.4 Word-Sized Data


In Intel microprocessor, the least significant byte is stored in the lowestnumbered memory location, and the most significant byte is stored in the highest-numbered memory location. Memory width :
8 bit

DATA DW 1234H
3002H 3001H 3000H 2FFFH 12H 34H

2.2.4 Word-Sized Data


Example: Unsigned
0000 09F0 DATA1 DW 2544 0002 87AC DATA2 DW 87ACH 0004 02C6 DATA3 DW 710 Signed 0006 CBA8 DATA4 DW -13400 0008 00C6 DATA5 DW +198

2.2.5 Doubleword-Sized Data

2.2.5 Doubleword-Sized Data


One doubleword contains 32 bits. That is it is formed with two words or four bytes of data. Doubleword-sized data are stored as unsigned and signed integers. The difference between them is the weight of the highest position.

2.2.5 Doubleword-Sized Data


In Intel microprocessor, the least significant byte is stored in the lowestnumbered memory location, and the most significant byte is stored in the highest-numbered memory location. DATA DD 12345678H
3003H 3002H 3001H 3000H DATA DD 5678H ???

12H 34H 56H 78H

2.2.5 Doubleword-Sized Data


Example :

Unsigned
0000 0003E1C0 0004 87AC1234 0008 00000046 Signed 000C FFEB8058 0010 000000C6 DATA1 DD 254400 DATA2 DD 87AC1234H DATA3 DD 70 DATA4 DD -1343400 DATA5 DD +198

2.2.5 Doubleword-Sized Data


Note Byte-sized, word-sized, doubleword-sized data are standard form. We can use DB to define those nonstandard data. Example : Define 123456H DB 56H,34H,12H What is the difference? DD 123456H

2.2.6 Real Numbers

2.2.6 Real Numbers


In high-level language we often encounter number like 24.5. We call it real number or floating-point number( ). As we have noticed, 24.5 (2.45*101) contained two parts: significand ( ) and exponent ( ). 4-byte real number is called singleprecision and 8-byte double-precision.

2.2.6 Real Numbers


Single-precision using a bias of 7FH S Exponent Significant
31 30-23 22-0

Double-precision using a bias of S Exponent Significant 63 62-52 51-0 3FFH

2.2.6 Real Numbers


The exponent is stored as bias exponent. For single-precision: bias exponent = exponent + 7FH For double-precision: bias exponent = exponent + 3FFH

2.2.6 Real Numbers


Table 1.10 single-precision number(P41) decimal binary normalized sign Biased +12 1100 1.1*23 0
significant

exponent

100 0000 0111,1 0000 0000 111+11 0000 0000H

-12

1100 -1.1*23

+100 11001 1.1001*26 0 00

100000 10 011111 100 1000 0000 0000 11+110 0000 0000H

2.2.6 Real Numbers


Define single-precision data(32 bit)
DD / REAL4

Define double-precision data(64 bit)


DQ / REAL8

Define extended precision data


REAL10

2.2.6 Real Numbers


Examples:
Single-precision
0000 3F9DF3B6 NUMB1 DD 1.234 0004 C1BB3333 NUMB2 REAL4 -23.4

Double-precision
0008 405ED9999999999A NUMB3 DQ(REAL8) 123.4

Extended-precision
0010 4005F6CCCCCCCCCCCCCD NUMB4 REAL10 123.4

2.2.6 Real Numbers


Two exceptions to the rules for floating-point numbers. 0.0 is stored as all zeros. Positive infinity. Negative infinity.
S 1
Exponent 30-23 (ALL ONES)

S 0 S 0

Exponent 30-23 (ALL 0) Exponent 30-23 (ALL ONES)

Significant 22-0 (ALL 0) Significant 22-0 (ALL ZEROS) Significant 22-0 (ALL ZEROS)

S-ar putea să vă placă și