M242

Assembler

Assembler

Andreas Odermatt
Study

Andreas Odermatt
Diese Lernkarten behandeln grundlegende Konzepte der Informatik auf Berufslehre-Niveau, mit Fokus auf Interrupts, Adressierung, Befehle und CPU-Funktionen. Sie decken Themen wie Stack-Speicherung, verschiedene Adressierungsarten, Befehlssätze und Interrupt-Typen ab. Ideal für Lernende, die sich mit Prozessorarchitektur und Assemblerprogrammierung vertraut machen möchten, um die Funktionsweise von Computersystemen besser zu verstehen.
Flashcards
33
Students
2
Language
German
Category
Computer Science
Created / Updated
07.06.2014 / 14.03.2017

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

Study