0% found this document useful (0 votes)
19 views7 pages

Instruction Set Classification

Copyright
© © All Rights Reserved
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)
19 views7 pages

Instruction Set Classification

Copyright
© © All Rights Reserved
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/ 7

This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

1. Instruction Set Classification


An instruction is a binary pattern designed inside a microprocessor to perform a specific
function. The entire group of instructions, called the instruction set, determines what
functions the microprocessor can perform. These instructions can be classified into the
following five functional categories: data transfer (copy) operations, arithmetic operations,
logical operations, branching operations, and machine-control operations.

Data Transfer (Copy) Operations


This group of instructions copy data from a location called a source to another location
called a destination, without modifying the contents of the source. In technical manuals, the
term data transfer is used for this copying function. However, the term transfer is
misleading; it creates the impression that the contents of the source are destroyed when, in
fact, the contents are retained without any modification.
The various types of data transfer (copy) are listed below together with examples of each
type:

Arithmetic Operations
These instructions perform arithmetic operations such as addition, subtraction, increment,
and decrement.

Addition - Any 8-bit number, or the contents of a register or the contents of a

1
This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

memory location can be added to the contents of the accumulator and the sum is
stored in the accumulator. No other two 8-bit registers can be added directly (e.g.,
the contents of register B cannot be added directly to the contents of the register C).
The instruction DAD is an exception; it adds 16-bit data directly in register pairs.

Subtraction - Any 8-bit number, or the contents of a register, or the contents of a


memory location can be subtracted from the contents of the accumulator and the
results stored in the accumulator. The subtraction is performed in 2's compliment,
and the results if negative, are expressed in 2's complement. No other two registers
can be subtracted directly.

Increment/Decrement - The 8-bit contents of a register or a memory location can be


incremented or decrement by 1. Similarly, the 16-bit contents of a register pair (such
as BC) can be incremented or decrement by 1. These increment and decrement
operations differ from addition and subtraction in an important way; i.e., they can be
performed in any one of the registers or in a memory location.

Logical Operations
These instructions perform various logical operations with the contents of the accumulator.
AND, OR Exclusive-OR - Any 8-bit number, or the contents of a register, or of a
memory location can be logically ANDed, Ored, or Exclusive-ORed with the contents
of the accumulator. The results are stored in the accumulator.
Rotate- Each bit in the accumulator can be shifted either left or right to the next
position.
Compare- Any 8-bit number, or the contents of a register, or a memory location can
be compared for equality, greater than, or less than, with the contents of the
accumulator.
Complement - The contents of the accumulator can be complemented. All 0s are
replaced by 1s and all 1s are replaced by 0s.

Branching Operations
This group of instructions alters the sequence of program execution either conditionally or
unconditionally.
2
This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

Jump - Conditional jumps are an important aspect of the decision-making process in


the programming. These instructions test for a certain conditions (e.g., Zero or Carry
flag) and alter the program sequence when the condition is met. In addition, the
instruction set includes an instruction called unconditional jump.
Call, Return, and Restart - These instructions change the sequence of a program
either by calling a subroutine or returning from a subroutine. The conditional Call
and Return instructions also can test condition flags.

Machine Control Operations


These instructions control machine functions such as Halt, Interrupt, or do nothing. The
microprocessor operations related to data manipulation can be summarized in four
functions:
1. Copying data
2. Performing arithmetic operations
3. Performing logical operations
4. Testing for a given condition and alerting the program sequence

Some important aspects of the instruction set are noted below:


1. In data transfer, the contents of the source are not destroyed; only the contents
of the destination are changed. The data copy instructions do not affect the flags.
2. Arithmetic and Logical operations are performed with the contents of the
accumulator, and the results are stored in the accumulator (with some
expectations). The flags are affected according to the results.
3. Any register including the memory can be used for increment and decrement.
4. A program sequence can be changed either conditionally or by testing for a given
data condition.

3
This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

2. Instruction Format
An instruction is a command to the microprocessor to perform a given task on a specified
data. Each instruction has two parts: one is task to be performed, called the operation code
(opcode), and the second is the data to be operated on, called the operand. The operand
(or data) can be specified in various ways. It may include 8-bit (or 16-bit ) data, an internal
register, a memory location, or 8-bit (or 16-bit) address. In some instructions, the operand is
implicit.

Instruction word size


The 8085 instruction set is classified into the following three groups according to word size:
i. One-word or 1-byte instructions
ii. Two-word or 2-byte instructions
iii. Three-word or 3-byte instructions
In the 8085, "byte" and "word" are synonymous because it is an 8-bit microprocessor.
However, instructions are commonly referred to in terms of bytes rather than words.

i. One-Byte Instructions
A 1-byte instruction includes the opcode and operand in the same byte. Operand(s) are
internal register and are coded into the instruction.

For example:

These instructions are 1-byte instructions performing three different tasks. In the first
instruction, both operand registers are specified. In the second instruction, the operand. B is
specified and the accumulator is assumed. Similarly, in the third instruction, the

4
This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

accumulator is assumed to be the implicit operand. These instructions are stored in 8-bit
binary format in memory; each requires one memory location.

MOV rd, rs
rd  rs copies contents of rs into rd.

Coded as 01 ddd sss where ddd is a code for one of the 7 general registers which is the
destination of the data, sss is the code of the source register.

Example: MOV A,B


Coded as 01111000 = 78H = 170 octal (octal was used extensively in instruction design of
such processors).

ADD r
AA+r

ii. Two-Byte Instructions


In a two-byte instruction, the first byte specifies the operation code and the second
byte specifies the operand. Source operand is a data byte immediately following the
opcode. For example:

Assume that the data byte is 32H. The assembly language instruction is written as

5
This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

The instruction would require two memory locations to store in memory.

MVI r,data
r  data

Example: MVI A,30H coded as 3EH 30H as two contiguous bytes. This is an example of
immediate addressing.

ADI data
A  A + data

OUT port

where port is an 8-bit device address. (Port)  A. Since the byte is not the data but points
directly to where it is located this is called direct addressing.

iii. Three-Byte Instructions


In a three-byte instruction, the first byte specifies the opcode, and the following two bytes
specify the 16-bit address. Note that the second byte is the low-order address and the third
byte is the high-order address.
opcode + data byte + data byte

For example:

This instruction would require three memory locations to store in memory.

Three byte instructions - opcode + data byte + data byte

LXI rp, data16

6
This document was prepared by Doyin Ajayi of Mathematical Sciences Department and is not for sale.

rp is one of the pairs of registers BC, DE, HL used as 16-bit registers. The two data bytes are
16-bit data in L H order of significance.

rp  data16

Example:
LXI H,0520H coded as 21H 20H 50H in three bytes. This is also immediate addressing.

LDA addr

A  (addr) Addr is a 16-bit address in L H order. Example: LDA 2134H coded as 3AH 34H
21H. This is also an example of direct addressing.

The LXI instruction (load register pair immediate) is even more unusual in that its immediate
data is a 16-bit value. This instruction is commonly used to load addresses into a register
pair. Your program must initialize the stack pointer; LXI i, the instruction most commonly
used for this purpose. For example, the instruction LXI SP,30FFH loads the stack pointer with
the hexadecimal value 30FF.

You might also like