Q:

direct memory addressing mode

Assume a byte has been defined in the data segment
DSEG      SEGMENT
    NUM   DB   ?
DSEG      ENDS

Then, what is the meaning of the following instructions in terms of addressing mode?
LEA     SI, NUM

and
MOV     NUM, 1AH

Since NUM is a label for a memory entry (say 1000H), I assume that the first one is interpreted as MOV   SI, [1000] and the second is interpreted as MOV   [1000], 1AH. So, they use direct memory addressing mode. Am I right?

A:

Nope, not quite.
The LEA is used to move the address into the destination.  So, the address represented by the label NUM is moved into SI.  This is immediate mode, since you are directly moving a value into a register.
The second one, while it doesn't have a byte ptr or [], moves the value 0x1a into the memory location represented by the label NUM. This is direct mode since you are using a raw memory address represented by NUM.

