-
Notifications
You must be signed in to change notification settings - Fork 0
/
kernel16.inc
42 lines (40 loc) · 1.19 KB
/
kernel16.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
;============================================================
; Здесь размещены все 16-разрядные функции
;============================================================
;============================================================
; Функция для вычисления физического адреса
; На входе: ax:bx - сегмент:смещение
; На выходе: ax:bx - 32-битный адрес
adress:
;------------------------------------------------------------
mov cx, ax
shr cx, 12
shl ax, 4
add bx, ax
mov ax, 0
mov al, cl
ret
;============================================================
;============================================================
;Процедура перепрограммирует контроллер прерываний
progint:
;------------------------------------------------------------
set_int_ctrlr:
mov al,0x11
out dx,al
jmp SHORT $+2
mov al,ah
inc dx
out dx,al
jmp SHORT $+2
mov al,4
out dx,al
jmp SHORT $+2
mov al,1
out dx,al
jmp SHORT $+2
mov al,0xFF
out dx,al
dec dx
ret
;============================================================