Ch# 03: Organization of the IBM Personal computers
The Intel 8086 family of microprocessors:
The IBM personal computer family consists of the IBM PC, XT, PC AT, PS/1 AND PS/2
models.
They are all based on the Intel 8086 family of microprocessors.
8086 microprocessor family includes: 8086, 8088, 80186, 80188, 80286, 80386, 80386SX,
80486 and 80486SX.
1. The 8086 and 8088 Microprocessors:
Intel introduced the 8086 in 1978
It is the first 16-bit Microprocessor designed by intel
The 8088 was introduced in 1979
Internally both 8086 and 8088 are same but externally the 8086 has a 16-bit data
bus while the 8088 has an 8-bit data bus.
The 8086 has a faster clock rate, and thus its performance is better.
8088 is less expensive that’s why IBM chose 8088 over 8086 for the original PC.
The 8086 and 8088 has same instruction set (basic sets)
Addressable memory: 1 MB
8088 is used in PC, and PC XT
2. The 80186 and 80188 Microprocessors:
The 80186 and 80188 are enhanced version of 8086 and 8088
The advantage of the 80186 and 80188 is that they combine on a single chip 15–
20 of the 8086–8088 series system components
They can also execute some new instructions called the extended instruction set.
There are no significant advantages of these microprocessor and were soon
overshadowed by the development of 80286.
Used in some PC-compatible laptop models.
3. The 80286 Microprocessor:
It was introduced in 1982.
It is also a 16-bit microprocessor
It can operate faster than 8086 (12.5 MHz versus 10 MHz)
It has more addressable memory (16 MB)
It can execute too large programs
Can perform 2 modes of operation: Real address mode and protected virtual
address mode.
In real address mode it behaves like the 8086 and programs for the 8086 can be
executed
In Protected mode the 80286 supports multitasking and memory protection
Used in PC AT, AND PS/1
Multitasking: Ability to execute several programs at same time.
Memory Protection: Ability to protect memory used by one program from the action
of another program.
4. The 80386 and 80386SX Microprocessor:
Introduced in 1985
It is a 32-bit Microprocessor
Much faster than 80286
High clock rate (up to 33 MHz)
Can operate real and protected mode
In real mode it behaves like an 8086
In protected mode, it can emulate 80286, can address 4 GB of physical memory
and 64 TB of virtual memory
It also has virtual 8086 mode designed to run multiple 8086 applications.
The 80386SX is same as 80386 but it has only 16-bit data bus.
5. THE 80486 and 80486SX Microprocessor:
Introduced in 1989
32-bit microprocessor
Fastest and most powerful processor in the family
It incorporates the functions of the 386 together with those of other support
chips.
Other support chips include 80387 numeric processors, which performs floating
point number operations and 8 KB cache memory that serves as fast memory area
to buffer data.
It is 3 times faster than 80386.
80486SX is similar to 80486 but without the floating point processor
REGISTERS:
Registers are fastest storage area / location OR Registers are record or collection of information.
Registers are quickly accessible by CPU as they are built into CPU.
In 1971 intel 4004 develop a chip. This is the first CPU which was launched in 1971 in this CPU
registers used for the 1st time it is develop by Federrico Faggin. He named it register because
registers are used to collect information.
Registers are classified according to the function they perform
Data registers: Hold data for an operation
Address Registers: Hold the address of an instruction or data
Status Register: Keeps the current status of the processor
Types of Registers:
The 8086 has 4 general data registers
1) The address registers are divided into Segment, Pointer and Index registers.
2) The Status registers is called the Flag register
In total there are 14 16-bit registers
1. Data registers: AX, BX, CX, DX
If the data are stored in registers, the instructions is faster. The high and low bytes of the
data registers can be accessed separately. The high byte of AX, BX, CX and DX are called
AH, BH, CH and DH. And the low bytes are called AL, BL, CL, DL.
AX (Accumulator Register) : it is used in arithmetic and logic operations also in taking
Input/output
BX (Base Register): holds address of data
CX (Count Register): counts how many times a program can run, used in loops
DX (Data Register): holds data for output, used in multiplication and division and also used
in I/O operations
2. Segment Registers:
Segments are specific areas defined in a program for containing data, code and stack
Memory Segment:
A memory segment is a block of 2^16 consecutive memory bytes
Segment is identified by a segment number starting with 0
A segment number is 16 bits
Highest segment number is FFFFh
A memory location is specified by giving an offset
With a 64-kb segment the offset can be given as a 16- bit numbers
Segment: offset address:
A memory location may be specified by providing a segment number and an offset,
written in a form segment :offset. This is known as logical address
TO understand how to find physical address and offset watch: https://youtu.be/SOaqoOQ7rqg
Program Segments:
A typical machine language programs consists of instructions (code or data.
There is also a data structure called the Stack.
The program’s code, data and stack are loaded into different memory segments
CS (Code segments): holds address of code segment
DS (Data segments): holds address of data segment
SS (Stack segments): holds address of stacks segment
ES (Extra Segment) : holds address of data segment
3. Pointer and Index Registers:
these registers normally point to memory location
unlike segment registers the pointer and index registers can be used in arithmetic
and other operations
SP (Stack pointer): points current top of stack
BP (Base pointer): used primarily to access data on the stack
SI (Source Index): points to memory locations
DI (Destination Index): same function as SI
4. Instruction Pointer:
IP holds the next instruction
IP is updated each time an instruction is executed so that it will point the next
instruction
The IP cannot be directly manipulated by an instruction
5. Flags Register:
The purpose of the flag register is to indicate the status of the microprocessor
It does this by setting of individual bits called flags
There are 2 kinds of flags
1) Status Flags: the status flags reflect the result of an instruction executed by
the processor
2) Control Flags: enable and disable certain operations of the processor
For better understanding of registers watch: https://youtu.be/aynfIm-QQVw