Coal 4
Coal 4
Coal 4
1 Lecture # 4
Registers, Memory Segmentation
Intel 8086
University of Gujrat
Organization of the
2
8086/8088 Microprocessors
8086/8088 had a simplest structure and provided the basic instruction
set for the other Intel processors
University of Gujrat
3 History
Intel did release some 4-bit microprocessors but the first meaningful
processor was Intel 8080 – an 8-bit processor
Intel introduced its 16-bit microprocessor Intel 8086 in 1978
Intel introduced its 8088 microprocessor in 1979 which has a slower
clock rate than Intel 8086
IBM chose Intel 8088 for original PC because it was less expensive
to build a computer around Intel 8088 than Intel 8086
IBM PC became very popular due to its open architecture and easily
available information
University of Gujrat
4
Introduction
University of Gujrat
5
Registers
University of Gujrat
6 Intel 8086/8088 Registers
University of Gujrat
7 Data Registers
AX, BX, CX, DX
These four 16-bit registers are available to programmers for general data
manipulations. (also called General Purpose Registers)
Instructions are processed faster if data is stored in registers
The high and low bytes of the data registers can be accessed separately
16-bit
AX
AH AL
8-bit 8-bit
University of Gujrat
8 Special Attributes of General Purpose Registers
AX (Accumulator Register)
Fastest for arithmetic operations. Some math instructions only use AX.
BX (Base Register)
This register can hold an address of a procedure or variable. BX can also
perform arithmetic and data movement.
CX (Counter Register)
This register acts as a counter for repeating or looping instructions
DX (Data Register)
This register has a special role in multiply and divide operations. In
multiplication it holds the high 16 bits of the product. In division it holds
the remainder. Its also used in I/O operations.
University of Gujrat
Segment Registers
9
Segment registers are used as base locations for program
instructions, data, and the stack.
University of Gujrat
10
Segment Registers
CS (Code Segment)
Holds the base location of all instructions in a program
DS (Data Segment)
Holds the default base location for variables. It is used by the CPU to
calculate the variable location.
SS (Stack Segment)
Contains the base location of the stack.
ES (Extra Segment)
This is an additional base location for memory variables.
University of Gujrat
11
Segment Registers
University of Gujrat
Index Registers
12
Index registers contain the offsets of data and instructions.
University of Gujrat
13 Index Registers
SP (Stack Pointer)
Contains the offset from the top of the stack. The complete top of stack
address is calculated using the SP and SS registers.
BP (Base Pointer)
Used to access data on stack. However, unlike SP, we can also use
BP to access data in the other segments.
SI (Source Index)
Used to point to data in memory. Named because this is the index
register commonly used as the source in string operations
DI (Destination Index)
Commonly used as the destination in string operations
University of Gujrat
14
Data Pointers
University of Gujrat
15
Stack Pointer
University of Gujrat
Instruction Pointer
16
Contains the offset of the next instruction. The IP and CS registers combine to form the
complete address
University of Gujrat
17
Instruction Pointer
University of Gujrat
18 Instruction Pointer
University of Gujrat
19
Segmented Memory Model
University of Gujrat
20 Background
In earlier processors like 8080 and 8085 the linear memory model
was used to access memory
8080 and 8085 could access a total memory of 64K using the 16
lines of their address bus
Now, designing for the new processor, designers wanted to remain
compatible with 8080 and 8085 however 64K was too small !
There are three logical parts of our program, the code data and the
stack. These three logical parts of a program should appear as three
distinct units in memory.
University of Gujrat
21
University of Gujrat
22
Memory Segment
A memory segment is a block of 216 consecutive memory byte
Each segment is identified by a segment numbers
Within a segment memory location is specified by given offset (16-
bit)
University of Gujrat
23 Physical Address Calculation
Segment Register
+ Memory
Segment
Offset Register
University of Gujrat
24
Physical Address Calculation
16-bit segment 16-bit offset
0000 + 0000
20-bit segment 20-bit offset
University of Gujrat
20-bit Physical Address
25
Example
A4FB : 4872
Formula: Physical Address = Segment x 10h + offset
A4FB0h
+
04872h
A9822h
University of Gujrat
26
THE END
University of Gujrat