Instruction Format
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:
1.
One-word or 1-byte instructions
2.
Two-word or 2-byte instructions
3.
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.
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:
Task
|
Opcode
|
Operand
|
Binary Code
|
Hex Code
|
Copy
the contents of the accumulator in the register C.
|
MOV
|
C,A
|
0100
1111
|
4FH
|
Add
the contents of register B to the contents of the accumulator.
|
ADD
|
B
|
1000
0000
|
80H
|
Invert
(compliment) each bit in the accumulator.
|
CMA
|
0010
1111
|
2FH
|
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 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
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:
Task
|
Opcode
|
Operand
|
Binary
Code
|
Hex
Code
|
|
Load an 8-bit data byte in the accumulator.
|
MVI
|
A, Data
|
0011
1110
DATA
|
3E
Data
|
First Byte
Second Byte
|
Assume that the data byte is 32H. The assembly language instruction is written as
Mnemonics
|
Hex code
|
MVI A, 32H
|
3E 32H1
|
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.
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:
Task
|
Opcode
|
Operand
|
Binary
Code
|
Hex
Code
|
|
Transfer the program sequence to the
memory location 2085H.
|
JMP
|
2085H
|
1100
0011
1000
0101
0010
0000
|
C3
85
20
|
First Byte
Second Byte
Third
Byte
|
This instruction would require three memory locations to store in memory.
Three
byte instructions - opcode + data byte + data byte
LXI
rp, data16
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.
REFERENCES
- R. S. Gaonkar, Microprocessor
Architecture, Programming, and Applications with the 8085, Fifth Edition,
Penram International Publishing (India) Private Limited.
- S Ghoshal, Microprocessor Based
System Design, Macmillan India Limited, 1996
- M. Mano, Digital Logic and
Computer Design, Prentice – Hall India
- B.
Ram - Fundamentals of Microprocessor and Microcontrollers
- “Microprocessors: Principles
and Applications” by A Pal
- “Microprocessors and
Microcontrollers : Architecture, Programming and Interfacing Using 8085,
8086 and 8051” by Soumitra Kumar Mandal
- “Introduction to
Microprocessors and Microcontrollers” by Crisp John Crisp
- “Microprocessors And
Microcontrollers” by A Nagoor Kani
- “Microprocessors And
Microcontrollers : Architecture, Programming and System Design 8085, 8086,
8051, 8096” by KRISHNA KANT
- “8 - Bit
Microprocessor”
by Vibhute
Comments
Post a Comment