Professional Documents
Culture Documents
Instruction Cycle
Instruction Cycle
Instruction Cycle
Problem Statement: Write a simple program of adding two numbers in the 8085 language.
1. Program Logic: To write a program, divide a given problem in small steps in terms of the operations the
8085 can perform.
2. Assembly Language Program: Translate these steps into instructions.
3. Make a Flow Chart: Graphical representation of small steps
4. Executing the Program
2
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
Problem Statement
Write the instructions to load the two hexadecimal numbers 32H and 48H in register A and B, respectively.
Add the numbers, and display the sum at the LED output port PORT1.
1. Problem Logic
The given problem can be divided in to following steps of operation.
i. Load the numbers in the registers.
ii. Add the numbers.
iii. Display the sum at the output port PORT1.
3
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
Block 2: ADD B
Block 4: HALT
3. Flowchart
4
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
4. Executing the Program
From Assembly Language to Hex Code
To convert the mnemonics into Hex code, we need to look up the code in the 8085 instruction set.
5
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
4. Executing the Program
Storing Hex Code in Memory
To store the program and display output, we have to know the memory address (from where program
begins) and the output port address.
6
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
4. Executing the Program
Converting from Hex Code to Binary Code
Once the program is saved in memory. The monitor program stored in the Read-Only-Memory of the MPU
check the keys and convert Hex code into binary code.
7
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
4. Executing the Program
Tell the microprocessor where the program begins by entering the memory address 2000H.
Now, push the execute key (or the key with a similar label) to begin the execution.
As soon as the Execute function key is pushed, the MPU loads with 2000H in PC.
The microprocessor begins to read one machine code at a time, and when it fetches the complete
instruction, it executes that instruction.
For example: it fetch the machine code stored in memory locations 2000H and 2001H and execute the
instruction MVI A,32H; thus it will load 32H in register A.
The ADD instruction will add the two numbers, and the OUT instruction will display the answer 7AH at the
LED port.
It continues to execute instructions until it fetches the HLT instruction.
8
Microprocessor: 8085A
How to Write, Assemble, and Execute a Program
Exercise this Example
1. Write assembly language program to Load the contents of memory locations 2100 H and 2101 H in B-
register and C-register respectively. The content of memory locations 2100 H and 2101H are 16 H and
19 H respectively.
2. Program 8085 in Assembly language to add two 99H and 39H. Store the result in register C.
3. Write an assembly language program to find the 2's complement of a hexadecimal number. The
hexadecimal number 6A H is stored in memory location 2100H and the answer is to be stored in 2101 H.
4. Write an assembly language program to multiply two decimal numbers 23 and 9 and store the answer
in some memory location.
5. Write assembly language program to find number of 1's and 0's in 8-bit number stored at 2010
memory address.
9
Microprocessor: 8085A
Instruction Cycle
Instruction Cycle
To execute an instruction, microprocessor has to perform various operations such as memory Read/Write,
I/O Read/Write, and sometimes also request acknowledge.
10
Microprocessor: 8085A
Instruction Cycle
All these operations are performed during execution of a instruction within a given time interval, which is
provided by the clock of the system.
With reference to the mentioned operations (fetch, decode, and execute) certain terms can be defined.
Instruction Cycle
11
Microprocessor: 8085A
Instruction Cycle
1. Instruction Cycle: Time required for completing the execution of an instruction is known as instruction
cycle. The 8085 instruction cycle consists of one to six machines cycles or operations.
2. Machine Cycle: It is the time required for completing a single operation. This operation can be accessing
memory for read/write operation or accessing I/O device. There can be 3 to 6 clock periods or T-states in a
machine cycle.
3. T-states or Clock Cycles: T-state is equivalent to one clock period. One clock period, i.e. the period
between two negative going transitions of that clock is called T-state. It is the time in which only a
subdivision of the operation can be performed. Hence, each machine cycle contains a number clock cycles
or T-states.
12
Microprocessor: 8085A
Instruction Cycle
Timing Diagrams
A timing diagram of an instruction is a graphical representation of the time taken by the μP to fetch,
decode, and execute an instruction.
The size of instruction and frequency of μP decides the total amount of time taken to execute an
instruction.
13
Microprocessor: 8085A
Instruction Cycle
14
Microprocessor: 8085A
Instruction Cycle
The number of machine cycles required to execute the instruction depends on the particular instruction.
Some of the instructions require no additional machine cycles after the instruction fetch is complete. Such
instruction have only one machine cycle in instruction cycle.
Other instructions may requires additional machine cycles to write or read data to or from memory or I/O
devices.
Hence, the total number of machine cycles required varies from one to five.
15
Two status signals (S1 and S0) along with IO/M signal output
Microprocessor: 8085A identify the type of the machine cycle being executed by the
8085.
These signals are issued (or become valid) at the beginning of
the machine cycle and remain stable throughout the machine
Instruction Cycle
cycle.
16
Microprocessor: 8085A
Instruction Cycle
17
Microprocessor: 8085A
Instruction Cycle OFMC
MC-1 MC-2
1. Opcode Fetch Machine Cycle (OFMC)
In the beginning of state T1, the 8085 puts a low on
the IO/M line of system bus indicating a memory
operation.
18
Microprocessor: 8085A
Instruction Cycle OFMC
MC-1 MC-2
1. Opcode Fetch Machine Cycle (OFMC)
The higher order 8-bits of the address appear on the
address bus A8-A15 remains constants until the end of
the state T3. During T4 state the data on the address
bus is unspecified.
19
Microprocessor: 8085A
Instruction Cycle OFMC
MC-1 MC-2
1. Opcode Fetch Machine Cycle (OFMC)
During state T2, after the RD signal is made low, the
external decoding circuit decodes the address put on
the address bus during T1 state.
20
Microprocessor: 8085A
Instruction Cycle OFMC
MC-1 MC-2
1. Opcode Fetch Machine Cycle (OFMC)
The accessed memory should be fast enough to
output its data before RD goes high.
Slower memories can gain more time by pulling the
READY signal of 8085 LOW.
This will introduce an integral number of TWAIT states
between T2 and T3 as long as READY is low.
On the rising edge of the RD control signal in T3 state,
the opcode obtained from the memory is transferred
to the microprocessor instruction register.
21
Microprocessor: 8085A
Instruction Cycle OFMC
MC-1 MC-2
1. Opcode Fetch Machine Cycle (OFMC)
22
Microprocessor: 8085A
Instruction Cycle
24
Microprocessor: 8085A
Instruction Cycle
25
Microprocessor: 8085A
Instruction Cycle
26
Microprocessor: 8085A
Instruction Cycle
27
Microprocessor: 8085A
Instruction Cycle
28
Microprocessor: 8085A
Instruction Cycle
Example
Two machine codes-0011 1110H (3EH) and 0011 0010H (32H) are stored in memory locations 2000H and
2001H, respectively, as shown below. The first machine cycle (3EH) represents the opcode to load a data
byte in the accumulator, and the second code (32H) represents the data byte to be loaded in the
accumulator. Illustrate the bus timings as these machine codes are executed. Calculate the time required to
execute the Opcode and memory read cycles and the entire instruction cycle if the clock frequency is 2
MHz.
29
Thank You
30