8085 instructions
1. Data Transfer Instructions
Instruction Description
MOV Copies data from one register to another or between register and memory. MOV
A, B copies content of B into A.
MVI Moves an immediate 8-bit value into a register or memory. MVI A, 32H loads
32H directly into A.
LDA Loads the accumulator with data from a specific memory address. LDA 2050H
loads A from address 2050H.
STA Stores the content of accumulator into a specific memory address. STA 3050H stores
A into 3050H.
LHLD Loads H and L registers directly from two consecutive memory locations. LHLD
2050H loads L from 2050H and H from 2051H.
SHLD Stores H and L register contents into two consecutive memory locations. SHLD
3050H stores L into 3050H and H into 3051H.
2. Arithmetic Instructions
Instruction Description
ADD Adds content of a register or memory to the accumulator. ADD B → A = A + B.
ADI Adds an immediate 8-bit value to the accumulator. ADI 05H → A = A + 05H.
SUB Subtracts the content of a register or memory from the accumulator. SUB C → A = A - C.
SUI Subtracts an immediate 8-bit value from the accumulator. SUI 03H → A = A - 03H.
INR Increments the content of a register or memory by 1. INR D → D = D + 1.
DCR Decrements the content of a register or memory by 1. DCR E → E = E - 1.
3. Logical Instructions
Instruction Description
ANA Logical AND between accumulator and another register/memory. ANA B → A = A & B.
XRA Logical XOR between accumulator and another register/memory. XRA C → A = A ^ C.
ORA Logical OR between accumulator and another register/memory. ORA D → A = A
CMP Compares register/memory with accumulator (A - operand); flags are affected, but
A remains unchanged. CMP E
CMA Complements (inverts) all bits of the accumulator. CMA → A = ~A.
4. Branching Instructions
Instruction Description
JMP Unconditional jump to a specified address. JMP 2050H transfers control to 2050H.
JC Jump to a specified address if Carry flag is set. JC 3000H jumps if Carry = 1.
JNZ Jump to a specified address if Zero flag is not set. JNZ 2100H jumps if Z = 0.
CALL Calls a subroutine at the specified address and saves return address. CALL 4000H
RET Returns from subroutine to the address saved by CALL. RET restores PC from stack.
5. Stack and Control Instructions
Instruction Description
PUSH Pushes register pair onto the stack. PUSH B pushes contents of B and C onto the
stack.
POP Pops data from the stack into register pair. POP D pops into D and E.
NOP No operation – used for timing or delays. NOP does nothing for one machine cycle.
HLT Halts the program execution. HLT stops the processor.