You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
251 lines
9.8 KiB
251 lines
9.8 KiB
3 years ago
|
|
||
|
|
||
|
; ͼʾ��
|
||
|
|
||
|
; �ߵ�ַ�������������������������������������������������������͵�ַ
|
||
|
|
||
|
; | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|
||
|
; |7654321076543210765432107654321076543210765432107654321076543210| <- �� 8 �ֽ�
|
||
|
; |--------========--------========--------========--------========|
|
||
|
; ���������ש��������������ש����������������������ש���������������
|
||
|
; ��31..24�� (����ͼ) �� �λ�ַ(23..0) �� �ν���(15..0)��
|
||
|
; �� �� �� �� ��
|
||
|
; �� ��ַ2���۩��ک� �٩���ַ1b�� ��ַ1a �� �ν���1 ��
|
||
|
; �ǩ������贈�����ש������贈���������������������贈��������������
|
||
|
; �� %6 �� %5 �� %4 �� %3 �� %2 �� %1 ��
|
||
|
; ���������ߩ������ߩ������ߩ������ߩ��������������ߩ���������������
|
||
|
; �� \_________
|
||
|
; �� \__________________
|
||
|
; �� \________________________________________________
|
||
|
; �� \
|
||
|
; �������ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש�����
|
||
|
; �� 7 �� 6 �� 5 �� 4 �� 3 �� 2 �� 1 �� 0 �� 7 �� 6 �� 5 �� 4 �� 3 �� 2 �� 1 �� 0 ��
|
||
|
; �ǩ����贈���贈���贈���贈���ߩ����ߩ����ߩ����贈���贈���ߩ����贈���贈���ߩ����ߩ����ߩ�����
|
||
|
; �� G �� D �� 0 �� AVL�� ��� 2 (19..16) �� P �� DPL �� S �� TYPE ��
|
||
|
; �ǩ����ߩ����ߩ����ߩ����贈���������������������贈���ߩ����������ߩ����ߩ�����������������������
|
||
|
; �� ��: ���� 2 �� ��: ��� 2 �� ��: ����1 ��
|
||
|
; �������������������������ߩ����������������������ߩ�����������������������������������������������
|
||
|
; �ߵ�ַ �͵�ַ
|
||
|
;
|
||
|
;
|
||
|
|
||
|
; ˵��:
|
||
|
;
|
||
|
; (1) P: ����(Present)�
|
||
|
; P=1 ��ʾ�������Ե�ַת������Ч�ģ�����˵���������������Ķδ��ڣ������ڴ��У�
|
||
|
; P=0 ��ʾ�������Ե�ַת����Ч�����öβ����ڡ�ʹ�ø������������ڴ�����ʱ�������쳣��
|
||
|
;
|
||
|
; (2) DPL: ��ʾ��������Ȩ��(Descriptor Privilege level)����2λ�����涨���������ε���Ȩ����������Ȩ���飬�Ծ����Ըö��ܷ����ʡ�
|
||
|
;
|
||
|
; (3) S: ˵�������������͡�
|
||
|
; ���ڴ洢�����������ԣ�S=1����������ϵͳ������������������(S=0)��
|
||
|
;
|
||
|
; (4) TYPE: ˵���洢���������������Ĵ洢�εľ������ԡ�
|
||
|
;
|
||
|
;
|
||
|
; ���ݶ����� ����ֵ ˵��
|
||
|
; ----------------------------------
|
||
|
; 0 ֻ��
|
||
|
; 1 ֻ�����ѷ���
|
||
|
; 2 ��/д
|
||
|
; 3 ��/д���ѷ���
|
||
|
; 4 ֻ����������չ
|
||
|
; 5 ֻ����������չ���ѷ���
|
||
|
; 6 ��/д��������չ
|
||
|
; 7 ��/д��������չ���ѷ���
|
||
|
;
|
||
|
;
|
||
|
; ����ֵ ˵��
|
||
|
; ���������� ----------------------------------
|
||
|
; 8 ִֻ��
|
||
|
; 9 ִֻ�С��ѷ���
|
||
|
; A ִ��/��
|
||
|
; B ִ��/�����ѷ���
|
||
|
; C ִֻ�С�һ������
|
||
|
; D ִֻ�С�һ�����Ρ��ѷ���
|
||
|
; E ִ��/����һ������
|
||
|
; F ִ��/����һ�����Ρ��ѷ���
|
||
|
;
|
||
|
;
|
||
|
; ϵͳ������ ���ͱ��� ˵��
|
||
|
; ----------------------------------
|
||
|
; 0 <���>
|
||
|
; 1 ����286TSS
|
||
|
; 2 LDT
|
||
|
; 3 �286TSS
|
||
|
; 4 286������
|
||
|
; 5 ������
|
||
|
; 6 286���
|
||
|
; 7 286������
|
||
|
; 8 ���
|
||
|
; 9 ����386TSS
|
||
|
; A <���>
|
||
|
; B �386TSS
|
||
|
; C 386������
|
||
|
; D <���>
|
||
|
; E 386���
|
||
|
; F 386������
|
||
|
;
|
||
|
; (5) G: �������(Granularity)�
|
||
|
; G=0 ��ʾ��������Ϊ�ֽڣ�
|
||
|
; G=1 ��ʾ��������Ϊ4K �ֽڡ�
|
||
|
; ע�⣬��������ֻ�Զν�����Ч���Զλ���ַ��Ч���λ���ַ�������ֽ�Ϊ��λ��
|
||
|
;
|
||
|
; (6) D: Dλ��һ����������λ����������ִ�жΡ�������չ���ݶλ���SS�Ĵ���Ѱַ�Ķ�(ͨ���Ƕ�ջ��)�������������е�����������ͬ��
|
||
|
; �� ��������ִ�жε��������У�Dλ������ָ��ʹ�õĵ�ַ����������Ĭ�ϵĴ�С��
|
||
|
; �� D=1��ʾĬ��������ָ��ʹ��32λ��ַ��32λ��8λ�������������Ĵ�����Ҳ��Ϊ32λ�����Σ�
|
||
|
; �� D=0 ��ʾĬ�������£�ʹ��16λ��ַ��16λ��8λ�������������Ĵ�����Ҳ��Ϊ16λ�����Σ�����80286���ݡ�����ʹ�õ�ַ��Сǰ�Ͳ�������Сǰ�ֱ��ı�Ĭ�ϵĵ�ַ���������Ĵ�С��
|
||
|
; �� ��������չ���ݶε��������У�Dλ�����ε��ϲ��߽硣
|
||
|
; �� D=1��ʾ�ε��ϲ�����Ϊ4G��
|
||
|
; �� D=0��ʾ�ε��ϲ�����Ϊ64K������Ϊ����80286���ݡ�
|
||
|
; �� ��������SS�Ĵ���Ѱַ�Ķ��������У�Dλ������ʽ�Ķ�ջ����ָ��(��PUSH��POPָ��)ʹ�ú��ֶ�ջָ���Ĵ�����
|
||
|
; �� D=1��ʾʹ��32λ��ջָ���Ĵ���ESP��
|
||
|
; �� D=0��ʾʹ��16λ��ջָ���Ĵ���SP������80286���ݡ�
|
||
|
;
|
||
|
; (7) AVL: ����������λ��80386�Ը�λ��ʹ��δ���涨��Intel��˾Ҳ��֤���������Ĵ�����ֻҪ��80386���ݣ��Ͳ����Ը�λ��ʹ�����κζ������涨��
|
||
|
;
|
||
|
|
||
|
|
||
|
;----------------------------------------------------------------------------
|
||
|
; ����������ֵ˵��
|
||
|
; ����:
|
||
|
; DA_ : Descriptor Attribute
|
||
|
; D : ���ݶ�
|
||
|
; C : ������
|
||
|
; S : ϵͳ��
|
||
|
; R : ֻ��
|
||
|
; RW : ��д
|
||
|
; A : �ѷ���
|
||
|
; ���� : �ɰ���������˼����
|
||
|
;----------------------------------------------------------------------------
|
||
|
DA_32 EQU 4000h ; 32 �
|
||
|
DA_LIMIT_4K EQU 8000h ; �ν�������Ϊ 4K �ֽ�
|
||
|
|
||
|
DA_DPL0 EQU 00h ; DPL = 0
|
||
|
DA_DPL1 EQU 20h ; DPL = 1
|
||
|
DA_DPL2 EQU 40h ; DPL = 2
|
||
|
DA_DPL3 EQU 60h ; DPL = 3
|
||
|
;----------------------------------------------------------------------------
|
||
|
; �洢������������ֵ˵��
|
||
|
;----------------------------------------------------------------------------
|
||
|
DA_DR EQU 90h ; ���ڵ�ֻ�����ݶ�����ֵ
|
||
|
DA_DRW EQU 92h ; ���ڵĿɶ�д���ݶ�����ֵ
|
||
|
DA_DRWA EQU 93h ; ���ڵ��ѷ��ʿɶ�д���ݶ�����ֵ
|
||
|
DA_C EQU 98h ; ���ڵ�ִֻ�д���������ֵ
|
||
|
DA_CR EQU 9Ah ; ���ڵĿ�ִ�пɶ�����������ֵ
|
||
|
DA_CCO EQU 9Ch ; ���ڵ�ִֻ��һ�´���������ֵ
|
||
|
DA_CCOR EQU 9Eh ; ���ڵĿ�ִ�пɶ�һ�´���������ֵ
|
||
|
;----------------------------------------------------------------------------
|
||
|
; ϵͳ������������ֵ˵��
|
||
|
;----------------------------------------------------------------------------
|
||
|
DA_LDT EQU 82h ; �ֲ���������������ֵ
|
||
|
DA_TaskGate EQU 85h ; ����������ֵ
|
||
|
DA_386TSS EQU 89h ; ���� 386 ����״̬������ֵ
|
||
|
DA_386CGate EQU 8Ch ; 386 ����������ֵ
|
||
|
DA_386IGate EQU 8Eh ; 386 �ж�������ֵ
|
||
|
DA_386TGate EQU 8Fh ; 386 ����������ֵ
|
||
|
;----------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
; ѡ����ͼʾ:
|
||
|
; �������ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש����ש�����
|
||
|
; �� 15 �� 14 �� 13 �� 12 �� 11 �� 10 �� 9 �� 8 �� 7 �� 6 �� 5 �� 4 �� 3 �� 2 �� 1 �� 0 ��
|
||
|
; �ǩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����ߩ����贈���贈���ߩ�����
|
||
|
; �� ���������� �� TI �� RPL ��
|
||
|
; �������������������������������������������������������������������������������ߩ����ߩ�����������
|
||
|
;
|
||
|
; RPL(Requested Privilege Level): ������Ȩ����������Ȩ���顣
|
||
|
;
|
||
|
; TI(Table Indicator): ������������ָʾλ
|
||
|
; TI=0 ָʾ��ȫ����������GDT�ж�ȡ��������
|
||
|
; TI=1 ָʾ�Ӿֲ���������LDT�ж�ȡ��������
|
||
|
;
|
||
|
|
||
|
;----------------------------------------------------------------------------
|
||
|
; ѡ��������ֵ˵��
|
||
|
; ����:
|
||
|
; SA_ : Selector Attribute
|
||
|
|
||
|
SA_RPL0 EQU 0 ; ��
|
||
|
SA_RPL1 EQU 1 ; �� RPL
|
||
|
SA_RPL2 EQU 2 ; ��
|
||
|
SA_RPL3 EQU 3 ; ��
|
||
|
|
||
|
SA_TIG EQU 0 ; ��TI
|
||
|
SA_TIL EQU 4 ; ��
|
||
|
;----------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
;----------------------------------------------------------------------------
|
||
|
; ��ҳ����ʹ�õij���˵��
|
||
|
;----------------------------------------------------------------------------
|
||
|
PG_P EQU 1 ; ҳ��������λ
|
||
|
PG_RWR EQU 0 ; R/W ����λֵ, ��/ִ��
|
||
|
PG_RWW EQU 2 ; R/W ����λֵ, ��/д/ִ��
|
||
|
PG_USS EQU 0 ; U/S ����λֵ, ϵͳ��
|
||
|
PG_USU EQU 4 ; U/S ����λֵ, �û���
|
||
|
;----------------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
; =========================================
|
||
|
; FLAGS - Intel 8086 Family Flags Register
|
||
|
; =========================================
|
||
|
;
|
||
|
; |11|10|F|E|D|C|B|A|9|8|7|6|5|4|3|2|1|0|
|
||
|
; | | | | | | | | | | | | | | | | | '--- CF����Carry Flag
|
||
|
; | | | | | | | | | | | | | | | | '--- 1
|
||
|
; | | | | | | | | | | | | | | | '--- PF����Parity Flag
|
||
|
; | | | | | | | | | | | | | | '--- 0
|
||
|
; | | | | | | | | | | | | | '--- AF����Auxiliary Flag
|
||
|
; | | | | | | | | | | | | '--- 0
|
||
|
; | | | | | | | | | | | '--- ZF����Zero Flag
|
||
|
; | | | | | | | | | | '--- SF����Sign Flag
|
||
|
; | | | | | | | | | '--- TF����Trap Flag (Single Step)
|
||
|
; | | | | | | | | '--- IF����Interrupt Flag
|
||
|
; | | | | | | | '--- DF����Direction Flag
|
||
|
; | | | | | | '--- OF����Overflow flag
|
||
|
; | | | | '----- IOPL����I/O Privilege Level (286+ only)
|
||
|
; | | | '----- NT����Nested Task Flag (286+ only)
|
||
|
; | | '----- 0
|
||
|
; | '----- RF����Resume Flag (386+ only)
|
||
|
; '------ VM����Virtual Mode Flag (386+ only)
|
||
|
;
|
||
|
; ע: see PUSHF POPF STI CLI STD CLD
|
||
|
;
|
||
|
|
||
|
|
||
|
; �� ------------------------------------------------------------------------------------------------------
|
||
|
;
|
||
|
; ������
|
||
|
; usage: Descriptor Base, Limit, Attr
|
||
|
; Base: dd
|
||
|
; Limit: dd (low 20 bits available)
|
||
|
; Attr: dw (lower 4 bits of higher byte are always 0)
|
||
|
%macro Descriptor 3
|
||
|
dw %2 & 0FFFFh ; �ν��� 0--15 (2 �ֽ�)
|
||
|
dw %1 & 0FFFFh ; �λ�ַ 0--15 (2 �ֽ�)
|
||
|
db (%1 >> 16) & 0FFh ; �λ�ַ 16--23 (1 �ֽ�)
|
||
|
db %3 & 0xFF ;�����Եĵ�8λ 0--7
|
||
|
db ((%2 >> 16) & 0Fh) | (%3 >> 8) ; �ν���16--19λ ���� 1 + �ν��� 2 + ���� 2 (2 �ֽ�)
|
||
|
db (%1 >> 24) & 0FFh ; �λ�ַ 3 (1 �ֽ�)
|
||
|
%endmacro ; �� 8 �ֽ�
|
||
|
|
||
|
;
|
||
|
; ��
|
||
|
; usage: Gate Selector, Offset, DCount, Attr
|
||
|
; Selector: dw
|
||
|
; Offset: dd
|
||
|
; DCount: db
|
||
|
; Attr: db
|
||
|
%macro Gate 4
|
||
|
dw (%2 & 0FFFFh) ; ƫ�� 1 (2 �ֽ�)
|
||
|
dw %1 ; ѡ���� (2 �ֽ�)
|
||
|
dw (%3 & 1Fh) | ((%4 << 8) & 0FF00h) ; ���� (2 �ֽ�)
|
||
|
dw ((%2 >> 16) & 0FFFFh) ; ƫ�� 2 (2 �ֽ�)
|
||
|
%endmacro ; �� 8 �ֽ�
|
||
|
|
||
|
|
||
|
; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|