I am a complete newbie and have just started learning assembly language. The thing which is confusing me is what determines the size of the data which will get stored or retrieved from memory. Lets say we have two labels, num1 and num2. num1 is of one byte and num2 is of two bytes. Assume that the size of accumulator is 16 bits. Now look at the following code:
mov ax, [num1]
mov al, [num2]
mov [num2], al
mov ax, [num2]
Now what would determine the size of data transfer? and is it safe to say that register will determine the size of data transfer (i.e. in the first instruction num1 and num1+1 gets loaded, only num2 in the second, al gets stored in num2 and in the last, ax loads num2 and num2+1)?