Lets say that AX=1234. Then AL=34 (the low bytes) and AH=12 (the high bytes).
On the 386 and above, there are also 32 bits registers, which have the same name as the 16 bits registers but with an E infront of their names (EAX,EBX,ECX,EDX).
CS - Code segment. This is the block of memory where the code is located
DS - Data segment. This is where data can be accessed. When dealing with string operations this is often the source segment.
ES - Extra segment. Simply an extra segment that also can be used as a data segment. This is often the source segment when
dealing with string operations.
FS - Just another segment (only 386+), seldom used in cracking
GS - And yet another one (only 386+), seldom used in cracking.
SI - Source Index. Used by string operations as the source.
DI - Destination Index. Used by string operations as the destination.
BX can also be used as an index register. These register are used together with the segment registers as an offset.
So, what does DS:SI mean then? Well, simply that DS points to the datasegment and SI is an offset in the datasegment.
Copyright © MiB 1997. All rights reversed.