What is the difference between the following commands: LEA
, LDS
, LES
? I searched for the answer but I'm not very clear on it. From what I understood block1
should be equivalent to block2
.
.data
str1 db 'My first string. $'
str2 db 'My second string. $'
ptr_str1 dd str1
ptr_str2 dd str2
.code
_block1:
mov AX, @data
mov DS, AX
mov ES, AX
lea SI, str1
lea DI, str2
_block2:
lds SI, ptr_str1
les DI, ptr_str2
... but when I print str1
and str1
using the following macro, the second block doesn't return the expected results.
print MACRO param
lea DX, param
mov AH, 9
int 21h
ENDM