Ben�tzung von tasm, tlink und td

 

tasm:

-----

��

- ist ein Assembler, der aus der ihm �bergebenen Quelldatei eine sogenannte Objektdatei mit der Erweiterung .obj erzeugt.

(Datei.asm -> Datei.obj)

 

Wenn ohne Parameter aufgerufen, zeigt die richtige Syntax.

Beispiel:

...>tasm Beispiel[.asm]

 

Wichtigere Option: /zi

(weist TASM an, komplette Debug-Informationen in die Objekt-Datei zu schreiben)

 

 

tlink:

------

�� Ist ein Linker der eine Objekt-Datei in eine ausf�hrbare Datei transformiert.

Es kann auch mehrere Objekt-Dateien in ein ausf�hrbares Programm zusammenbinden.

�� Datei1.obj + Datei2.obj +... -> Datei.exe (oder Datei.com)

 

�� Wenn ohne Parameter aufgerufen, zeigt die richtige Syntax.

 

Beispiel:

...>tlink Beispiel[.obj]

 

Wichtigere Optionen: /v, /t

 

 

Das ausf�hrbare (exe oder com) Programm kann sofort gestartet werden.

 

td

--

�� Ist ein Debugger - der als zus�tzliches Hilfsmittel wirkt, damit man die logischen Fehler leichter finden kann. Ist ein Fehlersuchprogramm das uns erlaubt das (exe oder com) Programm schrittweise auszuf�hren.

 

Beispiel:

...>td Beispiel[.exe]

 

 

�� mit TD ist die Suche nach Fehler auf zwei verschiedene Weisen m�glich:

��

1. Fehlersuche auf der Stufe der Machinensprache

�� Das ist f�r jedes ausf�hrbaren (exe oder com) Programm m�glich

��

 

2. Fehlersuche auf der Stufe der Quellcode

�� Das ist f�r die ausf�hrbare Programmen m�glich, die auch Debug-Informationen enthalten und f�r welche der Quellcode auch zur

�� Verf�gung steht.

 

F�r Fehlersuche auf der Stufe der Machinensprache verwenden wir:

...> tasm Beispiel

...> tlink Beispiel

...> td Beispiel

 

F�r Fehlersuche auf der Stufe des Quellcodes verwenden wir:

...> tasm /zi Beispiel

...> tlink /v Beispiel

...> td Beispiel

 

Die Ausf�hrung des Programmes k�nnen wir mit Turbo Debugger im CPU-Fenster verfolgen (es kann vom Men� View|CPU ge�ffnet werden).

Hier sehen wir den Inhalt der Register und der Flags bzw. das Programm zum ausf�hren. Das ist in Assembler Sprache und auch direkterweise im Maschinencode (d.h. Oktett f�r Oktett der Inhalt des Speichers) zu sehen.

Den Inhalt des Datensegmentes (in Hexa) und des Stacksegmentes kann man auch sehen.

Wir k�nnen den sichtbaren Teil der Code- Stack- oder Datenzone mit dem Befehl 'Go to' vom lokalen Men� (es kann mit Alt-F10

aktiviert werden) positionieren.

Wir k�nnen sogar den Wert einer Variable mit dem Dialog-Fenster Evaluate/Modify (es kann mit Ctrl-F4 ge�ffnet werden) anschauen oder �ndern.

 

 

Ein minimales Beispiel f�r einen Assembler-Programm:

 

; wir sagen dem Assembler was f�r Segmenten wir ben�tzen werden

 

ASSUME cs: code, ds:data

 

; data - das Datensegment wo wir die Variablen definieren werden

 

data SEGMENT

a db 7����������� ; a ist ein Oktett(Byte)

b dw 10���������� ; b ist ein Wort (Wort - 2 Bytes)

c db 3,5,6,1���� ; c ist eine Folge von Bytes

data ENDS

;code - Name des Codesegmentes

code SEGMENT

start:

mov ax,data���� ; die Segmentadresse des Datensegmentes m�chten wir ins

����������������������� ; Register DS laden, und weil das direkterweise nicht

mov ds,ax�������� ; m�glich ist, verwenden wir behelfsm��ig das Register Ax

�����������������������

; .......

; hier sind die Befehle unseres Programms

;........

 

mov ax,4C00h;wir schreiben die Funktion 4C (Programm Beenden) nach AH

����������������������� ;und die R�ckgabe (Exit code) 00 nach AL

int 21h ������������ ;Interrupt 21 ist gerufen (deren 4C Funktion wird ausgef�hrt)

 

code ENDS

END start

 

 

F�r mehrere Informationen �ber die Befehle und Direktiven kann man im Norton Guide nachschauen.