Kurs Assemblera by Skowik- Lekcja 14
var napis=new Array("P","R","O","G","R","A","M","Y ","T","Y","P","U ","C","O","M","","","");
var kolory=new Array("EE00EE","FF00DD","FF00CC","FF00BB","FF00AA","FF0099",
"EE00AA","EE00BB","EE00CC","EE00DD","EE00EE","DD00FF","CC00FF","AA00FF","8800FF","5500FF","2222FF","0000DD");
for(i=0; i< 18; i++)
document.write(napis[i].fontcolor(kolory[i]));
Na tej lekcji nauczymy się pisania programów typu COM.
Programy te są berdzo proste do napisania, zawierają się w jednym segmencie więc
ich długość jest ograniczona do 64kB.Program COM zawsze rozpoczyna się od
adresu 100H, co można zaimplementować w następujący sposób:
Prog SEGMENT
ASSUME CS: Prog, DS:Prog, ES:Prog, SS: Prog
ORG 100h
START:
Powyższy nagłówek oznacza, że wszystkie dane, kod
programu, stos i ES będą w znajdować się w tym samym segmencie z programem.
ORG 100h oznacza ilość pamięci przydzielanej na stos. A start to miejsce po
którym zaczynają się instrukcje programu. Kiedy zakończymy instrukcje na końcu
piszemy:
PROG ENDS
END START
i program gotowy. Aby nasz program się uruchomił
potrzebna jest jego kompilacja. Chcemy zrobić program COM.więc piszemy w linii
poleceń :TASM /x Program.asm
TLINK /x /t Program.obj
No to skoro o tym wspomniałem to teraz zajmijmy się zbudowaniem prostego
programiku, który po uruchomieniu napisze tekst na ekranie.
Prog SEGMENT
ASSUME CS: Prog, DS:Prog, ES:Prog, SS: Prog
ORG 100h
START:
mov dx,offset napis
mov ah,9h
int 21h
int 20h
napis db 'Czesc$'
prog ends
end start
No i teraz wyjaśnimy sobie co znaczą poszczególne
instrukcje.Pierwsza instrukcja po etykiecie START podaje do DX adres
(adresym podajemy instrukcjami MOV rejestr,OFFSET
zmienna zmiennej zawierającej napis na ekranie. I każemy procesorowi
napisać text na ekranie. Aby to zrobił w rejestrze AH podajemy wartość 9 w DX
adres napisu i wywołujemy przewanie 21h (przerwania wywołujemy instrukcją INT
nr. przerwania No to jeszcze została tylko jedna niejasna tak do końca
instrukcja czyli INT 20h. Wywołuje ona przerwanie 20h czyli zamyka nasz program.
Gdyby nie ta linijka to program po napisaniu tekstu zawiesiłby się.
Wyszukiwarka
Podobne podstrony:
www livemocha com angielski lekcja audioC w7 pliki operacje we wyDiagnostyka OBD EOBD OBD2 Opis VAG COMLite Com Pro Plcarlitos thegomels@hotmail com (4)pliki (6)car cross com4usingenglish com English Idioms?34 Pliki Operacje na plikach w Pascaluregulamin labmp ogarnijtemat comkarolh186@hotmail comBentleyPublishers com Audi?? Service ResetDorst GA the Framework 4 Geom Computing (2002) [sharethefiles com]polskawalczaca com • Zobacz wątek Zarcik3więcej podobnych podstron