0% found this document useful (0 votes)
53 views

Software Architecture of The 8088/8086 Microprocessors

The document discusses the software architecture and components of the 8088/8086 microprocessors. It describes the pipelined execution model and details the memory address space, data types, registers, and status flags. Specifically, it covers the execution and bus interface units, software model, memory organization, data representation such as integers and BCD, dedicated memory locations, general purpose registers including data, pointer, and index registers, and the status or control flags register.

Uploaded by

nitish1435
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views

Software Architecture of The 8088/8086 Microprocessors

The document discusses the software architecture and components of the 8088/8086 microprocessors. It describes the pipelined execution model and details the memory address space, data types, registers, and status flags. Specifically, it covers the execution and bus interface units, software model, memory organization, data representation such as integers and BCD, dedicated memory locations, general purpose registers including data, pointer, and index registers, and the status or control flags register.

Uploaded by

nitish1435
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Chapter 2

Software Architecture of the 8088/8086


Microprocessors

Pipelined architecture of the 88/86 microprocessors


3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 1
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Execution and bus interface units‬‬
‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪2‬‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪2.2 Software Model of the 88/86 Microprocessors‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪3‬‬


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.3 Memory
y Address Space
p and Data Organization
g

Storing a word in memory


What is the word in (b) in Hex?

Memory
3/13/2010 address space‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 4
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Little Endian vs Big Endian‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪5‬‬


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪History of Little Endian vs Big‬‬
‫‪Endian‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪6‬‬


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
Aligned and misaligned data word
3/13/2010 Is
‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ the word stored in (b) aligned
7 ?
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Aligned and misaligned‬‬
‫‪3/13/2010‬‬
‫‪double words of data‬‬
‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪8‬‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪3/13/2010‬‬ ‫ﮔﺮﻣﺴﺎر ‪Storing‬‬
‫‪double‬‬ ‫‪word‬‬
‫داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ‬ ‫‪ in‬ﺧﺎﻧﯽ ‪-‬‬
‫‪ memory‬هﺎدﯼ‬ ‫‪9‬‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
Example:
How should the pointer with segment base address equal to
A000H and offset address 55FFH be stored at an even
even-
address boundary at 0008H?
Is the double word aligned?

3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 10


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.4 Data Types

Unsigned byte integer


0 - 255

Unsigned word integer


0 – 65,535

3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 11


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪-128 - +127‬‬

‫‪-32,768‬‬
‫‪32 768 - +32,767‬‬
‫‪+32 767‬‬

‫‪Signed integers‬‬
‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪12‬‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Unpacked BCD‬‬

‫‪Packed BCD‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪13‬‬


‫)‪Binary Coded Decimal (BCD‬‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
Example:
The packed BCD data stored at byte address 01000H
equals 100100012. What is the two-digit
two digit decimal
numbers?

100100012 =1001BCD 0001BCD = 9110

3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 14


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
American Standard Code for Information Interchange
ASCII

3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 15


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.6 Dedicated, Reserved, and General use Memory

Some address locations have dedicated functions and should not be used as
general memory for storage of data or instructions of a program

128 Bytes

3/13/2010
1MB=1,048,576
‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
16
2.8 Data Registers

• Normally used for storing temporary results


• Each of the registers is 16 bits wide (AX,
(AX BX,
BX CX,
CX DX)
• Can be accessed as either 16 or 8 bits AX, AH, AL
3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 17
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪18‬‬
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.9 Pointer and Index Registers

•All 16 bits wide, L/H bytes are not accessible


•Used as memory pointers
• Example: MOV AH, [SI]
Move the byte stored in memory location whose address
is contained in register SI to register AH
•IP is not under direct control of the programmer
3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 19
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.10 Status Register (Control Flags)

• Six of the flags are status indicators reflecting properties of the last
arithmetic or logical instruction.
• For example, if register AL = 7Fh and the instruction ADD AL,1
i executed
is t d th
then th
the ffollowing
ll i h happen
AL = 80h
CF = 0; there is no carry out of bit 7
PF = 0; 80h has an odd number of ones
AF = 1; there is a carry out of bit 3 into bit 4
ZF = 0; the result is not zero
SF = 1; bit seven is one
OF = 1; the sign bit has changed
• Can be used to transfer program control to a new memory location;
for example:
p ADD AL,1
,
JNZ 0100h
3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 20
‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.11 Ge
Generating
e at g A Memory
e o y Address
dd ess
• Addresses within a segment can range from address 0 to address
FFFFh. This corresponds to the 64Kbyte length of the segment
• An
A address
dd within ll d an offset
ithi a segmentt iis called ff t or logical
l i l address
dd

3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 21


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Example:‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪22‬‬


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
2.12 The Stack

•The stack is used for temporary storage of information such as data or


addresses; for instance when a CALL is executed the 8088
automatically PUSHes the current value of CS and IP onto the stack.
• Other registers can also be pushed
• Before return from the subroutine, POP instructions can be used to pop
values back from the stack into the corresponding registers

3/13/2010 ‫ داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬- ‫هﺎدﯼ ﺧﺎﻧﯽ‬ 23


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Example for PUSH‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪24‬‬


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬
‫‪Example for POP‬‬

‫‪3/13/2010‬‬ ‫هﺎدﯼ ﺧﺎﻧﯽ ‪ -‬داﻧﺸﮕﺎﻩ ﺁزاد اﺳﻼﻣﯽ ﮔﺮﻣﺴﺎر‬ ‫‪25‬‬


‫زﺑﺎن ﻣﺎﺷﻴﻦ و اﺳﻤﺒﻠﯽ‬

You might also like