lecture # 1
DESCRIPTION
Lecture # 1. Microprocessor Based Systems. Topics to Cover:. Computer & Microprocessor Evolution of Intel Microprocessors (Main Influence on 8086/8088 µP) Involvement of IBM PC Semi-conductor Technology Evolution of Digital Computers Reprogrammable & Embedded µP Difference b/w µP and µC. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/1.jpg)
Lecture # 1
Microprocessor Based Systems
![Page 2: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/2.jpg)
Topics to Cover:
Computer & Microprocessor Evolution of Intel Microprocessors (Main Influence on 8086/8088 µP) Involvement of IBM PC Semi-conductor Technology Evolution of Digital Computers Reprogrammable & Embedded µP Difference b/w µP and µC
![Page 3: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/3.jpg)
Computer: A Computer is a programmable machine. The two principal characteristics of a computer are: i) It responds to a specific set of instructions in a well defined manner. ii) It can execute a prerecorded list of instructions (a program). Modern computers are electronic and digital . The actual machinery wires, transistors, and circuits is called hardware. the instructions and data are called software.
Computer & Microprocessor
![Page 4: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/4.jpg)
Microprocessor: A silicon chip that contains a CPU. In the world of personal computers, the terms microprocessor and CPU are used interchangeably. A microprocessor (sometimes abbreviated µP) is a digital electronic component with miniaturized transistors on a single semiconductor integrated circuit (IC). One or more microprocessors typically serve as a central processing unit (CPU) in a computer system or handheld device. Microprocessors made possible the advent of the microcomputer.
Computer & Microprocessor
![Page 5: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/5.jpg)
Microprocessor: At the heart of all personal computers and most working stations sits a microprocessor. Microprocessors also control the logic of almost all digital devices, from clock radios to fuel-injection systems for automobiles. Three basic characteristics differentiate microprocessors: i) Instruction set: The set of instructions that the microprocessor can execute. ii) Bus width : The number of bits processed in a single instruction.
Computer & Microprocessor
![Page 6: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/6.jpg)
Microprocessor: Clock speed : Given in megahertz (MHz), the clock Speed determines how many instructions per second the processor can execute. In both cases, the higher the value, the more powerful the CPU. For example, a 32 bit microprocessor that runs at 50MHz is more powerful than a 16-bit microprocessor that runs at 50MHz. In addition to bus width and clock speed, microprocessors are classified as being either RISC (reduced instruction set computer) or CISC (complex instruction set computer).
Computer & Microprocessor
![Page 7: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/7.jpg)
Microprocessor 4004: Date: Intel introduced its first Microprocessor in 1971. 4-Bit Microprocessor i.e. 4-Bit Central Processing Unit. Clock Speed: 108 KHz. Int. register width: 8 bit. Bus width: 4 bits. No. of Transistors: 2300. Min. feature size: 10 micron. Main memory size: 640 Bytes.
Evolution of Intel Microprocessors
![Page 8: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/8.jpg)
Microprocessor 8008, 8080 & 8085: Date: In 1974 second generation microprocessor was introduced. These devices were 8-bit microprocessors. They can talk in terms of 8-bits and they have answers for 8-bit data manipulation, data logics & calculations. Main memory size: 64K Bytes.
Evolution of Intel Microprocessors
![Page 9: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/9.jpg)
Microprocessor 8086: Date: In 1978, Intel introduced the 16-bit Microprocessor 8086. This processor is a major improvement over the previous Microprocessor 8080/8085`s series. i) First the Memory Capacity has been enhanced to 1 Megabyte (MB). ii) Data larger than 8-bits has not to be broken into blocks of 8-bits because it can handle upto 16 bits.
Evolution of Intel Microprocessors
![Page 10: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/10.jpg)
Microprocessor 8086: Pipelining Architecture: In a system with pipelining, the data and address buses are busy in transferring the information while the processor is processing the information. Although pipelining is a common feature in mini and main-frame computers, Intel was a pioneer in putting this pipelining feature on a single microprocessor.
Evolution of Intel Microprocessors
![Page 11: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/11.jpg)
Evolution from 8086 to 8088: As 8086 is a 16-bit microprocessor so it has 16-bit Data Bus internally & externally i.e. there is a 16-bit data bus to transfer data in & out to the CPU and it has 16-bit internal registers. Although 8086 microprocessor is a great achievement but still there was some resistance in using the 16 bit external data bus since at that time all peripherals were designed around an 8-bit microprocessor. In addition, the Printed Circuit Board with a 16-bit data bus was much more expensive. Intel came out with 8088 version. Which is identical to 8086 in terms of features but with 8-bit External Data Bus.
Evolution of Intel Microprocessors
![Page 12: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/12.jpg)
Evolution of Intel Microprocessors
![Page 13: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/13.jpg)
In 1981, Intel`s fortunes changed forever when IBM picked up the 8088 as their microprocessor of choice in designing the IBM PC. The 8088-based IBM PC was an enormous success, largely because IBM and Microsoft (the developer of the MS-DOS operating system) made it an open system, meaning that all documentation and specifications of the hardware and software of the PC were made public. This made it possible for many other vendors to clone the hardware successfully and thus sparked a major growth in both hardware & software designs based on the IBM PC. This is in contrast with the Apple computer, which was a closed system, blocking any attempt at cloning by other manufacturers.
Involvement of IBM PC
![Page 14: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/14.jpg)
Other Microprocessor 80286, 80386, 80486: As 80286 introduced in 1982. 16–bit internal and external data buses. 24 Address lines meaning that it can take 16MB. Real Mode/Protected Mode: Real Mode is simply a exactly faster like 8086/8088 with the same maximum of 1 Megabyte of memory. Protected mode allows for 16M of memory but is also capable of protecting the operating system and programs from accidental or deliberate destruction by a user, a feature that missed in 8086/8088.
Evolution of Intel Microprocessors
![Page 15: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/15.jpg)
Other Microprocessor 80286, 80386, 80486: Virtual Memory arrived, It is the way of fooling the microprocessor into thinking that it has access to an almost unlimited amount of memory by swapping data between disk storage and memory.
Evolution of Intel Microprocessors
![Page 16: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/16.jpg)
Semiconductor Technology: Transistor Density: The evolution of microprocessors were made possible by advances in semiconductor process technology. Concepts like VLSI, MSI & SSI. Semiconductor-device geometry means the transistor density. Transistor density decreased from about 5 microns in the early 1970s to submicron today.
What is going behind the curtains: How Microprocessor become so much powerful
![Page 17: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/17.jpg)
Proof of Transistor Density:
![Page 18: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/18.jpg)
![Page 19: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/19.jpg)
Moore`s Law
![Page 20: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/20.jpg)
Moore`s Law Perdiction
![Page 21: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/21.jpg)
MIPS: The performance of microprocessors are expressed in terms of its Bandwidth (number of bits processed in a single instruction), Instruction set (set of instructions that can be executed) and Clock-speed (number of executed-instructions per second) (Note that, bench marks are called MIPS (million instructions per second) and iCOMP index etc.)
Performance of Microprocessors
![Page 22: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/22.jpg)
![Page 23: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/23.jpg)
Previous History of Transistors
![Page 24: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/24.jpg)
Evolution of Digital Computers
![Page 25: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/25.jpg)
Evolution of Digital Computers
![Page 26: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/26.jpg)
Evolution of Digital Computers
![Page 27: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/27.jpg)
Evolution of Digital Computers
![Page 28: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/28.jpg)
Reprogrammable & Embedded Microprocessors
Microprocessors can be classified according to the type of application for which they have been designed. \ Two application oriented categories: 1) Reprogrammable Microprocessors 2) Embedded Microprocessors & Microcontrollers. 1) Reprogrammable Microprocessor are used for general applications. 2) Embedded µP and µC are used to perform a dedicated control function. Dedicated Control Function may be: Event Control like Industrial Process Control, Data Control like Hard Disk Controller Interface.
![Page 29: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/29.jpg)
Reprogrammable & Embedded Microprocessors
Reprogrammable means that a general purpose microcomputer can be used to run a variety of software applications i.e. while it is in use, it can be easily reprogrammed to run a different application. While, you cannot do this in embedded microcomputers.
![Page 30: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/30.jpg)
Reprogrammable & Embedded Microprocessors
![Page 31: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/31.jpg)
Microprocessors vs Microcontrollers
![Page 32: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/32.jpg)
Microprocessors vs Microcontrollers
Specific Purpose Based General Purpose Based
![Page 33: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/33.jpg)
Microprocessors vs Microcontrollers
![Page 34: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/34.jpg)
Microprocessors vs Microcontrollers
![Page 35: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/35.jpg)
CHAPTER # 2
Software Architecture of the 8088 & 8086 µP
![Page 36: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/36.jpg)
Learning Objective:
To perform any operation from 8086 or 8088 Microprocessors, we have to program it with Assembly Language. In this lecture we explore Microprocessor from Software Point of View. And in the process we learn how the microprocessor, and its memory and input/ouput sub- syetms operates.
![Page 37: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/37.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Pointer Register Index Registers Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 38: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/38.jpg)
Software Model of 8088/8086 µP
In order to program µP, one have to consider the processor view as shown in fig:
Remember our aim is to understand the microprocessor operation from a software point of view. One does not have to know the function of various pins, electrical signals, electrical connections or their electrical switching characteristics. The function, interconnection and operation of the internal circuits of microprocessors may not need to consider at this stage.
![Page 39: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/39.jpg)
Software Model of 8088/8086 µP
Internally, it contains Registers. All the abbreviations in the figure are actually the name of registers. Each Register is of 16-bit as 8086/8088 is of 16-bit. No of Registers: 13 + SR = 14
Registers names are:
![Page 40: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/40.jpg)
Software Model of 8088/8086 µP
![Page 41: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/41.jpg)
Software Model of 8088/8086 µP
Input/Output Address Space:
![Page 42: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/42.jpg)
Software Model of 8088/8086 µP
![Page 43: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/43.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Pointer Register Index Registers Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 44: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/44.jpg)
Memory Segmentation:
Although 8086/8088 µP can access up to 1MByte of Memory. Not all this memory is active at a time due to lack of resources. Actually, 1 MByte of memory is partitioned into 64K Segments. Why?? For the time being, remember each register is of 16-bit, so one can get maximum value of 2^16= 65536 = 64K. Only four of these 64K segments are active at a time.
Segment Registers and Memory Segmentation
![Page 45: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/45.jpg)
Segment Registers and Memory Segmentation
Memory Segmentation: Partitioned into 64K Segments. Only 4 Segments out of all 64K Segment will be active.
Segment Registers: Four Segment Register: CS, DS, SS, ES
Why?? Answer is:
![Page 46: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/46.jpg)
Segment Registers and Memory Segmentation Code Segment: Stores Instructions i.e. Codes Data Segment: Stores Program Data.
Actually, code stores in the memory.
Code Segment Register contains the Base Address i.e. Starting Address on which the instructions started to enter.
Actually, data stores in the memory.
Data Segment Register contains the Base Address i.e. Starting Address on which the data started to enter.
Stack Segment: Stores Temporary Information
like Push, Pop, Jump, Call etc.
Extra Segment: Also for Data Storage.
![Page 47: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/47.jpg)
Segment Registers and Memory Segmentation
![Page 48: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/48.jpg)
Dedicated, Reserved AndGeneral Use Memory
The Area from FFFFCH to FFFFFH is reserved pointer
area for future products and should not be used.
![Page 49: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/49.jpg)
Dedicated, Reserved AndGeneral Use Memory
![Page 50: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/50.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Pointer Register Index Registers Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 51: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/51.jpg)
Instruction Pointer
![Page 52: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/52.jpg)
Code Segment : Instruction Pointer
Code Segment : Instruction Pointer
20 Bit Address
Bus
16 Bit Address
in Segment Registers
![Page 53: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/53.jpg)
Code Segment : Instruction Pointer
Code Segment : Instruction Pointer
20 Bit Address
BusBase Address
Offset AddressPhysical Address
![Page 54: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/54.jpg)
Code Segment : Instruction Pointer
CS: IP = 0000:0001
0000
Base Address: 0000 Offset Address: 0001
0001
B.Add: 0000(0) Off. Add:+ 0001 Phy. Add:= 00001
![Page 55: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/55.jpg)
Code Segment : Instruction Pointer
Code Segment : Instruction Pointer
0000
Base Address: 0000 Offset Address: 0001
0003
B.Add: 0000(0) Off. Add:+ 0003 Phy. Add:= 00003
![Page 56: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/56.jpg)
Code Segment : Instruction Pointer
CS:IP = 0000:FFFF
0000
Base Address: 0000 Offset Address: 0001
FFFF
B.Add: 0000(0) Off. Add:+ FFFF Phy. Add:= 0FFFF
![Page 57: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/57.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 58: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/58.jpg)
Index Registers Two Index Registers: 1) Source Index Register 2) Destination Index These two registers hold the offset addresses w.r.t Data/Extra Segments. DS(0):SI = 20 Bit Address B.A(0):Offs.A = P.A DS(0):DI = 20 Bit address
![Page 59: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/59.jpg)
Index Registers (SI,DI)
![Page 60: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/60.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 61: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/61.jpg)
Pointer Registers Two Pointer Registers: 1) Stack Pointer Registers 2) Base Pointer Registers These two registers hold the offset addresses w.r.t Stack Segments. SS(0):SP = 20 Bit Address B.A(0):Offs.A = P.A SS(0):BP = 20 Bit address
![Page 62: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/62.jpg)
Pointer Registers (SP, BP)
![Page 63: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/63.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 64: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/64.jpg)
These are also known as General Purpose Registers. Mainly used for Data Operation, Logics Calculation &
Manipulation of Data.
Data Registers
![Page 65: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/65.jpg)
Data Registers
![Page 66: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/66.jpg)
Data Registers
![Page 67: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/67.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 68: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/68.jpg)
CHAPTER # 3
Software Architecture of the 8088 & 8086 µP
![Page 69: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/69.jpg)
Learning Objective:
To perform any operation from 8086 or 8088 Microprocessors, we have to program it with Assembly Language. In this lecture we explore Microprocessor from Software Point of View. And in the process we learn how the microprocessor, and its memory and input/ouput sub- syetms operates.
![Page 70: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/70.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Pointer Register Index Registers Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 71: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/71.jpg)
Software Model of 8088/8086 µP
In order to program µP, one have to consider the processor view as shown in fig:
Remember our aim is to understand the microprocessor operation from a software point of view. One does not have to know the function of various pins, electrical signals, electrical connections or their electrical switching characteristics. The function, interconnection and operation of the internal circuits of microprocessors may not need to consider at this stage.
![Page 72: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/72.jpg)
Software Model of 8088/8086 µP
Internally, it contains Registers. All the abbreviations in the figure are actually the name of registers. Each Register is of 16-bit as 8086/8088 is of 16-bit. No of Registers: 13 + SR = 14
Registers names are:
![Page 73: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/73.jpg)
Software Model of 8088/8086 µP
![Page 74: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/74.jpg)
Software Model of 8088/8086 µP
Input/Output Address Space:
![Page 75: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/75.jpg)
Software Model of 8088/8086 µP
![Page 76: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/76.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Pointer Register Index Registers Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 77: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/77.jpg)
Memory Segmentation:
Although 8086/8088 µP can access up to 1MByte of Memory. Not all this memory is active at a time due to lack of resources. Actually, 1 MByte of memory is partitioned into 64K Segments. Why?? For the time being, remember each register is of 16-bit, so one can get maximum value of 2^16= 65536 = 64K. Only four of these 64K segments are active at a time.
Segment Registers and Memory Segmentation
![Page 78: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/78.jpg)
Segment Registers and Memory Segmentation
Memory Segmentation: Partitioned into 64K Segments. Only 4 Segments out of all 64K Segment will be active.
Segment Registers: Four Segment Register: CS, DS, SS, ES
Why?? Answer is:
![Page 79: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/79.jpg)
Segment Registers and Memory Segmentation Code Segment: Stores Instructions i.e. Codes Data Segment: Stores Program Data.
Actually, code stores in the memory.
Code Segment Register contains the Base Address i.e. Starting Address on which the instructions started to enter.
Actually, data stores in the memory.
Data Segment Register contains the Base Address i.e. Starting Address on which the data started to enter.
Stack Segment: Stores Temporary Information
like Push, Pop, Jump, Call etc.
Extra Segment: Also for Data Storage.
![Page 80: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/80.jpg)
Segment Registers and Memory Segmentation
![Page 81: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/81.jpg)
Dedicated, Reserved AndGeneral Use Memory
The Area from FFFFCH to FFFFFH is reserved pointer
area for future products and should not be used.
![Page 82: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/82.jpg)
Dedicated, Reserved AndGeneral Use Memory
![Page 83: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/83.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Pointer Register Index Registers Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 84: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/84.jpg)
Instruction Pointer
![Page 85: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/85.jpg)
Code Segment : Instruction Pointer
Code Segment : Instruction Pointer
20 Bit Address
Bus
16 Bit Address
in Segment Registers
![Page 86: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/86.jpg)
Code Segment : Instruction Pointer
Code Segment : Instruction Pointer
20 Bit Address
BusBase Address
Offset AddressPhysical Address
![Page 87: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/87.jpg)
Code Segment : Instruction Pointer
CS: IP = 0000:0001
0000
Base Address: 0000 Offset Address: 0001
0001
B.Add: 0000(0) Off. Add:+ 0001 Phy. Add:= 00001
![Page 88: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/88.jpg)
Code Segment : Instruction Pointer
Code Segment : Instruction Pointer
0000
Base Address: 0000 Offset Address: 0001
0003
B.Add: 0000(0) Off. Add:+ 0003 Phy. Add:= 00003
![Page 89: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/89.jpg)
Code Segment : Instruction Pointer
CS:IP = 0000:FFFF
0000
Base Address: 0000 Offset Address: 0001
FFFF
B.Add: 0000(0) Off. Add:+ FFFF Phy. Add:= 0FFFF
![Page 90: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/90.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 91: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/91.jpg)
Index Registers Two Index Registers: 1) Source Index Register 2) Destination Index These two registers hold the offset addresses w.r.t Data/Extra Segments. DS(0):SI = 20 Bit Address B.A(0):Offs.A = P.A DS(0):DI = 20 Bit address
![Page 92: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/92.jpg)
Index Registers (SI,DI)
![Page 93: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/93.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 94: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/94.jpg)
Pointer Registers Two Pointer Registers: 1) Stack Pointer Registers 2) Base Pointer Registers These two registers hold the offset addresses w.r.t Stack Segments. SS(0):SP = 20 Bit Address B.A(0):Offs.A = P.A SS(0):BP = 20 Bit address
![Page 95: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/95.jpg)
Pointer Registers (SP, BP)
![Page 96: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/96.jpg)
Topics to Cover: (Ch-2)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Status Register Generating a Memory Address The Stack Input/Output Address Space
![Page 97: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/97.jpg)
These are also known as General Purpose Registers. Mainly used for Data Operation, Logics Calculation &
Manipulation of Data.
Data Registers
![Page 98: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/98.jpg)
Data Registers
![Page 99: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/99.jpg)
Data Registers
![Page 100: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/100.jpg)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Generating a Memory Address The Stack Status Register Input/Output Address Space
Topics to Cover: (Ch-2)
![Page 101: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/101.jpg)
Generating a Physical memory Address
Code Segment : Instruction Pointer Data Segment: Source/Destination Index Stack Segment: Stack/Base Pointer Extra Segment: Like Data Segment Four Data Registers are used for Data
Calculation, Logics & Manipulation. Status Register to show the Status
![Page 102: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/102.jpg)
Generating a Physical memory Address
![Page 103: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/103.jpg)
Generating a Physical memory Address
![Page 104: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/104.jpg)
Generating a Physical memory Address
![Page 105: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/105.jpg)
Generating a Physical memory Address
![Page 106: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/106.jpg)
Generating a Physical memory Address
For summary, see once again on White Board.
![Page 107: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/107.jpg)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Generating a Memory Address The Stack Status Register Input/Output Address Space
Topics to Cover: (Ch-2)
![Page 108: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/108.jpg)
The Stack
![Page 109: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/109.jpg)
The Stack
![Page 110: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/110.jpg)
The Stack
![Page 111: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/111.jpg)
The Stack
![Page 112: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/112.jpg)
Software Model of 8088/8086 µP Segment Registers and Memory
Segmentation Instruction Pointer Index Registers Pointer Register Data Registers Generating a Memory Address The Stack Status Register Input/Output Address Space
Topics to Cover: (Ch-2)
![Page 113: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/113.jpg)
CHAPTER # 4
Software Architecture of the 8088 & 8086 µP
![Page 114: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/114.jpg)
Learning Objective:
To perform any operation from 8086 or 8088 Microprocessors, we have to program it with Assembly Language. In this lecture we explore Microprocessor from Software Point of View. And in the process we learn how the microprocessor, and its memory and input/ouput sub- syetms operates.
![Page 115: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/115.jpg)
Topics to Cover: (Ch-2)
Data Registers Status Register Generating a Memory Address The Stack Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 116: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/116.jpg)
These are also known as General Purpose Registers. Mainly used for Data Operation, Logics Calculation &
Manipulation of Data.
Data Registers
![Page 117: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/117.jpg)
Data Registers
![Page 118: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/118.jpg)
Data Registers
![Page 119: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/119.jpg)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
Topics to Cover: (Ch-2)
![Page 120: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/120.jpg)
Generating a Physical memory Address
Code Segment : Instruction Pointer Data Segment: Source/Destination Index Stack Segment: Stack/Base Pointer Extra Segment: Like Data Segment Four Data Registers are used for Data
Calculation, Logics & Manipulation. Status Register to show the Status
![Page 121: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/121.jpg)
Generating a Physical memory Address
![Page 122: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/122.jpg)
Generating a Physical memory Address
![Page 123: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/123.jpg)
Generating a Physical memory Address
![Page 124: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/124.jpg)
Generating a Physical memory Address
![Page 125: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/125.jpg)
Generating a Physical memory Address
For summary, see once again on White Board.
![Page 126: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/126.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 127: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/127.jpg)
• Stack grows in the direction of decreasing addresses.• Stack is used to store WORDs only.• SP is initialized to FFFEH so that (SS:SP) points to the bottom of stack (highest address in the SS) in the beginning—empty stack• The Stack size = 64k bytes = 32k words• Stack segment reg (SS) contains end-of-stack
• Stack BOTTOM is end-of-stack + (64k-1) bytes.• (SS:SP) is last filled storage = TOS (Top of Stack).
The Stack
![Page 128: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/128.jpg)
• Stack operation always involves either reading a word (POP) or writing a word (PUSH). • Single byte is never used • There are two operations which concern STACK 1) PUSH OPERATION: Decrement SP by 2 and store the word then at SS:SP (least significant byte at the lower address). 2) POP Operation: Read a word from (SS:SP) and increment the SP by 2• STACK GROWS FROM HIGHER ADDRESSES TO LOWER ADDRESSES
The Stack
![Page 129: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/129.jpg)
The Stack
![Page 130: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/130.jpg)
The Stack
![Page 131: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/131.jpg)
The Stack
![Page 132: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/132.jpg)
The Stack
![Page 133: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/133.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 134: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/134.jpg)
Status Register
![Page 135: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/135.jpg)
Status Register
![Page 136: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/136.jpg)
Status Register
![Page 137: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/137.jpg)
Status Register
![Page 138: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/138.jpg)
Status Register
![Page 139: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/139.jpg)
Status Register
![Page 140: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/140.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 141: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/141.jpg)
Memory Organization & Aligned & Misaligned Data
![Page 142: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/142.jpg)
Memory Organization & Aligned & Misaligned Data
To store a Word of 16-Bit, two consecutive Memory locations are required. Lower Byte would be stored in Lower Address of two consecutive bytes while higher byte would be stored in higher address of consecutive byte.
Like to store data of 16-Bit i.e. 625A H 5A = Lower Byte in 00001H
62 = Higher Byte in 00002H.
![Page 143: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/143.jpg)
Memory Organization & Aligned & Misaligned Data
![Page 144: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/144.jpg)
Memory Organization & Aligned & Misaligned Data
Aligned Words are those which started with Address whose Least Significant Bit is ‘0’ also called Even Physical Address.
Non-aligned Words are those which started with Address whose Least Significant Bit is ‘1’ also called Odd Physical Address.
![Page 145: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/145.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 146: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/146.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 147: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/147.jpg)
A computer is like a calculator with program stored in its memory (RAM).
When a program is being executed, the following cycle of operations is repeated;
1) Fetch the next instruction from the memory 2) Decode the instruction to find out what operation is to be performed 3) Fetch the OPERAND(s) and store temporarily in the internal register(s) 4) Execute the required operation and store the result in memory or internal register as required by the instruction.
Microarchitecture of 8086/8088 Microprocessor
![Page 148: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/148.jpg)
Fetching of instructions is done by BUS INTERFACE UNIT (BIU)
Decoding, Fetching the operands and execution is done by the Execution Unit
These two units in 8088/86 family can work in parallel.
BIU fetches instruction bytes and stores them in internal registers which form a FIFO (First In First Out) queue. This is known as PRE-FETCHING of instruction.
8088 has a 4-byte FIFO, 8086 has 6-byte FIFO
Microarchitecture of 8086/8088 Microprocessor
![Page 149: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/149.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 150: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/150.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 151: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/151.jpg)
Microarchitecture of 8086/8088 Microprocessor
Fetch & Execute Cycle
![Page 152: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/152.jpg)
Microarchitecture of 8086/8088 Microprocessor
Fetch & Execute Cycle
![Page 153: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/153.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 154: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/154.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 155: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/155.jpg)
Input Output Address Space
![Page 156: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/156.jpg)
Input Output Address Space
![Page 157: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/157.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 158: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/158.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 159: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/159.jpg)
CHAPTER # 5
Software Architecture of the 8088 & 8086 µP
![Page 160: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/160.jpg)
Learning Objective:
To perform any operation from 8086 or 8088 Microprocessors, we have to program it with Assembly Language. In this lecture we explore Microprocessor from Software Point of View. And in the process we learn how the microprocessor, and its memory and input/ouput sub- syetms operates.
![Page 161: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/161.jpg)
Topics to Cover: (Ch-2)
Data Registers Status Register Generating a Memory Address The Stack Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 162: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/162.jpg)
These are also known as General Purpose Registers. Mainly used for Data Operation, Logics Calculation &
Manipulation of Data.
Data Registers
![Page 163: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/163.jpg)
Data Registers
![Page 164: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/164.jpg)
Data Registers
![Page 165: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/165.jpg)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
Topics to Cover: (Ch-2)
![Page 166: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/166.jpg)
Generating a Physical memory Address
Code Segment : Instruction Pointer Data Segment: Source/Destination Index Stack Segment: Stack/Base Pointer Extra Segment: Like Data Segment Four Data Registers are used for Data
Calculation, Logics & Manipulation. Status Register to show the Status
![Page 167: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/167.jpg)
Generating a Physical memory Address
![Page 168: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/168.jpg)
Generating a Physical memory Address
![Page 169: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/169.jpg)
Generating a Physical memory Address
![Page 170: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/170.jpg)
Generating a Physical memory Address
![Page 171: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/171.jpg)
Generating a Physical memory Address
For summary, see once again on White Board.
![Page 172: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/172.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 173: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/173.jpg)
• Stack grows in the direction of decreasing addresses.• Stack is used to store WORDs only.• SP is initialized to FFFEH so that (SS:SP) points to the bottom of stack (highest address in the SS) in the beginning—empty stack• The Stack size = 64k bytes = 32k words• Stack segment reg (SS) contains end-of-stack
• Stack BOTTOM is end-of-stack + (64k-1) bytes.• (SS:SP) is last filled storage = TOS (Top of Stack).
The Stack
![Page 174: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/174.jpg)
• Stack operation always involves either reading a word (POP) or writing a word (PUSH). • Single byte is never used • There are two operations which concern STACK 1) PUSH OPERATION: Decrement SP by 2 and store the word then at SS:SP (least significant byte at the lower address). 2) POP Operation: Read a word from (SS:SP) and increment the SP by 2• STACK GROWS FROM HIGHER ADDRESSES TO LOWER ADDRESSES
The Stack
![Page 175: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/175.jpg)
The Stack
![Page 176: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/176.jpg)
The Stack
![Page 177: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/177.jpg)
The Stack
![Page 178: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/178.jpg)
The Stack
![Page 179: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/179.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 180: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/180.jpg)
Status Register
![Page 181: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/181.jpg)
Status Register
![Page 182: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/182.jpg)
Status Register
![Page 183: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/183.jpg)
Status Register
![Page 184: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/184.jpg)
Status Register
![Page 185: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/185.jpg)
Status Register
![Page 186: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/186.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 187: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/187.jpg)
Memory Organization & Aligned & Misaligned Data
![Page 188: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/188.jpg)
Memory Organization & Aligned & Misaligned Data
To store a Word of 16-Bit, two consecutive Memory locations are required. Lower Byte would be stored in Lower Address of two consecutive bytes while higher byte would be stored in higher address of consecutive byte.
Like to store data of 16-Bit i.e. 625A H 5A = Lower Byte in 00001H
62 = Higher Byte in 00002H.
![Page 189: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/189.jpg)
Memory Organization & Aligned & Misaligned Data
![Page 190: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/190.jpg)
Memory Organization & Aligned & Misaligned Data
Aligned Words are those which started with Address whose Least Significant Bit is ‘0’ also called Even Physical Address.
Non-aligned Words are those which started with Address whose Least Significant Bit is ‘1’ also called Odd Physical Address.
![Page 191: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/191.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 192: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/192.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 193: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/193.jpg)
A computer is like a calculator with program stored in its memory (RAM).
When a program is being executed, the following cycle of operations is repeated;
1) Fetch the next instruction from the memory 2) Decode the instruction to find out what operation is to be performed 3) Fetch the OPERAND(s) and store temporarily in the internal register(s) 4) Execute the required operation and store the result in memory or internal register as required by the instruction.
Microarchitecture of 8086/8088 Microprocessor
![Page 194: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/194.jpg)
Fetching of instructions is done by BUS INTERFACE UNIT (BIU)
Decoding, Fetching the operands and execution is done by the Execution Unit
These two units in 8088/86 family can work in parallel.
BIU fetches instruction bytes and stores them in internal registers which form a FIFO (First In First Out) queue. This is known as PRE-FETCHING of instruction.
8088 has a 4-byte FIFO, 8086 has 6-byte FIFO
Microarchitecture of 8086/8088 Microprocessor
![Page 195: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/195.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 196: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/196.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 197: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/197.jpg)
Microarchitecture of 8086/8088 Microprocessor
Fetch & Execute Cycle
![Page 198: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/198.jpg)
Microarchitecture of 8086/8088 Microprocessor
Fetch & Execute Cycle
![Page 199: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/199.jpg)
Microarchitecture of 8086/8088 Microprocessor
![Page 200: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/200.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 201: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/201.jpg)
Input Output Address Space
![Page 202: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/202.jpg)
Input Output Address Space
![Page 203: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/203.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space
![Page 204: Lecture # 1](https://reader035.vdocument.in/reader035/viewer/2022062815/56816938550346895de0a138/html5/thumbnails/204.jpg)
Topics to Cover: (Ch-2)
Data Registers Generating a Memory Address The Stack Status Register Aligned & Misaligned Data Microarchitecture of 8086/8088 Input/Output Address Space