Copy from source to
destination
|
||
MOV
|
Rd, Rs
|
This instruction copies the contents of the source register into the
destination register, the contents of Rd, M the source register are not
altered. If one of the operands is a memory
location, its location is specified by the contents of the HL registers.
Example: MOV B, C
or MOV B, M
|
M, Rs
|
||
Rd, M
|
Move immediate 8-bit
|
||
MVI
|
Rd, data
|
The 8-bit data is stored in the destination register or memory. If the operand is a memory location, its
location is specified by the contents of the HL registers.
Example: MVI B, 57H
or MVI M, 57H
|
M, data
|
Load accumulator
|
||
LDA
|
16-bit address
|
The contents of a memory location, specified by a 16-bit address in
the operand, are copied to the accumulator. The contents of the source are
not altered.
Example: LDA 2034H
|
Load accumulator indirect
|
||
LDAX
|
B/D Reg. pair
|
The contents of the designated register pair point to a memory
location. This instruction copies the
contents of that memory location into the accumulator. The contents of either the register pair or
the memory location are not altered.
Example: LDAX B
|
Load register pair immediate
|
||
LXI
|
Reg. pair, 16-bit data
|
The instruction loads 16-bit data in the register pair designated in
the operand. Example: LXI H, 2034H or
LXI H, XYZ
|
Load H and L registers direct
|
||
LHLD
|
16-bit address
|
The instruction copies the contents of the memory location pointed
out by the 16-bit address into register L and copies the contents of the next
memory location into register H. The
contents of source memory locations are not altered.
Example: LHLD 2040H
|
Store accumulator direct
|
||
STA
|
16-bit address
|
The contents of the accumulator are copied into the memory location
specified by the operand. This is a
3-byte instruction, the second byte specifies the low-order address and the
third byte specifies the high-order address.
Example: STA 4350H
|
Store accumulator Indirect
|
||
STAX
|
Reg. pair
|
The contents of the accumulator are copied into the memory location
specified by the contents of the operand (register pair). The contents of the accumulator are not
altered.
Example: STAX B
|
Store H and L registers direct
|
||
SHLD
|
16-bit address
|
The contents of register L are stored into the memory location
specified by the 16-bit address in the operand and the contents of H register
are stored into the next memory location by incrementing the operand. The contents of registers HL are not
altered. This is a 3-byte instruction,
the second byte specifies the low-order address and the third byte specifies
the high-order address.
Example: SHLD 2470H
|
Exchange H and L with D and E
|
||
XCHG
|
none
|
The contents of register H are exchanged with the contents of
register D, and the contents of register L are exchanged with the contents of
register E.
Example: XCHG
|
Copy H and L registers to the
stack pointer
|
||
SPHL
|
none
|
The instruction loads the contents of the H and L registers into the
stack pointer register, the contents of the H register provide the high-order
address and the contents of the L register provide the low-order
address. The contents of the H and L
registers are not altered.
Example: SPHL
|
Exchange H and L with top of
stack
|
||
XTHL
|
none
|
The contents of the L register are exchanged with the stack location
pointed out by the contents of the stack pointer register. The contents of the H register are
exchanged with the next stack location (SP+1); however, the contents of the
stack pointer register are not altered.
Example: XTHL
|
Push register pair onto stack
|
||
PUSH
|
Reg. pair
|
The contents of the register pair designated in the operand are
copied onto the stack in the following sequence. The stack pointer register is decremented
and the contents of the high- order register (B, D, H, A) are copied into
that location. The stack pointer
register is decremented again and the contents of the low-order register (C,
E, L, flags) are copied to that location.
Example: PUSH B or PUSH A
|
Pop off stack to register pair
|
||
POP
|
Reg. pair
|
The contents of the memory location pointed out by the stack pointer
register are copied to the low-order register (C, E, L, status flags) of the
operand. The stack pointer is
incremented by 1 and the contents of that memory location are copied to the
high-order register (B, D, H, A) of the operand. The stack pointer register is again
incremented by 1.
Example: POP H or POP A
|
Output data from accumulator
to a port with 8-bit address
|
||
OUT
|
8-bit port address
|
The contents of the accumulator are copied into the I/O port
specified by the operand.
Example: OUT F8H
|
Input data to accumulator from
a port with 8-bit address
|
||
IN
|
8-bit port address
|
8-bit port address The contents of the input port designated in the
operand are read and loaded into the accumulator.
Example: IN 8CH
|
write a program to load two unsigned numbers in register B and C respectively, subtract C from B if the result is in 2's complement then convert the result in Absolut magnitude and location 3030H, else display the positive result? display it at location 3030h, else display the positive result.
ReplyDelete