I've been stuck trying to figure out the addressing mode of this instruction.
Mov dl, byte ptr[bx]
I've been stuck trying to figure out the addressing mode of this instruction.
Mov dl, byte ptr[bx]
That addressing mode is commonly called Register Indirect.
This mov
might be described as a load operation — its function is to access memory at the address from the value that is held in the bx
register, so it will do:
dl <- Memory [bx]
The size of the memory transfer is 1 byte, while the size of the address is 16-bits (2 bytes) in width.
From a higher-level language perspective, this is a dereference operation — a dereference for read (i.e. a dereference in some other role than the left operand of assignment), for example, as in ... = *p
, or ... = p[0]
.