16 bit Assembly

Home   Site Map   Instruction Index  


LGS   - Load Far Pointer Instruction

The LGS instruction is used to load (read) a segment and address from memory into registers.
The memory address most hold the Segment and offset address.

This command has 3 parts, Instruction, Register, and a 32 bit memory address made up of 16 bit Segment number followed by an offset from the start of it.

LGS loads the Offset address into the Register provided in the first operand, then the Segment in to the GS Register

Breakdown   DescriptionCode
LGS ; Instruction0F B5
SI ; Register number
[BX] ; A memory address from [BX]
  pointed to by BX
DataAddress; A Label address 25 C0

LGS using a memory address

Assembly SampleDescription
MOV BX, 0x0345;  Assign the memory address of the Pointer
or
MOV BX, DataAddress;  Assign the memory address of the Pointer
LGS SI, [BX];  Call LGS

Alternate method

Assembly SampleDescription
MOV BX, 0x0005;  Assign the memory address of the Pointer
PUSH BX
POP GS
MOV SI, DataAddress;  Assign the memory address of the Pointer to a Register

Assembly Sample Description   16 bit Machine Code
LGS SI, [BX];  Load GS and a Register
  from the memory adress in [BX]
  0F B5 33




Last Update 11/02/2023