Студопедия — Data_seg_access equ 11110010b
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Data_seg_access equ 11110010b






disable_bit20 equ 11011101b

enable_bit20 equ 11011111b

inta01 equ 021h

intb01 equ 0a1h

port_a equ 060h

shut_cmd equ 0feh

shut_down equ 00fh

status_port equ 064h

virtual_enable equ 0001h

ton1 equ 4f38h

ton2 equ 0f38h

lgdt MACRO gdt1

db 00fh

db 001H

db 016h

dw offset gdt1

ENDM

sgdt MACRO reggdt

db 00fh

db 001h

db 006h

dw offset reggdt

ENDM

lmsw MACRO lmsw1

db 00FH

db 001h

db 0F0h

ENDM

jumpfar MACRO jumpfar1,jumpfar2

db 0EAh

dw offset jumpfar1

dw jumpfar2

ENDM

cseg SEGMENT para public 'code'

ASSUME cs:cseg

ORG 100h

start: jmp main

EVEN

gdt LABEL byte

dummy db 0,0,0,0,0,0,0,0

ddt_desc EQU (($-gdt)/8)*8 + 00000000000000 00 b

gdt1 dw gdt_leng

base_lo_word_1 dw 0

base_hi_byte_1 db 0

db data_seg_access

db 0,0

cs_code EQU (($-gdt)/8)*8 + 00000000000000 00 b

gdt2 dw cseg_leng

base_lo_word_2 dw 0

base_hi_byte_2 db 0

db code_seg_access

db 0,0

cs_data EQU (($-gdt)/8)*8 + 00000000000000 00 b

gdt3 dw cseg_leng

base_lo_word_3 dw 0

base_hi_byte_3 db 0

db data_seg_access

db 0,0

ss_desc EQU (($-gdt)/8)*8 + 00000000000000 00 b

gdt4 dw 0FFFFh

base_lo_word_4 dw 0

base_hi_byte_4 db 0

db data_seg_access

db 0,0

ds_desc equ (($-gdt)/8)*8 + 00000000000000 00 b

gdt5 dw 0FFFFh

base_lo_word_5 dw 0

base_hi_byte_5 db 0

db data_seg_access

db 0,0

es_desc equ (($-gdt)/8)*8 + 00000000000000 00 b

gdt6 dw 0FFFFh

base_lo_word_6 dw 0

base_hi_byte_6 db 0

db data_seg_access

db 0,0

gdt_leng EQU $-gdt-1

PAGE

i8259_1 db?

i8259_2 db?

; MAIN:

ASSUME ds:cseg

main PROC

cld

mov dx,cs

mov cx,offset gdt

call form_24bit_address

mov base_lo_word_1,dx

mov base_hi_byte_1,cl

mov dx,cs

xor cx,cx

call form_24bit_address

mov base_lo_word_2,dx

mov base_hi_byte_2,cl

mov base_lo_word_3,dx

mov base_hi_byte_3,cl

mov dx,ss

xor cx,cx

call form_24bit_address

mov base_lo_word_4,dx

mov base_hi_byte_4,cl

lgdt gdt1

mov ah,enable_bit20

call gate_a20

or al,al

jz m_10

mov dx,offset gate_failure

mov ah,9

int 21h

int 20h

gate_failure db "Address line A20 failed to Gate open$"

FIO db 'Zigunenko A. gr-2-2',10,13,'$'

m_10: mov ah,9

mov dx, offset FIO

int 21h

cli

in al,inta01

mov i8259_1,al

in al,intb01

mov i8259_2,al

ASSUME ds:bios_data_seg

mov dx,bios_data_seg

mov ds,dx

mov dx,cs

mov io_rom_seg,dx

mov dx,offset real

mov io_rom_init,dx

mov al,shut_down

out cmos_port,al

jmp $+2

mov al,5

out cmos_port+1,al

mov cx,10;

m51: mov ax,0e25h;

int 10h;

loop m51;

mov ax,virtual_enable

lmsw ax

jumpfar m_20,cs_code

m_20: ASSUME ds:cseg

mov bx,ton1

call beep

mov ax,ss_desc

mov ss,ax

mov ax,cs_data

mov ds,ax

mov base_lo_word_5,8000h

mov base_hi_byte_5,0Bh

mov base_lo_word_6,8000h

mov base_hi_byte_6,0Bh

mov ax,ds_desc

mov ds,ax

mov ax,es_desc

mov es,ax

mov cx,80*25

xor si,si

xor di,di

m_30: lodsw

mov ah,70h

stosw

loop m_30

mov bx,ton2

call beep

mov cx,80*25

xor si,si

xor di,di

m_31: lodsw

mov ah,07h

stosw

loop m_31

mov al,shut_cmd

out status_port,al

m_40: hlt

jmp m_40

; GATE_A20

gate_a20 PROC

cli

call empty_8042

jnz gate_a20_01

mov al,0d1h

out status_port,al

call empty_8042

jnz gate_a20_01

mov al,ah

out port_a,al

call empty_8042

gate_a20_01:

ret

gate_a20 ENDP

; EMPTY_8042

empty_8042 PROC

push cx

sub cx,cx

empty_8042_01:

in al,status_port

and al,00000010b

loopnz empty_8042_01

pop cx

ret

empty_8042 ENDP

; FORM_24BIT_ADDRESS

form_24bit_address PROC

push ax

rol dx,4

mov ax,dx

and dl,0F0h

and ax,0Fh

add dx,cx

mov cx,ax

adc cl,ch

pop ax

ret

form_24bit_address ENDP

beep PROC

push ax bx cx dx di

mov al,0b6h

out 43h,al

mov dx,14h

mov ax,bx

out 42h,al

mov al,ah

out 42h,al

in al,61h

mov ah,al

or al,3

out 61h,al

mov bx,4000

waite: mov cx,2801

spkr_on: loop spkr_on

dec bx

jnz waite

mov al,ah

out 61h,al

pop di dx cx bx ax

ret

beep ENDP

ASSUME ds:cseg

real: mov dx,cs

mov ds,dx

mov ah,disable_bit20

call gate_a20

mov al,i8259_1

out inta01,al

mov al,i8259_2

out intb01,al

sti

mov cx,10;

m52: mov ax,0e23h;

int 10h;

loop m52;

int 20h

main ENDP

cseg_leng EQU $

cseg ENDS

END start

 

Результат: программа осуществит переход в защищенный режим, что будет показано графическими символами и звуковыми тонами; на экране также будет фамилия студента, его курс и группа.

 

 

Выполнил:    
Проверил: Гурчин И.И.  

 

 







Дата добавления: 2015-06-15; просмотров: 381. Нарушение авторских прав; Мы поможем в написании вашей работы!



Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Роль органов чувств в ориентировке слепых Процесс ориентации протекает на основе совместной, интегративной деятельности сохранных анализаторов, каждый из которых при определенных объективных условиях может выступать как ведущий...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

ОПРЕДЕЛЕНИЕ ЦЕНТРА ТЯЖЕСТИ ПЛОСКОЙ ФИГУРЫ Сила, с которой тело притягивается к Земле, называется силой тяжести...

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

Понятие массовых мероприятий, их виды Под массовыми мероприятиями следует понимать совокупность действий или явлений социальной жизни с участием большого количества граждан...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия