Using 16-bit address, 8085 can access one of the 216= 64K locations. As a single hexadecimal digit can be expressed in4-bit notation so, in 8085, memory address can be expressed using four hexadecimal digits. Similarly, for convenience, we can represent all 8085 CPU registers as A, B, C etc. using binary notations. Internally 8085 specifies these registers using 0s and 1s only. So3-bits are just enough to represent a register. The 3-bit register codes for the registers of 8085 are shown in the following table
With 3-bit register code, eight registers can be specified in maximum as 23= 8. On the other hand, 8085 has only seven registers. So note that registration code 110 does not specify any register.
Register | Register code |
---|---|
B | 000 |
C | 001 |
D | 010 |
E | 011 |
H | 100 |
L | 101 |
M | 110 |
A | 111 |
Fig − Three-bit register codes for 8085 registers
Using these binary codes, hex-codes against mnemonics are formed. For example:
The opcode for MOV E, H − To represent MOV we are having 2-bits 0 1 and rest 6-bits to represent 2registers destination and source against 3-bits each. i.e.
01 r1 code r2 code
So MOV E, H will have the hex-code as 0 1 0 1 1 1 0 0 => 5CH
The opcode for MOV A, B − To represent MOV we are having 2-bits 0 1 and rest 6-bits to represent 2registers destination and source against 3-bits each. i.e.
01 r1 code r2 code
So MOV A, B will have the hex-code as 0 1 1 1 1 0 0 0 => 78H
The opcode for MOV E, M − To represent MOV we are having 2-bits 0 1 and rest 6-bits to represent 2registers destination and source against 3-bits each. i.e.
01 r1 code r2 code
So MOV E, M will have the hex-code as 0 1 0 1 1 1 1 0 => 5EH
The opcode for MVI E, data − To represent MVI we are having 2-bits 0 0 and rest 6-bits to represent1 register destination and another 110-bit combination to denote itis memory related operation as to read the data from the memory.i.e.
00 r1 code 1 1 0
So MOV E, M will have the hex-code as 0 0 0 1 1 1 1 0 => 1EH