mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Division beim 8085?


Autor: benno (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.