"Struktura programu"

O.K. temat ten jest rzeczą, którą najlepiej szybko przeczytać i mieć ją już z głowy:) - nigdy nie wnikałem w tajniki dyrektyw, których trzeba użyć - ten akurat punkt programu wykonuję automatycznie i bez zastanowienia.
No to tak: To, że program .asm można pisać w każdym edytorze tekstowym pod warunkiem, że produkuje on plik w czystym ascii - to już zapewne wiecie.

Następną rzeczą są właśnie te dyrektywy - mój standardowy program wygląda zawsze tak:

.model tiny
.code
org 100h
start:
...
end start

 

Uwierzcie mi na słowo, że dotychczas takie podejście świetnie zdawało egzamin - i tak najważniejsza jest częśc między "start" i "end start" czyli to, co powyżej jest puste - to właśnie tam utkwi główny program.

Jeśli jednak chcecie mieć ogólne pojęcie o sprawie to już po krótce wyjaśniam:

.model tiny - oznacza model pamięci, w którym zarówno kod (cs) jak i dane (ds) programu muszą się zmieścić w 64k - to jest jedna z cech programów typu .com.
.code - oznacza code segment - segment kodu programu - właśnie tu się zaczyna.
org 100h - program będzie się zaczynać od CS:0100H - to jest kolejna cecha programów typu .com.
Start: - etykieta "początek" - możnaby ją z grubsza porównać do pascalowskiego begin...
Innym "szablonem", który również zda egzamin, jest szablon następujący: CSEG SEGMENT ;Ustalenie symbolu ASSUME CS:CSEG, DS:CSEG, ES:CSEG ;przyporządkowanie wartości CS, DS i ES do symbolu CSEG ORG 100H Start: ... CSEG ENDS END START Ten sposób polecałbym może nawet bardziej niż poprzedni (polecam go od niedawna), gdyż umożliwi on kompilację programu bez błędów zarówno pod TASM, ARROWSOFT i prawdopodobnie pod MASM a poza tym jest chyba nawet prostszy niż schemat poprzedni.

 

Powrót do spisu treści kursu


Copyright by Grzegorz Złotowicz
Form and Graphics: Michał Stanek

Pytanie komentarz do Autora