Unterscheidung nach Instruktionsstruktur Kap. 6 / 34 Unterscheidung nach Befehlstypen: Übersicht Register-Register MOV r r, r 2 A Speicher/Peripherie Register Transferbefehle LDA addr STA addr Konstante Speicher/Register MVI M,K B Eingabe Akku Akku Ausgabe Ein-/ Ausgabebefehle IN addr (8 bit) OUT addr (8 bit) C Addition Subtraktion (über Komplement) Arithmetische Befehle ADD r/m SUB r/m D Logische Operationen AND, OR, NOT JNZ, etc. E Sprungbefehle CALL, RET RST n Kap. 7 / 34 Dr. R. Viga / EBS 28
Befehlstypen A Prozessorregister A Register-Register Speicher/Peripherie Register Konstante Speicher/Register Transferbefehle Beispiel für indirekte Adressierung MOV r, r 2 LDA addr STA addr MVI M, K Speicheradresse für indirekte Adressierung für H-L-Register Konstanter Wert Kap. 8 / 34 Befehlstypen B und C B Eingabe Akku Akku Ausgabe Ein- /Ausgabebefehle IN addr (8 bit) OUT addr (8 bit) C Addition Subtraktion (über Komplement) Arithmetische Befehle ADD r/m SUB r/m Mit Rechenoperationen verbunden sind sog. Flags: CY = carry : bei Übertragung über höchstes Bit hinaus AC = auxiliary carry : bei Übertragung von Bit 2 3 nach 2 4 P = parity : bei gerader Anzahl von en im Wort Z = zero : bei Ergebnis S = sign : erhält Wert von Bit 7 Kap. 9 / 34 Dr. R. Viga / EBS 28 2
Mehrbyte-Addition, z. B. 3-Byte3 Byte-Zahlen LDA 3H LXI H; 33H ADD M STA 4H LDA 3H INX H ADC M STA 4H LDA 32H INX H ADC M STA 42H MVI A; ACI STA 43 ;. Byte des. Operanden holen ; H und L bekommen die Adresse des 2. Operanden ; beide Operanden addieren ; Ergebnis abspeichern (. Byte) ; 2. Byte des. Operanden holen ; H und L zeigen auf das 2. Byte des 2. Operanden ; Addition mit Carryinhalt ; Ergebnis abspeichern (2. Byte) ; 3. Byte des. Operanden holen ; H und L zeigen auf das 3. Byte des 3.Operanden ; Addition mit Carryinhalt ; Ergebnis abspeichern (3. Byte) ; Akku auf Null setzen ; zum Akku und Carrybit addieren. Im Akku steht jetzt eine, wenn das Carrybit war; ansonsten ; Ergebnis abspeichern (4. Byte). Operand: B 3 B 2 B 32H 3H 3H 2. Operand: C 3 C 2 C 35H 34H 33H Kap. 2 / 34 Subtraktion als Addition im 2er-Komplement er Komplement bitweise Invertierung, also und 2er Komplement er Komplement + (ohne Übertrag) 8 8 H -3 + CY = FD H 5 H 3 3 H -8 + CY = F8 H FB H 2 7 2 6 2 5... 2 = + 27 = + = 2 7 2 6 2 5... 2 = - = - 28 Kap. 2 / 34 Dr. R. Viga / EBS 28 3
Befehlstypen D und E Bedingte Sprungbefehle: JNZ = Jump not Zero Unterprogrammsprung und Rücksprung D E AND, OR, NOT JNZ, etc. CALL, RET RST n Logische Operationen Sprungbefehle Unbedingter Sprungbefehl: RST = Restart, hier sog. Interrupt Kap. 22 / 34 Analyse des Befehlssatzes 88/ 885 Tabelle beispielhaft, unvollständig STA 487H 32H Registerpaare XX I LXI REG XXI I DAD I I SHLD LDA 3H 3AH A III II I LHLD B II I STA C I III I LDA D zur indirekten I X I STAX MOV C,E 4BH E II I XI I LDAX H Adressierung I XXI II DCX RP L II I XX II INX RP (H),(L) II II I INR M XXX I INR REG I ddd SSS MOV r,r 2 II II DCR M I II SSS MOV M,r 2 XXX II DCR REG I ddd II MOV r,m ddd II MVI REG I II II HLT II II MVI M I XXX ADD REG III RLC II ADD M I RRC I XXX ADC REG I RAL MVI M,4BH 36H II ADC M II RAR I XXX SUB REG I DAA II SUB M II CMA II XXX SAA REG II STC II SAA M III CMC I XXX ANA REG NOP II ANA M II XXX XRA REG II CRA M II XXX ORA REG II ORA M III XXX CMP REG II CMP M Zu allen Befehlen gibt es Angaben, wie viele Taktzyklen für die Ausführung erforderlich sind. Kap. 23 / 34 Dr. R. Viga / EBS 28 4
Notwendigkeit der unterschiedlichen Adressierungsarten - Erleichterung der Programmierung (bei sog. Assemblerprogrammen) - Beschleunigung der Verarbeitung (weniger Befehle, Adressen in CPU) - Kürzere Befehle - Hilfsmittel für die Speicherorganisation Adressierungsarten des 885 - Registeradressierung (a) - Register indirekt (b) - Absolute Adressierung weist in Speicher (c) - Automatisches inkrement / dekrement über Register (d) - Indizierte Adressierung (e) - Basis Adressierung (f) - Page Adressierung (g).5 Adressierungsarten Kap. 24 / 34 Registeradressierung (a) z. B. MOV C,E Register indirekt (b) z. B. MVI M, 4BH.5 Adressierungsarten Kap. 25 / 34 Dr. R. Viga / EBS 28 5
Absolute Adressierung (c): long absolute z. B. LDA 3H Absolute Adressierung (c): short absolute.5 Adressierungsarten Kap. 26 / 34 Automatisches inkrement über Register (d) Automatisches dekrement über Register (d).5 Adressierungsarten Kap. 27 / 34 Dr. R. Viga / EBS 28 6
Indizierte Adressierung (e) Basis Adressierung (f).5 Adressierungsarten Kap. 28 / 34 Page Adressierung (g) Jede Adressierung kann so gedeutet werden. Unterteilung des Speichers in Blöcke bzw. Seiten (pages) Page Nummer konstant Page Nummer aus Register, z.b. PC (oft bei Sprungbefehlen).5 Adressierungsarten Kap. 29 / 34 Dr. R. Viga / EBS 28 7
Software-Interrupts Assembler-Befehl: RST...7 (für "restart" zusammen mit Sprungvektor m) m führt auf Adressen m 8, also, 8, 6,, 56 im Speicher. Die Adressen m 8 gelangen in den PC als neue Programmadresse. Hardware-Interrupts Hardware-Interrupts werden durch externe Hardware-Ereignisse ausgelöst; Hardware-Interrupts haben unterschiedliche Prioritäten. Hardware-Restart Prioritäten: Trap, RST 5.5, RST 6.5, RST 7.5, INTR 2 3 4 5 Maskierbar (enable/disable) Auf INTR muss Software RST m- Befehl folgen.6 Interruptsystem Kap. 3 / 34 Interrupt-Übersicht TRAP RST RST MEMORY ADDRESSES H 8H RST 7.5 RST 6.5 RST2 RST3 H 8H RST 5.5 885A EXECUTING SOFTWARE RST INSTRUCTIONS IN RESPONSE TO INTR RST4 RST5 RST6 RST7 885A SYSTEM MEMORY 2H 24H 28H 2CH 3H 34H 38H 3CH.6 Interruptsystem Kap. 3 / 34 Dr. R. Viga / EBS 28 8
Vorschau: Interruptnutzung im PC (Teil ) Nummer Nr. Hex Adresse Segment offset Anwendung $ $ $47B : $CE Prozessor: Division durch Null $ $4 $352 : $45C Prozessor: Einzelschrittsteuerung 2 $2 $8 $DDF : $6 NMI-Interrupt: Systemfehler 3 $S3 $C $352 : $465 Haltepunkt durch Code $CC 4 $4 $ $7 : $75C Befehl INTO (Interrupt bei Overflow) 5 $5 $4 $F : $FF54 BIOS: Hardcopy durch Druck-Taste 6 $6 $8 $F : $F856 Prozessor (8286: unbekannter Code) 7 $7 $C $F : $F856 Prozessor (8286: Speicherschutz) 8 $8 $2 $DDF : $AB Gerät IRQ: Timer 9 $9 $24 $352 : $4BA Gerät IRQ: Tastatur $A $28 $F : $F853 Gerät IRQ2: AT: 2. PIC-Baustein XT: Bildschirm $B $2C $F : $F853 Gerät IRQ3: COM2 (Serienschnittstelle).6 Interruptsystem Kap. 32 / 34 Vorschau: Interruptnutzung im PC (Teil 2) Nummer Nr. Hex Adresse Segment offset Anwendung 2 $C $3 $FD : $BE Gerät IRQ4: COM (Serienschnittstelle) 3 $D $34 $F : $F853 Gerät IRQ5: AT: LPT2 (Drucker) XT: Festplatte 4 $E $38 $DDF : $43A Gerät IRQ6: Diskettenlaufwerke 5 $F $3C $7 : $75C Gerät IRQ7: LPT (Drucker) 6 $ $4 $352 : $7 BIOS: Bildschirmfunktion 7 $ $44 $F : $F84D BIOS: Ausgabe der Konfigurationsdaten 8 $2 $48 $F : $F84 BIOS: Ausgabe der Speichergröße 9 $3 $4C $352 : $74 BIOS: Disketten- u. Festplattenfunktionen 2 $4 $5 $F : $E739 BIOS: Serielle Schnittstellenfunktionen 2 $5 $54 $F : $F859 BIOS: AT: Echtzeituhr XT: Kassettenlaufwerk 22 $6 $58 $F : $E82E BIOS: Tastatur- und Druckerfunktionen 23 $7 $5C $F : $EFD2 BIOS: Parallelschnittstelle (Drucker).6 Interruptsystem Kap. 33 / 34 Dr. R. Viga / EBS 28 9
Vorschau: Interruptnutzung im PC (Teil 3) Nummer Nr. Hex Adresse Segment offset Anwendung 24 $8 $6 $F : $E BIOS: Start des ROM-BASIC (wenn vorhanden) 25 $9 $64 $7 : $9C BIOS: Systemneustart (STRG + ALT + ENTF) 26 $A $68 $F : $FE6E BIOS: Systemuhrenfunktionen 27 $B $6C $AAE : $F2 BIOS: Unterbrechung (STRG + Pause) 28 $C $7 $F : $FF53 BIOS: Timer - Interrupt (8.2 mal pro sek.) 29 $D $74 $F : $FA4 BIOS: Zeiger auf Videotabelle 3 $E $78 $ : $522 BIOS: Zeiger auf Laufwerktabelle 3 $F $7C $C : $483E BIOS: Zeiger auf Grafikzeichentabelle 32 $2 $8 $275 : $45C DOS: Rücksprung nach DOS 33 $2 $84 $352 : $7F DOS: Betriebssystemfunktionen MsDOS (register).6 Interruptsystem Kap. 34 / 34 Dr. R. Viga / EBS 28