System Level Functionality

The move instruction has a system level functionality where segment/ selector registers can be loaded or set.

No 64-bit 

If you are developing 64-bit applications you should skip over this section, as the CS, DS, ES, and SS selectors are nullified and thus ignored. The FS and GS are left in reserve for use.

If you are developing 32-bit applications the system registers are known as selectors. In Win32 the CS, DS, and ES selectors are typically set to the same block of memory and need not be modified.

If you are developing in Real Mode, aka 16-bit applications, then these system registers are known as segment registers. In the Real Mode environment sreg represents the segment register supporting a 16-bit offset addressing up to a maximum of 65,536 x 16 bytes. In a Protected Mode environment the selector register indexes a 32-bit address using virtual memory. Application programmers do not need to worry about this. In the DOS and Extended DOS Protected Mode environments the ES is typically set to the same value as the DS, and the FS and GS are used to address extraneous memory blocks such as a video graphics adapter (VGA).

Real Mode An example of an old monochrome write access:

 monosel dw     0b000h         xor    edi,edi         mov    es,monosel             mov    es:[di],ax         add    di,4 

Protected Mode An example of an old monochrome write access:

 monoadr dd     0b0000h monosel dw     013fh             mov    edi,monoadr         mov    fs,monosel             mov    fs:[edi],eax         add    edi,4 

32.64-Bit 80X86 Assembly Language Architecture
32/64-Bit 80x86 Assembly Language Architecture
ISBN: 1598220020
EAN: 2147483647
Year: 2003
Pages: 191

Similar book on Amazon © 2008-2017.
If you may any questions please contact us: