2                    I N D E X                     2                    ---------                     2                                                  21  Allgemeine Informationen 5  Ausdrücke          2                                                  22  Die DC-Befehle           6  Konstanten/Labels  2                                                  23  Eingabe von Adressen     7  Assemblerbefehle   2                                                  24  Adressierungarten        8  Ende des Programms 2                                                  2           Wählen Sie eine Ziffer !               2                                                  2      Aktivierung der Online-Hilfe durch <F1>     2        Ende der Online-Hilfe durch <ESC>         2Allgemeine Informationen (1):                     2-----------------------------                     2DC ist ein Simulationsprogramm  für die 8086 CPU, 2welches das Erstellen und den Test von Assembler- 2programmen  ermöglicht. Die  eingegebenen Befehle 2werden  als Code in den Speicher assembliert  und 2lassen  sich als lauffähige  COM-Files speichern. 2DC führt die Programme schrittweise im Trace/ Go- 2Mode aus. Dabei werden alle Register-,  Flag- und 2Speicherzustände  direkt am Bildschirm angezeigt. 2Die  Assemblierung kann nach nach  jeder  Eingabe 2(Line  Mode),  oder  aus einer ASCII-Datei  (File 2Mode) erfolgen. Die Befehlseingabe läßt sich auf- 2zeichnen (Drucker) und in eine Datei sichern.     2                                                =>2Allgemeine Informationen (2):                     2-----------------------------                     2Der Assembler erzeugt 8086-Code  im Speicher, der 2sich dann direkt ausführen läßt. Während der Pro- 2grammausführung mit TRACE oder GO kontrolliert DC 2die Speicherzugriffe. Schreib- / Lesezugriffe auf 2ungeschützte  Speicherbereiche werden abgefangen. 2Dadurch wird ein  Programmabsturz weitgehend ver- 2hindert. Die ausgeführten Befehle werden in ihrer 2mnemotechnischen Schreibweise angezeigt.          2                                                  2Fast alle Befehle, bis auf die Ausnahmen HLT,LOCK 2und die 8087-Befehle (ESC), werden simuliert.     2                                                  2                                                =>2                       ^                          2       Aktueller Inhalt der 8086 Register         2                                                  2                                  Inhalt des      2<= Anzeige des                    Programm-,    =>2   Zustandes der                  Stack- und      2   Flagregister                   Datenspeichers  2                                                  2   ┌──────────────────────────────────────────┐   2   │          DC Ein-/Ausgabemasken           │   2   └──────────────────────────────────────────┘   2                                                  2   aktuelle Pro-                                  2<= grammadresse        Kommandofeld               2                           v                      2Die DC-Befehle (1):                     Menü ^    2-------------------                               2Der Didaktische Computer unterstützt die nachste- 2henden Befehle (Auswahl per Anfangsbuchstaben):   2                                                  21  LOAD      lade COM-Datei in den Speicher       22  SAVE      speichere den Code in eine COM-Datei 23  PROGRAM   Eingabe von Assemblerprogrammen      24  ASCII     Eingabe von ASCII-Texten             25  CODE      Eingabe von HEX-Zahlen               26  DISASS    Rückübersetzung des Programmcodes    27  TRACE/GO  Ausführung eines Programmes          28  QUIT      Beendigung des DC                    2                                                  2Weitere Hilfe, bitte den Code eingeben:        => 2Die DC-Befehle (2) (LOAD):                        2--------------------------                        2Der LOAD-Befehl lädt eine Datei mit 8086-Codes in 2den Speicher. Bei dieser Datei kann es sich um den2mit SAVE gesicherten Code einer DC-Sitzung han-   2deln. Weiterhin lassen sich COM-Files laden, wäh- 2rend EXE-Dateien in der vorliegenden Version nicht2unterstützt werden. Standardmäßig wird als Exten- 2sion 'COM' angenommen. Innerhalb des Filemenüs    2lassen sich Pfad und Extension verändern. Diese   2Einstellung bleibt dann bis zur Beendigung von DC 2erhalten. Bei längeren Dateien benötigt LOAD viel 2Zeit, da die Bytes einzeln gelesen werden.        2                                                  2                                        (SAVE) => 2Die DC-Befehle (3) (SAVE):              (LOAD) => 2--------------------------                        2Der SAVE-Befehl speichert den Speicherinhalt mit  2dem Programmcode in eine Datei. DC erzeugt stan-  2dardmäßig eine COM-Datei, die direkt von DOS aus- 2führbar ist (sofern das Programm korrekt ist).    2Vor dem Abspeichern wird nach der Anfangsadresse  2und der Länge (in Bytes) des abzuspeichernden Be- 2reichs gefragt. Damit lassen sich auch beliebige  2Speicherbereiche in Dateien sichern. In diesen    2Fällen sollte als Extension der Name BIN gewählt  2werden, um eine Verwechselung mit COM-Dateien zu  2vermeiden. DC gibt bei dieser Abfrage die Stan-   2dardwerte zur Abspeicherung des Programmes als    2COM-File vor.                        (PROGRAM) => 2Die DC-Befehle (4) (PROGRAM 1):         (SAVE) => 2-------------------------------                   2Im PROGRAM-Mode lassen sich Assemblerbefehle ein- 2geben, die dann in 8086 Codes übersetzt werden.   2Der Assembler aktzeptiert dabei alle in Punkt 7   2beschriebenen 8086 Befehle. Weiterhin sind Kon-   2stanten, Labels und Ausdrücke zulässig (s. Punkte 25 und 6). Bei unbekannten oder falschen Befehlen  2erscheint eine Fehlermeldung und die Eingabe wird 2ignoriert. Kommentare lassen sich durch ein vor-  2angestelltes Semikolon eingeben. Diese Zeilen     2werden vom Assembler ignoriert und erscheinen nur 2in der Anzeige. Im Assembler Mode werden weitere  2auf den folgenden Seiten beschriebene Pseudo-Be-  2befehle unterstützt.               (PROGRAM 2) => 2Die DC-Befehle (5) (PROGRAM 2):    (PROGRAM 1) => 2-------------------------------                   2ASCII-Text Eingabe über den A-Befehl:             2Wird im Assembler der Befehl A<RET> eingegeben,   2geht DC in den Eingabemode. Im Eingabefenster er- 2scheint eine Abfrage nach dem Text. Nun lassen    2sich Texte eingeben, die mit der Return-Taste ab- 2zuschliessen sind. Der Assembler übersetzt den    2Text in die ASCII-Codes und speichert diese ab    2der aktuellen Adresse. Der Befehl besitzt die     2gleiche Wirkung wie der ASCII-Befehl im Haupt-    2menü. Alternativ lassen sich Texte mit der Pseudo 2Anweisung:    DS Text<RET>                        2eingeben (s. Assemblerbefehle 7), wobei dann die  2Abfrage entfällt.                  (PROGRAM 3) => 2Die DC-Befehle (6) (PROGRAM 3):    (PROGRAM 2) => 2-------------------------------                   2Code Eingabe über den C-Befehl:                   2Wird im Assembler der Befehl C<RET> eingegeben,   2geht DC in den Eingabemode. Im Eingabefenster     2lassen sich nun Daten eingeben, die direkt in den 2Code eingefügt werden. Die Werte sind in Hexadezi-2maldarstellung einzugeben, wobei mehrere Parameter2durch Kommas zu trennen sind (z.B. 0D,0A,41<RET>).2Der Befehl besitzt die gleiche Wirkung wie der    2Code-Befehl im Hauptmenü. Alternativ lassen sich  2Datenbytes mit der Pseudo Anweisung:              2      DS Code1, Code2,...<RET>                    2eingeben (s. Assemblerbefehle 7), wobei dann die  2Abfrage entfällt.                  (PROGRAM 4) => 2Die DC-Befehle (7) (PROGRAM 4):    (PROGRAM 3) => 2-------------------------------                   2Das DISK-Kommando:                                2                                                  2Wird im Assembler der Befehl D<RET> eingegeben,   2geht DC in den DISK-Mode. Ein Eingabefenster er-  2scheint mit der Abfrage nach dem Befehl:          2                                                  2Code 1  Assemblierung einer Quelldatei            2Code 2  Abspeicherung der nachfolgenden Befehle   2Code 3  Schließe Speicherdatei                    2Code 4  Abspeicherung als Turbo Pascal INLINE     2                                                  2In einem weiteren Fenster ist der Filename der    2gewünschten Datei anzugeben.       (PROGRAM 5) => 2Die DC-Befehle (8) (PROGRAM 5):    (PROGRAM 4) => 2-------------------------------                   2Mit dem Code 1 läßt sich eine externe Quelldatei  2in den Speicher assemblieren. Dadurch kann ein    2Assemblerprogramm mit einem Editor bearbeitet und 2anschließend mit DC in einen COM-File übersetzt   2werden. Die Abspeicherung erfolgt über das SAVE-  2Kommando.                                         2                                                  2Mit Code = 2 werden alle anschließend eingegebenen2Assembleranweisungen in einer Textdatei aufge-    2zeichnet. Mit Code = 3 läßt sich die Aufzeichnung 2beenden und die Datei wird geschlossen. Damit kann2eine List-Datei der Befehlseingabe erzeugt werden.2                                       (ASCII) => 2Die DC-Befehle (9) (ASCII):          (PROGRAM) => 2---------------------------                       2Der ASCII-Befehl ermöglicht die Eingabe von Texten2von der Benutzerebene in den Speicher. Nach Einga-2be des Kommandos und der Startadresse läßt sich   2der Text (z.B. Hallo) von der Tastatur eingeben.  2Die Texteingabe wird durch Return abgeschlossen.  2                                                  2                                                  2Im Assemblermode (PROGRAM) existiert die Möglich- 2keit zur Eingabe von Texten über die Befehle:     2    A       und      DS Text<Ret>                 2Näheres findet sich bei der Beschreibung des      2PROGRAM-Modes.                                    2                                        (CODE) => 2Die DC-Befehle (10) (CODE):            (ASCII) => 2---------------------------                       2Der CODE-Befehl ermöglicht die Eingabe von HEX-   2Codes von der Benutzerebene in den Speicher. Nach 2Eingabe des Kommandos und der Startadresse lassen 2sich die Codes als zweiziffrige Hexzahlen einge-  1ben. Mehrere Codes sind durch Kommas zu trennen,  2während die Eingabe mit RETURN abgeschlossen wird.2                                                  2Im Assemblermode (PROGRAM) existiert die Möglich- 2keit zur Eingabe von Codes über die Befehle:      2    C       und      DB Code1,...,Code n<RET>     Näheres findet sich bei der Beschreibung des      2Näheres findet sich bei der Beschreibung des      2PROGRAM-Modes.                        (DISASS) => 2Die DC-Befehle (11) (DISASS):           (CODE) => 2---------------------------                       2Der Befehl aktiviert den Disassembler. Hierzu ist 2die Startadresse des Disassemblers einzugeben. DC 2schlägt die Adresse CS:100 als Startpunkt vor.    2Weiterhin läßt sich die Ausgabe auf dem Drucker   2mit protokollieren. Ausserdem können die Texte    2in einer Datei mit aufgezeichnet werden. Damit    2lassen sich Programme rückübersetzen, korrigieren 2und anschließend wieder assemblieren.             2                                                  2                                                  2                                                  2                                                  2                                    (TRACE/GO) => 2Die DC-Befehle (12) (TRACE/GO):       (DISASS) => 2-------------------------------                   2Mit diesem Befehl läßt sich das geladene Programm 2ausführen. Aus der Kommandoebene gelangt man nur  2in den TRACE-Mode. Hier werden die Anweisungen    2schrittweise abgearbeitet. Nach jedem Schritt wer-2den die Zustände der Register, Flags und der aus- 2geführte Befehl angezeigt. Durch Betätigung einer 2beliebigen Taste wird der nächste Befehl ausge-   2führt. Mit der Eingabe Q läßt sich der TRACE/GO-  2Mode beenden. Beim Start des TRACE-Modes wird die 2Startadresse abgefragt. DC gibt standardmäßig die 2Adresse CS:100 vor. Mit der Eingabe G läßt sich   2aus dem TRACE- in den GO-Mode umschalten.         2                                    (TRACE/GO) => 2Die DC-Befehle (13) (TRACE/GO):     (TRACE/GO) => 2-------------------------------                   2Im GO-Mode wird das Programm kontinuierlich abge- 2arbeitet. Die Ausführung läßt sich aber mit der   2Taste S anhalten. Anschließend läßt sich GO- oder 2TRACE aktivieren. Bei jedem Schritt wird geprüft, 2ob die Adresse noch im geschützten Bereich liegt. 2Bei Adressen außerhalb dieses Bereichs erfolgt    2eine Abfrage, ob die Adresse beschrieben werden   2soll. Diese überwachung läßt sich mit der Eingabe 2A abschalten. Im TRACE- und GO-Mode kann im rech- 2ten Fenster sowohl der Stack, der gerade ausge-   2führte Code, oder ein beliebiger Speicherbereich  2angezeigt werden. Die Auswahl erfolgt durch die   2                                    (TRACE/GO) => 2Die DC-Befehle (14) (TRACE/GO):     (TRACE/GO) => 2-------------------------------                   2Tasten S(tack), A(dresse) und M(emory). Bei der   2Eingabe M wird nach der Startadresse gefragt. DC  2gibt die Adresse 0000:0000 vor. Der GO-Mode läßt  2sich jederzeit durch die Taste S(top) unterbrech- 2en. Anschließend kann in den TRACE- oder GO-Mode  2verzweigt werden. Mit Q wird TRACE/GO beendet und 2der Kommandomode ist wieder aktiv.                2                                                  2Mit dem Memory-Kommando lassen sich beliebige     2Speicherbereiche als Hexcodes im MEMORY-Fenster   2darstellen. Beim Start ist eine Adresse mit einem 2gültigen Operationscode einzugeben.               2                                        (QUIT) => 2Die DC-Befehle (15)     (QUIT):     (TRACE/GO) => 2-------------------------------                   2Mit diesem Befehl wird der DC beendet. Vorher     2erscheint allerdings eine Benutzerabfrage, die    2mit J zu quittieren ist.                          2                                                  2                                                  2                                                  2                                                  2                                                  2                                                  2                                                  2                                                  2                                                  2                                               => 2Adresseingaben (1):                               2-------------------                               2                                                  2Adresseingaben sollten im Segment:Offset Format   2erfolgen. Dabei läßt sich das Segment auch über   2die entsprechenden Registernamen (CS, ES, DS, SS) 2angeben:                                          2                                                  2Beispiel : CS:8989  oder B4F5:8989                2                                                  2Jede Adresseingabe muß als Hexadezimalzahl erfol- 2gen. Wird kein Segment angegeben, ersetzt DC auto-2matisch das Segment durch den Inhalt des CS-Regis-2ters.                                             2                                               => 2Adresseingaben (2):                        (1) => 2-------------------                               2                                                  2Der 8088/8086 kann einen Speicherbereich von 1 MB 2verwalten (00000H bis FFFFF). Ein 16 Bit Register 2erlaubt jedoch maximal einen Adressbereich von 64 2KB (0 bis FFFFH). Deshalb wird eine 8086 Adresse  2immer aus der Addition eines Segment- und eines   2Offsetanteils gemäß folgendem Beispiel berechnet. 2                                                  2Beispiel:        Segment        3000H             2              +  Offset * 16     2FFFH            2                               --------           2                 Adresse        32FFFH            2                                               => 2Adressierungarten des 8088/8086 :                 2----------------------------------                2Die 8086 CPU unterstützt verschiedene Adressie-   2rungsarten, wie nachfolgend am MOV-Befehl demon-  2striert:                                          2Register  -  Register      : Mov ax,bx            2Register  -  unmittelbar   : Mov ax,400           2Register  -  Segment       : Mov DS,AX            2Segment   -  Register      : Mov BX,ES            2Register  -  Speicher      : Mov [200],cx         2Speicher  -  Register      : Mov dl,200 [DI]      2Speicher  -  unmittelbar   : Mov Wo Ptr [300],256 2Speicher  -  Segment       : Mov ES,100 [BP]      2Segment   -  Speicher      : Mov 200 [SI+BX],CS   2                                               => 2Speicher-Adressierung :                        => 2-----------------------                           2                                                  2Bei der indirekten Adressierung einer Speicherzel-2le dürfen neben einem Displacement auch die Regis-2ter BX, DI, SI und BP als Zeiger benutzt werden.  2Dabei sind folgende Kombinationen erlaubt :       2                                                  2       BX+SI , BX+DI , SI+BP , DI+BP              2                                                  2Bsp. :  MOV WORD PTR 200 [BX+SI],0005             2                                                  2Hier wird die Konstante 0005 an der durch den Zei-2ger [BX + SI + 200] definierten Wort-Adresse ge-  2speichert.                                      =>2Ausdrücke :                                     =>2-----------                                       2Bei der Eingabe von Assembleranweisungen dürfen   2Zahlen in verschiedenen Zahlenbasen und Ausdrücke 2eingegeben werden (Bsp.: MOV AX,FF+%111000-'a*15) 2Die Darstellung eine Zahl in einem anderen Zahlen-2system erfolgt durch einen vorangestellten Buch-  2staben. Hierbei gilt:                             2  # Dezimalzahl (#10)  % Binärzahl (%01)          2  o Oktalzahl   (o77)  ' ASCII-Zeichen ('a)       2Zahlen ohne Einleitungszeichen werden als Hexa-   2dezimalzahlen interpretiert.                      2                                                  2Auch eine Verwendung von Konstanten ist in Aus-   2drücken möglich  --> Konstanten/Labels.        => 2Konstanten (1):                                => 2---------------                                   2                                                  2Während der Programmeingabe können Konstanten ver-2wendet werden:                                    2                                                  2Diese Konstanten müssen mit dem Buchstaben $ be-  2ginnen, der Name darf höchsten 8 Buchstaben umfas-2sen. Der Eingabewert höchstens 17 Buchstaben ent- 2halten! Konstanten müssen vor ihrer Verwendung de-2finiert werden. Beispiel:                         2                                                  2$KONST=FF                                         2MOV AX,$KONST              ; MOV AX,FF            2MOV AX,$KONST+$KONST       ; MOV AX,1FE        => 2Konstanten (2):                                => 2---------------                                   2                                                  2DC verwaltet alle Konstanten als Textmakros, d.h. 2enthält ein Befehl das $-Zeichen ,so sucht DC nach2einer Konstanten mit dem angegebenen Namen und er-2setzt gegebenenfalls die Konstante durch deren    2"Wert". Andernfalls erfolgt eine Fehlermeldung.   2                                                  2Die Konstanten bleiben bis zum Verlassen des DC   2gespeichert. Beim Eintritt in den PROGRAM-Mode    2lassen sich die Konstanten aber löschen.          2                                                  2                                                  2                                               => 2Label-Adressen (1):                            => 2-------------------                               2Bei Adressangaben (z.B. MOV AX, &ende [SI] ) und  2bei Sprüngen JMP, CALL, LOOP, JNE, etc. kann statt2der absoluten Adresse auch ein Label angegeben    2werden. Der Labelname darf maximal 8 Buchstaben   2umfassen und wird durch ein vorausgestelltes &    2markiert:                                         2                                                  2jmp far &ende         ; 32 Bit Label              2&ende = cs:200        ;                           2&ende =               ; &ende = auf momentanen IP 2                                                  2An der Stelle hinter dem JMP steht jeweils der    2Wert des Labels &ende:                        =>  2Label-Adressen (2):                           =>  2-------------------                               2                                                  2Anders als Konstanten dürfen Labels natürlich auch2verwendet werden, wenn sie vorher noch nicht defi-2niert wurden. DC gibt dann zunächst einen Ersatz- 2wert vor, der bei der Zuweisung eines Wertes an   2das Label im Assemblercode ersetzt wird. Daher    2dürfen Labels nicht in Ausdrücken vorkommen!      2                                                  2Falsch : JMP &ende+100                            2                                                  2Am Ende der Programmeingabe erhalten Sie eine Mel-2dung über alle nicht definierte Labels.           2                                              =>  2Label-Adressen und Konstanten :               =>  2-------------------------------                   2                                                  2Labels und Adressen bleiben erhalten und ihre     2Werte bleiben gespeichert, solange DC nicht been- 2det wird, oder die Einträge nicht explizit ge-    2löscht werden. Nicht benötigte Labels oder Kon-   2stanten sollten unbedingt beim Eintritt in den    2PROGRAM-Mode (bei der Abfrage) gelöscht werden.   2Dies spart Platz und verhindert Fehler im Assemb- 2lercode, da bestehende Labels aus alten Programmen2in der Regel falsche Werte besitzen.              2                                                  2                                                  2                                              =>  2Assembler-Befehle (1) (Die 8086-Register (1)):    2----------------------------------------------    2   <    1 6  B i t     >   <     1 6  B i t     > 2   ┌─────────┬──────────┐  ┌────────────────────┐ 2AX │   AH    │  AL      │  │         CS         │ 2BX │   BH    │  BL      │  │         DS         │ 2CX │   CH    │  CL      │  │         SS         │ 2DX │   DH    │  DL      │  │         ES         │ 2   └─────────┴──────────┘  └────────────────────┘ 2   ┌────────────────────┐  ┌────────────────────┐ 2   │         DI         │  │         IP         │ 2   │         SI         │  │        Flags       │ 2   │         BP         │  └────────────────────┘ 2   │         SP         │                         2   └────────────────────┘                      => 2Assembler-Befehle (Die 8086-Register (2)):     => 2------------------------------------------        2Die CPU besitzt die 4x16 Bit Universalregister AX,2BX,CX,DX, die sich auch als 8 x 8 Bit-Register an-2sprechen lassen. AX dient als Akkumulator bei ADD,2SUB, MUL, DIV, etc. DX wird bei diesen Operation. 2als zweites Register benutzt. BX läßt sich mit DI,2SI als Zeiger verwenden. Das gleiche gilt für BP, 2SI und DI. CX dient als Zähler bei String-MOV und 2LOOP Befehlen. Die Segmentregister definieren das 2Code- (CS), Daten- (DS), Stack- (SS) und Extra-   2segment (ES). Der Stack wird durch SS:SP angege-  2ben, während die nächste Anweisung durch CS:IP    2adressiert wird. Flags geben den Prozessorzustand 2wieder.                                        => 2Befehlsübersicht der 8088-Befehle (1):         => 2--------------------------------------            2                                                  2Rechen-Speicher-Vergleichsbefehle:                2MOV  ADD  OR  ADC  SBB  AND  SUB  XOR  CMP        2INC DEC  NOT  NEG  MUL  IMUL  DIV  IDIV  XCHG     2                                                  2Verschiebebefehle :                               2ROL  ROR  RCL  RCR  SAL  SHL  SHR  SAR            2                                                  2Konvertierungsbefehle :                           2AAM  AAD  AAA  AAS  CBW  CWD  DAA  DAS            2                                                  2STACK-Befehle                                     2PUSH  POP  LAHF  SAHF  POPF  PUSHF             => 2Befehls-Übersicht 8088-Befehle (2) :           => 2------------------------------------              2                                                  2Sprung-Befehle :                                  2JMP  JMP NEAR  JMP FAR   JO  JNO  JC  JNC  JE JNE 2JBE  JA  JS  JNS  JP  JNP  JL  JGE  JLE  JG  JCXZ 2                                                  2Flag-Befehle :                                    2CLC  CMC  CLD  CLI  STD  STI                      2                                                  2Schleifen-Befehle :                               2LOOP  LOOPE  LOOPZ  LOOPNE  LOOPNZ                2REP  REPE  REPZ  REPNE  REPNE                     2String-Befehle :                                  2MOVSB  MOVSW  CMPSB/W STOSB/W LODSB/W SCASB/W  => 2Befehls-Übersicht 8088-Befehle (3) :           => 2------------------------------------              2                                                  2Adress-Befehle :                                  2LDS  LEA  LES                                     2                                                  2Unterprogramm und Interrupt-Befehle :             2CALL   CALL NEAR   CALL FAR    RET NEAR  RET FAR  2INT  INTO  IRET                                   2                                                  2Port-Befehle :                                    2IN  OUT                                           2                                                  2Sonstige Befehle :                                2NOP  HLT  LOCK  WAIT  TEST  XLAT  ESC          => 2Assembler-Pseudo-Befehle (1):                  => 2-----------------------------                     2Neben den 8086 / 8088 Befehlen wurden in DC ver-  2schiedene "Pseudo"-Befehle zur Programmsteuerung  2implementiert. Diese lassen sich im PROGRAM-Mode  2eingeben, oder in einer Quelltextdatei ablegen.   2                                                  2Der D(isk)-Befehl:                                2                                                  2Im PROGRAM-Mode läßt sich durch die Eingabe: D    2das Menü für die Disketten-Befehle aktivieren. Mit2diesem Menü lassen sich z.B. Quellcodedateien im  2ASCII-Format in den Speicher assemblieren. Weitere2Informationen finden sich bei PROGRAM unter dem   2Punkt: "Das Disk-Kommando".                    => 2Assembler-Pseudo-Befehle (2) (Disk 2):         => 2--------------------------------------            2Wenn die Anweisungen aus einer Datei gelesen wer- 2en, übersetzt DC die Befehle solange keine Fehler 2auftreten. Im Fehlerfall stoppt DC und geht in den2Eingabemode. Dann lassen sich Befehle manuell ein-2geben. Um mit dem nächsten Befehl des Files fort -2zufahren genügt die Eingabe des Buchstabens W für 2(weiter). Wird das Dateiende gefunden, bricht DC  2ab und geht in den Eingabemode über. Findet DC die2Anweisung:        HLT                             2bricht das Programm die Übersetzung ab und verläßt2auch den PROGRAM-Mode. DC befindet sich anschlies-2send auf der Kommandoebene.                       2                                               => 2Assembler-Pseudo-Befehle (3) (DS / A):         => 2--------------------------------------            2Zur Eingabe von Zeichenketten wurden zwei weitere 2Befehle implementiert. Mit der Eingabe: A         2geht DC in den ASCII-Mode und fragt eine Zeichen- 2kette über die Tastatur ab. Der Befehl besitzt die2gleiche Wirkung wie das ASCII-Kommando.           2                                                  2Alternativ existiert der Befehl DS (Datastring).  2Hinter der DC-Anweisung läßt sich direkt ein Text 2eingeben, der mit Return abzuschließen ist. Zwi-  2schen dem Befehl DS und dem Text muß ein Blank    2stehen. Beispiel:    DS Hallo<Return>             2                                                  2                                               => 2Assembler-Pseudo-Befehle (4) (DB / C):         => 2--------------------------------------            2Zur Eingabe von Datenbytes wurden zwei weitere    2Befehle implementiert. Mit der Eingabe: C         2geht DC in den Code-Mode und fragt die Datenbytes 2über die Tastatur ab. Der Befehl besitzt die glei-2che Wirkung wie das Code-Kommando.                2                                                  2Alternativ existiert der Befehl DB (Data Bytes).  2Hinter der DC-Anweisung lassen sich Hexzahlen di- 2rekt eingeben. Die Zahlen sind mit Kommas zu tren-2nen und mit Return abzuschließen. Zwischen dem Be-2fehl DC und dem Code muß ein Blank stehen.        2Beispiel:    DB 0D,0A<Return>                     2                                               => 2Programm-Ende:                                 => 2--------------                                    2                                                  2Mit Q(uit) verlassen Sie den Didaktischen Computer2Es wird nochmals nachgefragt, ob das Programm auch2wirklich beendet werden soll.                     2                                                  2Die Online-Hilfe läßt sich über die Taste F1 akti-2vieren und mit ESC beenden. Mit F1 gelangen Sie   2aus jedem Punkt in das Indexmenü. Mit den Tasten  2PgUp und PgDn läßt sich zwischen den Seiten hin   2und her blättern. Durch Eingabe einer Codezahl    2wird g.g.f. ein Submenü erreicht.                 2                                                  2Ende der Hilfestellung !                          