Instruction set architecture of 8085
In this course, we will study the What is the instruction set architecture of 8085, its major parts, classification, and branching instructions with example. So let us start.
What is the instruction set architecture of 8085?
Before learning what instruction set architecture is let us learn what an instruction set is. An instruction set is a group of instructions that are supported by the microprocessor. Different processors have different instruction sets. The instruction set architecture can be defined as the format in which the instructions can be written. There are different formats that instructions can take, like, the instruction length, the size, memory organization, and memory transfer length.
- Instruction length: It is the most basic issue of the format design. Longer will be the length of the instruction the more time is needed to fetch it.
- Memory size: If a larger memory range is to be addressed then more bits will be required in the address field.
- Memory organization: If the system supports the virtual memory then the memory range that needs to be addressed by the instruction, is larger than the physical memory.
- Memory transfer length: The length of instruction should be equal to the data bus length or it should be multiple of it.
What are the major parts of an instruction?
There are two major parts in an instruction- opcode, operand, and addressing mode.
What is an opcode?
Opcode means operation code. This is used to specify the operations that are to be performed. The operations to be done are specified in bit form. Generally, its size is 6 bits and we can perform 32 operations using it.
What is an operand?
These are used to specify the data upon which operation is to be performed. The operand can also contain the address. There are 24 bits. We can have the data as well as the addresses in it.
What is an addressing mode?
These are used to specify the way the operand or its address is to be addressed. There are two bits 6 and 7. We can define 4 different addressing modes.
What is an instruction set?
An instruction can be defined as a binary pattern that is designed inside the microprocessor for performing a specific function. The entire group of instructions that the microprocessor supports is known as an instruction set of the microprocessor. There are 246 instructions in the 8085 microprocessor. An 8-bit binary value is used to represent the instruction. These 8-bits of binary values are known as op-code or instruction byte.
What is the classification of instruction sets?
The instructions can be classified into various categories. Some of them are listed below:
- Data transfer instruction
- Arithmetic instruction
- Logic instruction
- Branching instruction
- Control instruction
What are the data transfer instructions?
- These instructions are used to move the data between registers or between memory and registers.
- These instructions copy data from source to destination.
- These do not change the original data.
- For example, MOV, MIV, LDA, LDAX, LXI, LHLD, STA, STAX, etc.
MOV source, destination
- This instruction copies the content of the source register to the destination register.
- If one of the operands is a memory location, then its location is specified by the content of the HL registers.
MIV destination, data
- The data is stored in the destination register or memory.
- If the operand is a memory location, the contents of the HL registers will specify its location.
LDA 16 bit address
- The contents of the memory location that are specified by a 16-bit address in the operand, are copied to the accumulator.
- The contents of the source are not altered.
What is the arithmetic instruction?
These instructions perform operations like addition, subtraction, increment, and decrement.
- Any 8-bit number or the contents of the register or contents of the memory location can be added to the contents of the accumulator.
- The result is always stored in the accumulator.
- No two 8-bit numbers can be added directly.
- There are instructions like ADC, ADD, ADI, DAD, etc.
- Any 8-bit number or the contents of the register or contents of the memory location can be subtracted to the contents of the accumulator.
- The result is always stored in the accumulator.
- Subtraction is performed in 2’s complement form.
- In case the result came out to be negative then it is stored in 2’s complement form.
- No two 8-bit numbers can be subtracted directly.
- There are instructions like SUB, SBB, SUI, SBI.
- The 8-bit contents of the register or a memory location can be incremented or decremented by 1.
- The 16-bit contents of the register pair can be incremented or decremented by 1.
- Increment or decrement can be performed on any register or memory location.
- There are instructions like INR, INX, DCR, DCX.
What are the logical instructions?
These instructions perform operations like AND, OR, XOR, rotate, compare, and complement.
AND, OR, XOR
- Any 8-bit data, or the contents of the register, or memory location can logically have these operations with the contents of the accumulator.
- The result is stored in the accumulator.
- The contents of the accumulator can be complemented.
- Every 0 is replaced by 1 and every 1 is replaced by 0.
- There are instructions like CMA, CMC, etc.
What are the branching instructions?
- These instructions allow the microprocessor to change the sequence of the program either conditionally or under certain test conditions.
- There are instructions like jump, call, return, and restart.