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) InstructionsThe 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 databetween registersImmediate 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 affectedMOV 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 affectedMOV 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 affectedMVI 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 affectedMVI 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 affectedLXI Rp, data (16-bit)Load 16-bit immediate data into the register pair RpOperationRd ← data (16-bit)Length3 byteAddressing modeImmediate addressing modeFlagsFlags are not affectedLDA Address (16-bit)Load the data byte into the accumulator from the specified memory location.OperationA ← [Address]Length3 byteAddressing modeDirect addressing modeFlagsFlags are not affectedSTA Address (16-bit)Store the data byte into the specified memory location from the accumulator.Operation[Address] ← ALength3 byteAddressing modeDirect addressing modeFlagsFlags are not affectedLDAX RpLoad the accumulator with the data stored at the location pointed to by register pair RpOperationA ← [Rp]Length1 byteAddressing modeIndirect addressing modeFlagsFlags are not affectedSTAX RpStore the contents of the accumulator into the memory location pointed to by register pair RpOperation[Rp] ← ALength1 byteAddressing modeIndirect addressing modeFlagsFlags are not affectedIN Address (8-bit)Copy the data from the 8-bit port address into the accumulator.OperationA ← [Address]Length2 byteAddressing modeDirect addressing modeFlagsFlags are not affectedOUT 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 affectedSHLD 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 affectedLHLD 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 affectedXCHGExchange H and L with D and EOperationH ↔ DL ↔ ELength1 bytesAddressing modeRegister addressing modeFlagsFlags are not affectedXTHLExchange H and L with the top of the stackOperationL ↔ [SP]H ↔ [SP + 1]Length1 bytesAddressing modeRegister addressing modeFlagsFlags are not affectedSPHLCopy the contents of the register pair HL to the stack pointer.OperationSP ← HLLength1 bytesAddressing modeRegister addressing modeFlagsFlags are not affectedPCHLCopy the contents of the register pair to the program counters.OperationPC ← HLLength1 bytesAddressing modeRegister addressing modeFlagsFlags are not affected engineering subjects Microprocessor microprocessor