Forum: Mikrocontroller und Digitale Elektronik Division beim 8085?


von benno (Gast)


Lesenswert?

Ahoi!

muss einen Assemblerbeleg abliefern und bin im moment ein wenig ins
stocken geraten. hier mal die aufgabenstellung:

<<Durch Auslösen des Interrupt RST 6.5 soll über die Eingabeports 0, 1
und 2 eine
dreistellige ASCII-codierte Zahl eingegeben werden. Die Hunderter sind
im Port 0,
die Zehner im Port 1 und die Einer im Port 2 einzugeben. Aus dieser
Eingabe ist
eine Dualzahl zu bilden und im Speicher ab der Adresse 120h abzulegen.
Hinweis: Neben der mathematischen Vorschrift zur Umwandlung einer
Dezimal-in
eine Dualzahl ist in diesen Falle auch die Verwendung einer Tabelle
möglich.>>

soweit so gut. Ich erklär mal kurz wie ich mir das überlegt hab, bzw
wie es im mom aussieht. wird warscheinlich sehr umständlich sein, aber
wir hatten 2x90min Assemblervorlesung und das war nicht sonderlich
ergiebig ;>
also, zuerst setze ich die interruptmaske für 6.5 (mvi A,0Ah ; sim).
dann lese ich die ports ein und subtrahiere jeweils 48 (30h) um das
dezimalequivalent der ascii zahlen zu bekommen. dann folgt schon mein
erster stolperstein. ich könnte die einzelnen stellen nun (mit einer
additionsschleife?) jeweils mit 10&100 multiplizieren und
zusammenaddieren. addiert passt diese dann aber nichtmehr in ein
registerpaar (hat ja bis zu 10bit). also müsste ich die zahl dann im
speicher ablegen(?). ab da könnte ich ja dann mit fortlaufender
division durch 2 die umrechnung ins binärsytem durchführen und die
jeweiligen stellen direkt in den speicher schreiben. hab da jetzt mal
ne weile gesucht, aber es scheint als hätte erst der 8086 einen
divisionsbefehl?
was gibt es für denkfehler in meiner lösungsidee? gibt es einen
einfacheren weg? was ist mit "verwendung einer tabelle" gemeint (es
ist leider nicht möglich den prof zu befragen :( )

ich wäre für jede hilfe sehr dankbar
benno

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.