Хелпикс

Главная

Контакты

Случайная статья





and ax, 0F000h shr ax, 12 mov bx, offset tbl_hex xlat mov [si], al pop ax push ax



and ax, 0F000h shr ax, 12 mov bx, offset tbl_hex xlat mov [si], al pop ax push ax

and ax, 0F00h shr ax, 8 inc si xlat mov [si], al pop ax push ax

and ax, 0F0h shr ax, 4 inc si xlat mov [si], al pop ax push ax

and ax, 0Fh inc si xlat mov [si], al

pop ax
pop dx
pop cx
pop bx
pop ax
endm
struc descr
limit dw 0
base_l dw 0
base_m db 0
attr_1 db 0
attr_2 db 0
base_h db 0
ends descr
;Структура для шлюзов ловушки
struc trap
offs_l dw 0
sel dw 16
rsrv db 0
attr db 8Fh
offs_h dw 0
ends trap
DATASEG
gdt_null descr <0,0,0,0,0,0> ; Селектор = 0
gdt_data descr <data_size-1,0,0,92h,0,0> ; Селектор = 8
gdt_code descr <code_size-1,0,0,98h,0,0> ; Селектор = 16
gdt_stack descr <100h-1,0,0,92h,0,0> ; Селектор = 24
gdt_screen descr <4095,8000h,0Bh,92h,0,0> ; Селектор = 32
gdt_himem descr <511,0,10h,92h,80h,0> ; Селектор = 40
gdt_tss_0 descr <103,0,0,89h,0,0> ; (1) Селектор = 48
gdt_tss_1 descr <103,0,0,89h,0,0> ; (2) Селектор = 56
gdt_size = $-gdt_null

idt trap 10 dup (<dummy_exc>)
trap <exc_0a>
trap <exc_0b>
trap <exc_0c>
trap <exc_0d>
trap <exc_0e>
trap 17 dup (<dummy_exc>)

idt_size = $-idt

idtr_real dw 3FFh, 0, 0

pdescr dp 0
mes db 10,13,'Real mode','$'
tbl_hex db '0123456789ABCDEF'
number db '???? ????'
string db '**** **** **** **** **** **** ****'
len = $-string

home_sel dw home
dw 10h

color db 43h ; (3) Атрибут символов для заполнения

tss_0 db 104 dup(0) ; (4) TSS 0-й задачи
tss_1 db 104 dup(0) ; (5) TSS 1-й задачи

;Переменная для переключения на задачу 1
task1_offs dw 0 ; (6) Смещение 1-й задачи
dw 56 ; (7) Селектор TSS 1 = 56

data_size = $-gdt_null
ends
CODESEG
assume cs: @code, ds:@data
sttt equ $
proc dummy_exc ;Обработчик исключений c номерами 0-9 и 0F-1F
pop eax
pop eax
mov si, offset string+5
debug
mov ax, 1111h
jmp [dword ptr home_sel]
endp
proc exc_0a ;Обработчик исключения 0A
pop eax
pop eax
mov si, offset string+5
debug
mov ax, 0Ah
jmp [dword ptr home_sel]
endp
proc exc_0b ;Обработчик исключения 0B
pop eax
pop eax
mov si, offset string+5
debug
mov ax, 0Bh
jmp [dword ptr home_sel]
endp
proc exc_0c ;Обработчик исключения 0C
pop eax
pop eax
mov si, offset string+5
debug
mov ax, 0Ch
jmp [dword ptr home_sel]
endp
proc exc_0d ;Обработчик исключения 0D
pop eax
pop eax
mov si, offset string+5
debug
mov ax, 0Dh
jmp [dword ptr home_sel]
endp
proc exc_0e ;Обработчик исключения 0E
pop eax
pop eax
mov si, offset string+5
debug
mov ax, 0Eh
jmp [dword ptr home_sel]
endp
start:
xor eax, eax
mov ax, @data
mov ds, ax



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.