ds
is the default segment for all other other 16-bit memory addressing modes except[bp+immediate]
,[bp+si+immediate]
and[bp+di+immediate]
. So basically, unless you usebp
in indirect addressing, the default segment isds
. If you usebp
in indirect addressing, then the default segment isss
.A leading zero in hexadecimal numbers is a convention used by many disassemblers and assembler syntaxes to separate hexadecimal numbers from symbols (some other disassemblers and assemblers use
0x
instead of0
). Leading zeros do not affect the numeric value of any number, and it's the same in all number systems (binary, decimal, hexadecimal, etc.).
Just as you assume, les
di, ss:[bx]
loads the first word into di
and and the second word into es
, so it's equivalent to:
mov di,ss:[bx]
mov es,ss:[bx+2]