I define global code segment CODEKSEG and local code segment CODELSEG,
I initialize CODEKSEG segment base address,but I don't know how to initialize
local segment base address,who could help me?
Look:
;=========GDT
GDTSEG SEGMENT PARA USE16
GDT LABEL BYTE
DUMMY DESCRIPTOR <>
;global segment
CODEK DESCRIPTOR <0FFFFH,,,98H,>
CODEK_SEL = CODEK - GDT
;local segment
LDTABLE DESCRIPTOR <0FFFFH,,,82H,>
LDT_SEL = LDTABLE - GDT
GDTLEN = $ - GDT
GDTSEG ENDS
;=============LDT
LDTSEG SEGMENT PARA USE16
LDT LABEL BYTECODEL
;
CODEL DESCRIPTOR <0FFFFH,,,98H,>
CODEL_SEL = (CODEL-LDT) + 04H
LDTLEN = $ - LDT
LDTSEG ENDS
;===============Local code segment
CODELSEG SEGMENT PARA USE16
ASSUME CS:CODELSEG
..............
CODELSEG ENDS
;===============Global code segment
CODEKSEG SEGMENT PARA USE16
ASSUME CS:CODEKSEG
.........
CODEKSEG ENDS
;===================================
RECODESEG SEGMENT PARA USE16
ASSUME CS:RECODESEG
START:
ASSUME DS:GDTSEG
MOV AX,GDTSEG
MOV DS,AX
;initialize global code segment base address
MOV BX,16
MOV AX,CODEKSEG
MUL BX
MOV CODEK.BASEL,AX
MOV CODEK.BASEM,DL
MOV CODEK.BASEH,DH
;
MOV AX,LDTSEG
MUL BX
MOV LDTABLE.BASEL,AX
MOV LDTABLE.BASEM,DL
MOV LDTABLE.BASEH,DH
;How to initialize local code segment CODELSEG
;Who could help me?
RECODESEG ENDS
END START