Introduction to Microprocessor & The 8085 Programming Model

Introduction to Microprocessor
A microprocessor is a multipurpose, programmable, clock-driven, register-based electronic device that reads binary instructions from a storage device called memory, accepts binary data as input and processes data according to those instructions and provides result as output.

Figure:- Traditional block diagram of a computer

Figure:- Block diagram of computer with the Microprocessor (MPU)
Generation of Microprocessor
1st Generation: This was the period during 1971 to 1972 of microprocessor’s history. In 1971, INTEL created the first microprocessor 4004 that would run at a clock speed of 108 KHz. During this period, the other microprocessors in the market including Rockwell international PPS-4, INTEL-8008 and National semiconductors IMP-16 were in use. But, all these were not TTL compatible processors.
2nd Generation: This was the period during 1973 to 1978 in which very efficient 8-bit microprocessors were implemented like Motorola 6800 and 6801, INTEL-8080, INTEL-8085 and Zilogs-Z80, which were among the most popular ones. Owing to their super fast speed, they were costly as they were based on NMOS technology fabrication.
3rd Generation: During this period 16 bit processors were created and designed using HMOS technology. From 1979 to 1980, INTEL 8086/80186/80286 and Motorola 68000 and 68010 were developed. Speeds of those processors were four times better than the 2nd generation processors.
4th Generation: From 1981 to 1995 this generation developed 32 bit microprocessors by using HCMOS fabrication. INTEL-80386 and Motorola’s 68020/68030 were the popular processors.
5th Generation: From 1995 to until now this generation has been bringing out high-performance and high-speed processors that make use of 64-bit processors. Such processors include Pentium, Celeron, Dual and Quad core processors.
Thus, microprocessor has evolved through all these generations, and the fifth generation microprocessors represent advancement in specifications.
Table :- Intel Microprocessors Historical perspective


The 8085 Programming Model


Figure :- 8085 Hardware model , Programming Model & Flag Register
The programming model consists of some segments of ALU and the registers. This model does not reflect the physical structure of the 8085 but includes the information that is critical in writing assembly language programs. The model includes six registers, one accumulator and one flag register, as show in the figure. In addition, it has two 16-bit register: the stack pointer and the program counter. They are described briefly as follows.  
Registers 
The 8085/8080A has six general-purpose registers to store 8-bit data; these are identified as B, C, D, E, H, and L as shown in the figure. They can be combined as register pairs - BC, DE, and HL - to perform some 16-bit operations. The programmer can use these registers to store or copy data into the registers by using data copy instructions. 
Accumulator 
The accumulator is an 8-bit register that is a part of arithmetic/logic unit (ALU). This register is used to store 8-bit data and to perform arithmetic and logical operations. The result of an operation is stored in the accumulator. The accumulator is also identified as register A. 
Flags 
The ALU includes five flip-flops, which are set or reset after an operation according to data conditions of the result in the accumulator and other registers. They are called Zero (Z), Carry (CY), Sign (S), Parity (P), and Auxiliary Carry (AC) flags; they are listed in the Table and their bit positions in the flag register are shown in the Figure below. The most commonly used flags are Zero, Carry, and Sign. The microprocessor uses these flags to test data conditions. 
Program Counter (PC) 
This 16-bit register deals with sequencing the execution of instructions. This register is a memory pointer. Memory locations have 16-bit addresses, and that is why this is a 16-bit register. The microprocessor uses this register to sequence the execution of the instructions. The function of the program counter is to point to the memory address from which the next byte is to be fetched. When a byte (machine code) is being fetched, the program counter is incremented by one to point to the next memory location. 
Stack Pointer (SP) 
The stack pointer is also a 16-bit register used as a memory pointer. It points to a memory location in R/W memory, called the stack. The beginning of the stack is defined by loading 16-bit address in the stack pointer. The stack concept is explained in the chapter "Stack and Subroutines." 
Instruction Register/Decoder 

Temporary store for the current instruction of a program. Latest instruction sent here from memory prior to execution. Decoder then takes instruction and ‘decodes’ or interprets the instruction. Decoded instruction then passed to next stage. 

REFERENCES

  1. R. S. Gaonkar, Microprocessor Architecture, Programming, and Applications with the 8085, Fifth Edition, Penram International Publishing (India) Private Limited.
  2. S Ghoshal, Microprocessor Based System Design, Macmillan India Limited, 1996
  3. M. Mano, Digital Logic and Computer Design, Prentice – Hall India
  4. B. Ram - Fundamentals of Microprocessor and Microcontrollers
  5. “Microprocessors: Principles and Applications” by A Pal
  6. “Microprocessors and Microcontrollers : Architecture, Programming and Interfacing Using 8085, 8086 and 8051” by Soumitra Kumar Mandal
  7. “Introduction to Microprocessors and Microcontrollers” by Crisp John Crisp
  8. “Microprocessors And Microcontrollers” by A Nagoor Kani
  9. “Microprocessors And Microcontrollers : Architecture, Programming and System Design 8085, 8086, 8051, 8096” by KRISHNA KANT
  10. 8 - Bit Microprocessor” by Vibhute

Comments