Yes, ADDI rd, rs1, 0
is the encoding of the MV rd, rs1
instruction.
Many encodings are possible, e.g. XORI rd, rs1, 0
would have the same effect.
The reason for specifying which is the chosen encoding is so a disassembler will output MV rd, rs1
when it sees ADDI rd, rs1, 0
, but XORI rd, rs1, 0
will still be disassembled as XORI rd, rs1, 0
.
Other instructions have specified encodings, such as NOP being ADDI x0, x0, 0
, rather than any of the other instructions which do nothing. Note: register 0 is magic. It always reads as zero, thus writes are lost.
MV
instructions set one register's value equal to another register's value, so they would be better described as "copy", as @LiHenyuan wrote.
ADDI rd, rs1, x0
? – Weinman