Instruction Set Classification
Instruction Set Classification
Arithmetic Operations
These instructions perform arithmetic operations such as addition, subtraction, increment,
and decrement.
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.
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.
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.
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.
ADD r
AA+r
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.
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.
For example:
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.