ВУЗ:
Составители:
51
Листинг 2.1 – Подпрограмма, устанавливающая режим линейной
адресации данных
; Порт, управляющий запретом немаскируемых прерываний
CMOS_ADDR equ 0070h
CMOS_DATA equ 0071h
; Селекторы сегментов
SYS_PROT_CS equ 0008h
SYS_REAL_SEG equ 0010h
SYS_MONDO_SEG equ 0018h
CODESEG
;**********************************************
;* ВКЛЮЧЕНИЕ РЕЖИМА ЛИНЕЙНОЙ АДРЕСАЦИИ ПАМЯТИ *
;* (процедура параметров не имеет) *
;**********************************************
PROC Initialization NEAR
pushad
; Сохранить значения сегментных регистров в
; реальном режиме (кроме GS)
mov [CS:Save_SP],SP
mov AX,SS
mov [CS:Save_SS],AX
mov AX,DS
mov [CS:Save_DS],AX
; (работаем теперь только с кодовым сегментом)
mov AX,CS
mov [word ptr CS:Self_Mod_CS],AX
mov DS,AX
cli
mov SS,AX
mov SP,offset Local_Stk_Top
sti
; Установить режим линейной адресации
call SetLAddrModeForGS
; Восстановить значения сегментных регистров
cli
mov SP,[CS:Save_SP]
mov AX,[CS:Save_SS]
mov SS,AX
mov AX,[CS:Save_DS]
mov DS,AX
sti
; Разрешить работу линии A20
call Enable_A20
popad
ret
Листинг 2.1 – Подпрограмма, устанавливающая режим линейной адресации данных ; Порт, управляющий запретом немаскируемых прерываний CMOS_ADDR equ 0070h CMOS_DATA equ 0071h ; Селекторы сегментов SYS_PROT_CS equ 0008h SYS_REAL_SEG equ 0010h SYS_MONDO_SEG equ 0018h CODESEG ;********************************************** ;* ВКЛЮЧЕНИЕ РЕЖИМА ЛИНЕЙНОЙ АДРЕСАЦИИ ПАМЯТИ * ;* (процедура параметров не имеет) * ;********************************************** PROC Initialization NEAR pushad ; Сохранить значения сегментных регистров в ; реальном режиме (кроме GS) mov [CS:Save_SP],SP mov AX,SS mov [CS:Save_SS],AX mov AX,DS mov [CS:Save_DS],AX ; (работаем теперь только с кодовым сегментом) mov AX,CS mov [word ptr CS:Self_Mod_CS],AX mov DS,AX cli mov SS,AX mov SP,offset Local_Stk_Top sti ; Установить режим линейной адресации call SetLAddrModeForGS ; Восстановить значения сегментных регистров cli mov SP,[CS:Save_SP] mov AX,[CS:Save_SS] mov SS,AX mov AX,[CS:Save_DS] mov DS,AX sti ; Разрешить работу линии A20 call Enable_A20 popad ret 51
Страницы
- « первая
- ‹ предыдущая
- …
- 49
- 50
- 51
- 52
- 53
- …
- следующая ›
- последняя »