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