Forum: PC-Programmierung Assembler Aufgaben


von Isabell I. (Gast)


Lesenswert?

Hallo zusammen!
Ich habe nächste Woche eine Prüfung in Microcomputer.
Bin im 1. Semester und studiere Elektronik und Informationstechnik.
Leider habe ich große Schwierigkeiten beim Programmieren von Assembler.
Hier sind 7 Aufgaben zu lösen die im Schwierigkeitsgrad der Prüfung
ist.
Wenn ihr die alle packt, seit ihr wirkliche Genies in diesem Bereich!
Ich danke euch jetzt schon vielmals für eure Hilfe!!!


Aufgabe 1:
Entwickeln Sie ein Unterprogramm mit dem Namen SUCH, das in einer
Tabelle im externen Datenspeicher ein Zeichen sucht. Dieses Zeichen ist
unter der Adresse AZEI gespeichert. Die Tabelle beginnt bei der Adresse
ATAB. Das Unterprogramm SUCH soll die Adresse des Speicherplatzes,
unter der das zu suchende Zeichen (nur das erste) gefunden wird, im
Speicher unter der Adresse ARES ablegen. Die Länge der Tabelle befinde
sich im R2-Register. Wenn das Zeichen nicht gefunden wird, soll das
Unterprogramm FEHLER aufgerufen werden.
a)Entwickeln Sie zunächst den Programmablaufplan im Pseudocode.
b)Erstellen Sie dann das Programm.


Aufgabe 2:
Entwickeln Sie eine Interruptserviceroutine für den Rechner 80535, die
bei jedem Impuls am Interrupteingang INT4 den Inhalt von Port P4 im
Speicher ablegt. Die Daten sollen in dem Speicherplatz abgelegt werden,
der durch das DPTR-Register adressiert ist. Nach jedem Einspeichern soll
die Speicheradresse erhöht werden. Gehen Sie davon aus, dass die Daten
im Haupt*prog*ramm wieder aus dem Speicher entnommen werden und auch
das DPTR-Register entsprechend verändert wird (dies ist nicht von Ihnen
zu programmieren).
a)Entwickeln Sie zunächst den Programmablaufplan nur für die
Interruptserviceroutine im Pseudocode.
b)Erstellen Sie dann das Programm dazu.


Aufgabe 3:
Entwickeln Sie eine Interruptserviceroutine für den Rechner 80535, die
nach dem 5.Impuls am Interrupteingang P1.1 (EXT4) den Ausgangsport P3.2
auf "1" schaltet und P3.3 auf "0" und dann nach weiteren 3 Impulsen
P3.2 auf "0" und P3.3 auf "1". Nun soll sich alles periodisch
wiederholen.

a)Entwickeln Sie zunächst den Programmablaufplan nur für die
Interruptserviceroutine im Pseudocode.
b)Erstellen Sie dann den Assemblercode dazu.


Aufgabe 4:
Schreiben Sie ein Assemblerprogramm für den Rechner 80535 als
Unterprogramm mit dem Namen GRAY. Es soll 4-stelligen Gray-Code in
Dualcode wandeln. Für dieses Programm gelten folgende Vorgaben:
-Von einem übergeordneten Programm werden die Werte zur Wandlung im
DATA1-Register abgelegt. Sie stehen dort in den niederwertigen Stellen
0 bis 3; die höherwertigen Stellen sind 0.
-Im Programmspeicher befinden sich fortlaufend in einer Tabelle ab der
Adresse 9000H für die Zahlen 0 bis 15 die Werte des Gray-Codes. Der
Wert im Gray-Code im DATA1-Register soll in die zugehörige Dualzahl
gewandelt und diese in das DATA2-Register geschrieben werden.
-DATA1 befindet sich im Datenspeicher an der Stelle D:0x30; DATA2
befindet sich an der Stelle D:0x31

a) Entwickeln Sie zunächst den Programmablaufplan im Pseudocode.
b) Erstellen Sie dann das Assemblerprogramm für den Rechner 80535.


Aufgabe 5:
Entwickeln Sie ein Programm, das folgenden Programmablauf erzeugt: Wenn
im Register R7 der Inhalt 2 ist, soll nur UP1 einmal aufgerufen werden,
wenn im Register R7 der Inhalt 3 ist, soll nur UP2 einmal und für alle
anderen Werte im Register R7 soll nur UP3 einmal aufgerufen werden.
a)Geben Sie für dieses Programm den Pseudocode an. Verwenden Sie dabei
die Kurzschreibweise der Befehlserläuterung.
b)Entwickeln Sie aus dem Pseudocode den Programmcode


Aufgabe 6:
Entwickeln Sie ein Programm, für den folgenden Pseudocode für den MC
80535:

Fall(A)
wenn 'kleiner 5'
(R7)=2
wenn 'kleiner 4'
(R7)=3
wenn 'gleich 4'
(R7)=4
sonst
(R7)=255


Aufgabe 7:
Entwerfen Sie eine Interruptserviceroutine für den Rechner 80535, die
nach dem Einschalten Impulse am Eingang P1.1 zählt und entsprechend
viele Leuchtdioden einer Kette aufleuchten lässt. Die Leuchtdioden sind
an Port P4 angeschlossen. Sie leuchten, wenn eine "1" auf dem
jeweiligen Bit von P4 ausgegeben wird. Die Zählung soll stets bis 6
erfolgen. Nach 6 soll wieder nur eine Diode aufleuchten.
Entwickeln Sie nur den Programmablaufplan im Pseudocode und verwenden
Sie darin die Kurzschreibweise der Befehlserläuterung.

von T. Stütz (Gast)


Lesenswert?

"Wenn ihr die alle packt, seid ihr wirkliche Genies in diesem
Bereich!"
:-)

Wir werden dir sicherlich nicht die Lösungen hinschreiben - das nützt
dir nämlich nichts, deshalb wäre es schon schön wenn du uns schreibst
was du nicht verstehst oder woran es hapert.

Du hast ja regelmäßig Vorlesungen gehabt in denen das ganze behandelt
wurde, zumindest kannst du dir das Skript von einem Mitstudenten
besorgen. Lies dir das mal in aller Ruhe durch.

Gruss

von Manuel B. (Gast)


Lesenswert?

(entfernt)

von mrpfff (Gast)


Lesenswert?

doppelpost & du bist immer noch ein mann ....
http://www.mikrocontroller.net/forum/read-1-302527.html#new

wie wärs mal mit buch aufschlagen und lernen ?
Ach wozu, macht ja arbeit lol

Leute gibts...

von billy (Gast)


Lesenswert?

Aufgaben sind doch Standart. Falls du die Prüfung noch nicht gemacht
hast, kann ich dir das µ.controller-Kochbuch empfehlen. In dem Buch ist
alles anschaulich dargestellt. Wegen Prioritäten usw. Zudem sind die
ganze Befehle wunderbar erklärt.

P.S. Hat mir irgendjemand ein Buchtip um µ-Controller in C zu
programmieren(Sollte nicht die 20€ Grenze überschreiten)

Gruß billy

von @isabell (Gast)


Lesenswert?

also du studierste elektronik und informtionstechnik, nun dann dürftest
du an der hs heilbronn studieren, aber mal ganz ehrlich wenn du diese
aufgaben nicht lösen kannst dann solltest du dir überlegen ob du in
diesem studiengang überhaupt richtig bist.

von Gary (Gast)


Lesenswert?

Schliese mich isabell an - das sind doch nur Daten- und
Pointer-"Schieberrein".

von Stephan H. (stephan-)


Lesenswert?

kann mich nur anschließen.

zu 1.bis 7. : Hausaufgaben machen, Lösung erarbeiten und falls dann
noch Fragen sind, hier einstellen und Dir wird geholfen.

ABER....SOOOO NICHT !!!!

von Thomas Strauß (Gast)


Lesenswert?

Hallo Isabelle,

Assembler-Programmierung von Mikrocontrollern wie dem 8051-Derivat
80535 (der 8051-Urahn wurde von Intel Ende der Siebziger-Jahre
entwickelt und 1980 vorgestellt)ist eigentlich relativ einfach.
Manchmal gibt es ein paar Kompliziertheiten, vor allem in Zusammenhang
mit mehreren Interrupts. Man muß dafür sorgen, daß keine Informationen
überschrieben werden (also pushen und später wieder poppen,
Registerbank wechseln etc.).

Die 7 Aufgaben sind von der Thematik eher Grundaufgaben eines 8Bitters
wie dem 80535, die man nach 1-jähriger Praxis drauf hat!

Ich habe mal Elektrotechnik studiert (in Köln); habe aber mein Studium
hingeschmissen...

Mit dem Informatik-Studium hast Du dir aber ganz schön was aufgehalst!
Da musst Du Dich schon sehr für die Materie interessieren, denn das
Studium hat ja mehr als 1 Semester. Überleg, ob das auf Dich zutrifft.

Hier in Berlin gibt es den Lette-Verein, der bietet seit einigen Jahren
die 2jährige Ausbildung zum elektrotechnischen Assistenten an; die haben
da auch ein Mikrocontroller-Praktikum.

Ich programmiere Mikrocontroller privat, wie den 80C32X2 von Atmel,
80C552 von Phillips und derzeit hadere ich mit dem 80C49 von Oki herum!
Es macht mir Spaß, aber wenn da jetzt Druck von der Uni hinter wäre,
weiß ich nicht, ob das so bleiben würde!

Thomas

von ,,,, (Gast)


Lesenswert?

> (entfernt)

Was soll eigentlich der Quatsch ständig?

von T. Stütz (Gast)


Lesenswert?

@QuadColon aka ,,,,

vermutlich weil da jemand so einen Sch*** geschrieben hat das es
einfach weggeputzt werden mußte :-)

Gruss

von not_an_assembler_crack (Gast)


Lesenswert?

Hallo,

habe auch MC Praktikum und ich suche ein Programm dass aus Code ein
Struktrogramm genreriert, MyFriend kann leider nur C, gibts da nich was
für 80c167.

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.