Architektura komputerów la6 PT17 TP Kukulski Tchorowska, Studia, PWR, 4 semestr, Architektura komputerów 2, laboratoria


Zespół: PT/17/TP Wrocław, 21.05.2010

Elżbieta Tchorowska, 171067

0x08 graphic
Konrad Kukulski, 163930

0x08 graphic
Ocena:

Oddano:

Tryb chroniony w emulatorze DOS pod platformą Linux

Sprawozdanie z laboratorium z przedmiotu „Architektura Komputerów”

Rok. Akadem. 2009/2010, Kierunek: INF

PROWADZĄCY:

Mgr inż. Mariusz Czapski

Spis treści:

Cel ćwiczenia

Celem ćwiczenia było zapoznanie się z trybem chronionym. Ponieważ w systemie Linux wywołanie trybu jest niemożliwe, korzystaliśmy z emulatora systemu DOS - DosBox. Wg polecenia należało uruchomić tryb chroniony na podstawie podanego przez prowadzącego kodu źródłowego, który zawierał błędy. Należało je poprawić i dopisać funkcję, która w trybie chronionym wypisałaby na ekran pierwsze litery imion członków grupy laboratoryjnej.

Przebieg ćwiczenia

Uruchomienie emulatora DosBox polegało na zamontowaniu dysku fizycznego pod dyskiem wirtualnym i wywołanie kompilatora systemu Dos. Pierwsza kompilacja, tak jak się spodziewano nie powiodła się z powodu błędów. Większość z nich okazała się literówkami. Źle napisano nazwę funkcji enable_20 i disable_20.

Program

Sam program, już bez błędów kompilatora, wyglądał następująco:

0x08 graphic

0x08 graphic

0x08 graphic

0x08 graphic

Napis

Kolejnym krokiem programu miało być wyświetlenie inicjałów członków grupy.

Napis - kod as

0x08 graphic

0x08 graphic

Wnioski

Przełączenie w tryb chroniony zadziałało poprawnie. Napis z karty graficznej „ETKK” wyświetlał się poprawnie.

Strona 6 z 6

ENDP enable_a20

disable_20 PROC NEAR

mov al, A20_PORT

out STATUS_PORT, al

mov al, A20_OFF

out KBD_PORT_A, al

ret

ENDP disable_a20

SSEG SEGMENT WORD STACK USE16 'STACK'

DB 1024 DUP (?)

SSEG ENDS

END STARTPOINT

END

code32 segment para public use32 //użycie 32-bitów

assume cs:code32, ds:code32

napis db 'ETKK' //etykieta i napis

start32:

mov edx, offset napis

mov ecx, 4 //ilość znaków napisu

call write

petla_inf: //wywołanie funkcji napis

jmp petla_inf

write PROC

mov ebx,0

petla:

mov al, byte ptr [edx] //offset do pierwszego

mov byte ptr [0b8000h+ebx], al // znaku napis ++

inc ebx

inc ebx

inc edx

loop petla

ret

GoProtect PROC

call enable_a20

mov ax, SEG _DATA

mov dl, ah

shl ax, 4

shr dl, 4

sub dh, dh

add ax, OFFSET GblDT

adc dl, 0

mov GblDscTbl+2, ax

mov GblDscTbl+4, dx

lgdt PWORD PTR GblDscTbl

cli

smsw ax

and ax, 1Fh

or ax, 1

lmsw ax

DB 0EAh

DW ClearPF

DW 10h

ClearPF:

mov ax, 8

mov ds, ax

mov ax, 18h

mov ss, ax

ret

GoProtect ENDP

GoReal PROC

mov eax, CR0

and eax, 07FFFFFFEh

mov CR0, eax

DB 0EAh

DW ClearPF2

DW _TEXT

ClearPF2:

mov ax, SEG DGROUP

mov ds, ax

mov ax, SEG SSEG

mov ss, ax

sti

call disable_a20

ret

GoReal ENDP

enable_20 PROC NEAR

mov al, A20_PORT

out STATUS_PORT, al

mov al, A20_ON

out KBD_PORT_A, al

ret

Start PROC

mov ax, SEG _DATA

mov ds, ax

mov si, OFFSET GblDT

add si, 8

mov bx, 0FFFFh

mov cx, RDWRDATA

call SetDscrpt

mov ax, SEG _TEXT

add si, 8

mov bx, 0FFFFh

mov cx, EXECUT

call SetDscrpt

mov ax, SEG SSEG

add si, 8

mov bx, 0FFFFh

mov cx, EXECUT

call SetDscrpt

mov ax, 0a000h

add si, 8

mov bx, 0FFFFh

mov cx, RDWRDATA

call SetDscrpt

mov ax, 13h

int 10h

call GoProtect

call GoReal

mov ah, 4Ch

int 21h

Start ENDP

SetDscrpt PROC

mov dl, ah

shl ax, 4

shr dl, 4

mov WORD PTR [si], bx

mov WORD PTR [si+2], ax

mov BYTE PTR [si+4], dl

mov WORD PTR [si+5], cx

mov BYTE PTR [si+7], 0

ret

SetDscrpt ENDP

write ENDP //wywołanie funkcji napis

code32 ends

END STARTPOINT

END

.MODEL SMALL

.386

.DATA

EXECUT EQU 10011010b

RDWRDATA EQU 10010010b

STACKSEG EQU 10010110b

STATUS_PORT EQU 64

A20_PORT EQU 0d1h

A20_ON EQU 0dfh

A20_OFF EQU 0ddh

KBD_PORT_A EQU 60

GblDT DW 0, 0, 0, 0

DW 0, 0, 0, 0

DW 0, 0, 0, 0

DW 0, 0, 0, 0

GblDscTbl DW 4 * 8 - 1

DD 0

.CODE

STARTPOINT:



Wyszukiwarka

Podobne podstrony:
Architektura komputerów lab3 PT17 TP Kukulski Tchorowska, Studia, PWR, 4 semestr, Architektura kompu
Architektura komputerów lab5 PT17 TP Kukulski Tchorowska, Studia, PWR, 4 semestr, Architektura kompu
Architektura komputerów lab2 PT17 TP Kukulski Tchorowska, Studia, PWR, 4 semestr, Architektura kompu
Urządzenia peryferyjne lab2, Studia, PWR, 5 semestr, Urządzenia peryferyjne, laboratorium
Urządzenia peryferyjne lab4, Studia, PWR, 5 semestr, Urządzenia peryferyjne, laboratorium
Urządzenia peryferyjne lab5, Studia, PWR, 5 semestr, Urządzenia peryferyjne, laboratorium
Urządzenia peryferyjne lab1, Studia, PWR, 5 semestr, Urządzenia peryferyjne, laboratorium
ak projekt, Studia, PWR, 4 semestr, Architektura komputerów 2, projekt
Architektura komputerów lab3 pop, Studia, PWR, 4 semestr, Architektura komputerów 2, laboratoria
Architektura komputerów5, Studia, PWR, 4 semestr, Architektura komputerów 2, laboratoria
Architektura komputerów, Studia, PWR, 4 semestr, Architektura komputerów 2, laboratoria
Sprawozdanie5, Studia, PWR, 5 semestr, Grafika komputerowa
Grupa, Studia Pwr, Semestr 1, Psychologia (wykład)
Sprawozdanie44b, Studia, PWR, 3 semestr, Fizyka 2
sprawko 11, Studia, PWR, 3 semestr, Logika układów cyfrowych, laboratoria
sprawko 3a, Studia, PWR, 3 semestr, Logika układów cyfrowych, laboratoria
sprawko 11a, Studia, PWR, 3 semestr, Logika układów cyfrowych, laboratoria
Porównanie procesów poznawczych i emocjonalnych, Studia Pwr, Semestr 1, Psychologia (wykład)
Przykładowe zadania na 2 kolokwium z programowania w języku C, Studia, PWR, 1 semestr, Podstawy prog

więcej podobnych podstron