MVI is a mnemonic, which actually means “Move Immediate”. With this instruction,we can load a register with an 8-bitsor 1-Bytevalue. This instruction supports immediate addressing mode for specifying the data in the instruction. In the instruction “d8” stands for any 8-bit data, and ‘r’ stands for any one of the registers e.g. A, B, C, D, E, H or L. So this r can replace any one of the seven registers.
As ‘r’ can have any of the seven register names, so there are seven opcodes for this type of instruction. It occupies 2-Bytes in the memory.
|MVI A, Data||3E||2|
|MVI B, Data||06||2|
|MVI C, Data||0E||2|
|MVI D, Data||16||2|
|MVI E, Data||1E||2|
|MVI H, Data||26||2|
|MVI L, Data||2E||2|
As example, if we consider instruction MVI E, ABH then it means that ABH will be moved or copied to the register E. And as a result the previous value of E will get over written.
|2000||1E||MVI E, ABH||E <- ABH|
|2001||AB||ABH as operand|
This instruction will have seven T-states as shown below.
Summary − So this instruction MVI E, ABH requires 2-Bytes, 2-Machine Cycles (Opcode Fetch and Memory Read) and 7 T-States for execution as shown in the timing diagram.