8085 Microprocessor Data Transfer Instructions YASH PAL, March 18, 2026March 18, 2026 8085 Microprocessor Data Transfer Instructions – An instruction is a command in a binary pattern. Whenever an instruction is applied, the microprocessor performs a specific task. The collection of instructions is known as the instruction set of the microprocessor. The instruction set is fixed for the particular microprocessor by design and can not be altered. Any other type of operation that is not a part of the instruction set can not be performed directly. Such operations can be performed by the combination of the instructions written and executed in sequence. The sequence of instructions to perform a specific task is known as a program. The 8085 microprocessor has 74 opcodes and 246 instructions. All the instructions in the 8085 microprocessor will be either 1-byte, or 2-bytes, or 3-bytes in length. All the instructions of the 8085 microprocessor instruction set can be classified into the following five functional categories: data transfer (move/copy) instructions, arithmetic instructions, logical instructions, branching instructions, and machine/processor control instructions. Let’s first understand the notations used in the instructions of the 8085 microprocessor, and then we will learn about the instructions in detail. Here are the following notations used in the description of the instructions. NotationMeaningRAny 8-bit register (A, B, C, D, E, H, L)RdDestination register (A, B, C, D, E, H, L)RsSource register (A, B, C, D, E, H, L)RpRegister pair (BC, DE, HL, SP)MMemory location whose address is specified by the HL register pair[ ]Data stored in a memory address specified within brackets. Data Transfer (Move/Copy) Instructions The data transfer instructions copy data from a source into a destination without modifying the contents of the source. The contents of the destination are replaced by the new contents from the source. It is important to note that the data transfer instructions do not affect the flag register. These instructions are used to copy data between registers Immediate data (8-bit or 16-bit) to a register/register pair or a memory location. between a memory location and a register. between an input/output device and the accumulator. MOV Rd, RsMove (Copy) data from source register (Rs) into destination register (Rd)OperationRd ← RsLength1 byteAddressing modeRegister address modeFlagsFlags are not affected MOV M, RsMove (Copy) data from the source register (Rs) into the memory location given by the HL register pair.Operation[HL] ← RsLength1 byteAddressing modeIndirect addressingFlagsFlags are not affected MOV Rd, MMove (Copy) the data from the memory location pointed by the HL register pair into register RdOperationRd ← [HL]Length1 byteAddressing modeIndirect addressingFlagsFlags are not affected MVI Rd, data (8-bit)Move (Copy) the 8-bit immediate data into the destination register RdOperationRd ← data (8-bit)Length2 byteAddressing modeImmediate addressingFlagsFlags are not affected MVI M, data (8-bit)Move (Copy) the 8-bit immediate data into the memory location pointed by the HL register pair.Operation[HL] ← data (8-bit)Length2 byteAddressing modeIndirect addressingFlagsFlags are not affected LXI Rp, data (16-bit)Load 16-bit immediate data into the register pair RpOperationRd ← data (16-bit)Length3 byteAddressing modeImmediate addressing modeFlagsFlags are not affected LDA Address (16-bit)Load the data byte into the accumulator from the specified memory location.OperationA ← [Address]Length3 byteAddressing modeDirect addressing modeFlagsFlags are not affected STA Address (16-bit)Store the data byte into the specified memory location from the accumulator.Operation[Address] ← ALength3 byteAddressing modeDirect addressing modeFlagsFlags are not affected LDAX RpLoad the accumulator with the data stored at the location pointed to by register pair RpOperationA ← [Rp]Length1 byteAddressing modeIndirect addressing modeFlagsFlags are not affected STAX RpStore the contents of the accumulator into the memory location pointed to by register pair RpOperation[Rp] ← ALength1 byteAddressing modeIndirect addressing modeFlagsFlags are not affected IN Address (8-bit)Copy the data from the 8-bit port address into the accumulator.OperationA ← [Address]Length2 byteAddressing modeDirect addressing modeFlagsFlags are not affected OUT Address (8-bit)Copy the data from the accumulator into the 8-bit port address.Operation[Address] ← [A]Length2 byteAddressing modeDirect addressing modeFlagsFlags are not affected SHLD Address (16-bit)Store contents of HL register pair directly into two conjugative memory locations.Operation[Address + 1] ← HLength3 bytesAddressing modeDirect addressing modeFlagsFlags are not affected LHLD Address (16-bit)Load HL register pair from two conjucative memory locations.Operation[L] ← [Address]H ← [Address + 1]Length3 bytesAddressing modeDirect addressing modeFlagsFlags are not affected XCHGExchange H and L with D and EOperationH ↔ DL ↔ ELength1 bytesAddressing modeRegister addressing modeFlagsFlags are not affected XTHLExchange H and L with the top of the stackOperationL ↔ [SP]H ↔ [SP + 1]Length1 bytesAddressing modeRegister addressing modeFlagsFlags are not affected SPHLCopy the contents of the register pair HL to the stack pointer.OperationSP ← HLLength1 bytesAddressing modeRegister addressing modeFlagsFlags are not affected PCHLCopy the contents of the register pair to the program counters.OperationPC ← HLLength1 bytesAddressing modeRegister addressing modeFlagsFlags are not affected engineering subjects Microprocessor microprocessor