📄 px_ldt.asm
字号:
USER_Px_LDT_INIT PROC FAR
; IN: ax:V86LDTSEG
PUSH DS
MOV DS,AX
MOV CX,USER_Px_LDT_INIT_COUNT
MOV SI,OFFSET USER_Px_LDT_INIT_BEGIN
USER_Px_LDT_INIT1:
MOV AX,DS:[SI].LIMIT
CMP AX,0FFFFH
JE USER_Px_LDT_INIT2
DEC AX
USER_Px_LDT_INIT2:
MOV DS:[SI].LIMIT,AX
MOV AX,DS:[SI].BASE_L
MOVZX EAX,AX
SHL EAX,4
SHLD EDX,EAX,16
MOV DS:[SI].BASE_L,AX
MOV DS:[SI].BASE_M,DL
MOV DS:[SI].BASE_H,DH
ADD SI,SIZE GDT_DESC
LOOP USER_Px_LDT_INIT1
;
;XOR DX,DX
;MOV CX,16
;MOV AX,USER_PxLDTSEG
;MUL CX ;DX:AX=32 address for GDT
;MOV USER_Px_LDT_ADDR,USER_PxLDTLEN
;MOV USER_Px_LDT_ADDR+2,AX
;MOV USER_Px_LDT_ADDR+4,DX
POP DS
RET
USER_Px_LDT_INIT ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -