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
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.