M242
Assembler
Assembler
-
- 1 / 33
-
Flashcards
Beschreibe Softwaregesteuerte Systeme (Polling)
Bei einem softwaregesteuertem System bestimmt das Programm die Priorität der durchzuführenden Operationen. Zeitkritische Berecihe müssen durch den Programmierer erkannt werden.
Alle Eingaben von der Peripherie können nur durch Abfragen erfasst werden.
Softwaregesteuerte Systeme sidn ungeeignet zur Berarbeitungzeitkritischer Prozesse
BeschreibeHardwaregesteuerte Systeme (Interrupt)
Eine von der Peripherie ausgelöstes Signal unterbricht die momentane Programmausführung der CPU und veranlasst diese, in ein ganz sepzelles Unterprogramm (Interrupt-Serviceprogramm) zu springen.
Die Verwendung der Interrupttechnik erlaubt eine schnelle und drignlichkeitsgerechte Reaktion auf äussere Situationen.
DMA-System
DMA = Direct memory access
Aufgaben werden auf mehrere Computersysteme verteilt. Ein Zentralrechner überwacht den ganzen Ablauf. Der dirkete Speicherzugriff erlaubt einen sehr grossen Datendurchsatz in kurzer Zeit, beansprucht jedoch ein en erheblichen Aufwand an Hardware.
Die CPU hat für diese Tätigkeit keine Aufgaben, sie stellt ihre Arbeit so lange ein, bis das DMA-Anforderungssignal zurückgenommen wird.
Die maximal mögliche Übertragungsgeschwindigkeit der DMA hängt von der externen Einheit und der Zugriffszeit der verwendeten Speicherbausteinen ab.
Was ist Transparenz im Zusammenhang mit Interrupts?
Bei einem Interrupt werden bestimmte Aktionen unternommen und Code ausgeführt. Nachdem aber alles beendet ist, sollte der Computer genau in den Zustand zurückkehren, den er zuvor hatte, bevor das Interrput eintrat. Eine Interupt-Routine mit dieser Eigenschaft gilt als transparent.
Beschreibe Einleiter-Interrupt
Alle Interrupts werden über eine Leitung angemeldet. Die CPU führt beim Empfang eines Interrupts ein Unterprogrammaufruf zu einer intern festgelegten Adresse durch. Dort muss ein Programm beginnnen, das den Verursacher durch Abfragen der einzelnen Einheiten bestimmt. Das Abfrageprogramm bestimmt die Reihenfolge und die Art der Bedienung.
Beschreibe Mehrleiter-Interrupt
Mehrere Interruptleitungen
Solange die Anzahl der externen Einheiten die der INterruptleitungen nicht übersteigt, stehen für jede externe Einheit eine Leitung mit festgelegter Priorität zur Verfügung. Wird eine Lietung aktiviert, dann führt die CPU einen jeweils festverdrahteten Unterprogrammaufruf durch. Hier sind mehrstufige Unterbrechungen möglich
Beschreibe Gerichtetes bzw. angezeigtres Interrupt (Vectored Interrupt)
Die Peripheriegeräte müssen eine zusätzliche Information liefern, welche die zu bedienende Einheit anzeigt. Dieser Zeiger auch Interruptvektor genannt führt direkt zum jeweiligem Serviceprogramm.
Wenn ein Interrupt ausgelöst wird, kommen die Quellenangaben über den Datenbus. Anschliessend wird dieser Wert mit der Vektortabelle abgeglichen und die Nötige Service Routine ausgeführt.
Bei einem 8-Bit-System sind theoretisch 256 verschiedene Vektoren und damit ebenso viele gerichtete Unterbrechungen möglich. Die CPU muss ein zusätzliches Signal (IN-TACK)erzeugen, welches die Peripherie zur Abgabe ihres Vektors auffordert.
Beschreibe Maskierbarer Interrupt (IRQ, FIRQ)
Bei einem Maskierbaren Interrupt wird nur dann ein Interrupt zugelassen wenn dies zuvor mit einem Maschinenbefehl (EI = Enable Interrupt) erlaubt wurde.
Die meisten Mikroprozessoren mit maskierbaren Interrupt ignorieren weitere Unterbrechungsanforderungen unmittelbar nach der Annahme des Interrupts. Hierbei wird Automatisch das Interrupt deaktiviert (DI = Disable Interrupt)
Ein maskierbarer Interrupt kann durch ein Flag freigegben werden.
1.1 Nichtmaskierbare Interrupt
Es sind praktisch alle Interrupts maskierbar. Es gibt jedoch gewisse Fälle in denen ein Interrupt auf keinen Fall ignoriert werden darf.
Beispielsweise bei einem Stromausfall müssen die wichtigsten Daten auf ein Batteriegepufferten Speicher gerettet werden.
Eine Unterbrechung, die über NMI ausgelöst wird, hat absolute Priorität und wird immer durchgeführt.
Eine Ausnahme bildet nur die RESET-Routine eines Prozessors.
Was machen RCALL und RET in Bezug mit der Verwendung des Stacks?
RCALL legt die Rücksprungadresse auf den Stack und setzt den Programmcounter auf die Adresse des Unterprogramms
RET liest die Rücksprungadresse aus dem Stack und setzt den Programmcounter mit dem neuen Wert
Was übersetzt ein Assemblerprogramm in Maschinensprache?
Der Assembler (nicht Compiler!)
Für was werden die Befehle;: PUSH und POP bei den Atmel-Controller im Assemblercode verwendet?
PUSH wird für die Abspeicherung eines Registerwertes auf dme Stack verwendet. Wert wird and er obersten Stelle abgelegt
POP liest den nächsten Wert aus dem Stack heraus und speichert diesem in einem Register ab
Welcher Speicherbaustein wird mittels UV_Licht gelöscht?
EPROM
Mit welchem Befehl kann ich die unteren 4-Bits eines Byters mit den 4-Bits vertauschen?
SWAP
Welches ist der Unterschied zwischen den Befehlen ADD und ADC?
ADC wird das Carry Bit auch addiert
Welche 2 Möglichkeiten kennen Sie um das REchenregister mpr auf den Wert 0 zu setzen?
CLR mpr
LDI $00
Für was wird der Befehl EQU verwendet?
Um konstanten zu definieren
Befehl DEF?
Variabeln definieren
Für was wird der Stack benötigt?
Funktioniert mit Last-in-first-out prinzip (Daten werden aufeinander gestapelt und können nur in der richtigen Reihenfolge vom Stack genommen werden). Es können Rücksprungadressen, Paramterer, oder Variablen gespeichert werden.
Für was steht CISC?
Complex Instruction Set Computer
Für was steht RISC?
Reduced Instruction Set Computer
Dreiadressbefehle
2 Quellenadressen und 1 Zieladresse sind vorhanden
Wird von Dreiadressmaschinen verarbeitet (modern und leistungsstark)
Zweiadressbefehle
2 Quellenadressen, aber Resultat wird in 1. Quellenadresse gespeichert
Auch verdeckte Adressierung genannt
Zweiadressmaschinen sind mittel bis hoch Leistungsfähig
Direkte Adressierung
Hauptgruppe Adressierungsarten 1 von 2
Die EA (Effektive Adresse ) kann auf 2 Arten bestimmt werden:
- Direkt vom Befehl entnommen oder durch Berechnung von Werten aus dem Befehl und aus dem Register bestummen
- Durch das bestimmen mit höchstens einer Adressberechnung
Indirekte Adressierung
2. Hauptart von Adressierungsarten
Es sind zwei Adressberechnung für das bestimmen der Effektiven Adresse nötig
implizite Adressierung
Die Angabe des Operanden inst implizit im Befehlscode enthalten/
Adresse des Operanden ergibt sich aus dem Befehl
(z. B. wird in einem Einadressrechner der Akkumulator als
Adresse des zweiten Operanden angesehen).
Bsp: INCA, MUL, ASLA, RTS
Register Adressierung
Der Operand steht in einem der Prozessorregister. Die Adresse steht als kurze
Registeradresse im OpCode. Als Register können universelle Register wie z.B.
Datenregister oder Adreßregister, aber auch spezielle Register wie Stackpointer,
Statusregister usw. angesprochen werden.
Bsp: EXG X, Y; PULS U,Y
unmittelbare Adressierung (Immediate)
Operation wird mit konstanten WErt ausgeführt, befindet sich nach dem Befehlscode
absolute Adressierung
Die effektive Adresse des Operanden befindet sich als absolute Adresse direkt im
Anschluß an den Opcode im Speicher. In der Assemblersyntax (68000) steht die
Adresse ohne spezielle Kennzeichnung als Zahlenwert direkt hinter dem Opcode.
absolute lang adressierung
Bei der Extended-Adresierung enthält der Operandenteil des Befehls immer die 16 Bit lange effektive Adresse
Absolute kurz adressierung (direct)
EA wird aus High und low byte gebildet
indizierte Adressierung (indexed)
Effektive Adresse (EA) des Operanden wird durch
Addition des Wertes eines Indexregisters (X) und der
direkten Adresse (DA) berechnet:
EA = X + DA
Wo ist der Stack gespeichert?
Im RAM