www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik code analyse


Autor: Fritz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hab mir aus dem internet ein programm geholt was genau das macht was ich
brauche. es wandelt eine 16 bit große zahl in BCD code um. das problem
ist das ich das verahren nach dem die umwandlung funktioniert nicht
verstehe.
kennt sich damit hier wer aus?
danke

Autor: Martin S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich möcht ja nicht als Rüpel dastehen, aber überleg mal scharf:

DU möchtest, daß DIR jemand bei einer bestimmten Fragestellung hilft.
DEIN Beitrag dazu besteht darin, unvollständige Informationen "in den
Raum zu werfen", eine Frage noch hinterher , und du hoffst nun auf
reiche Antworten. Nur, was sollen dir denn die vielen hundert Leser
deiner Frage zurückmelden? Etwa folgendes:



"hab mir aus dem internet ein programm geholt"
-> Schön, und für welchen Prozessor soll das sein?

"was genau das macht was ich brauche"
-> Super, dann sei doch froh!

"das problem ist"
-> tja, das ist DEIN Problem. Was sollte mich motivieren, darüber
nachzudenken, WAS GENAU der Punkt ist den du nicht verstehst?

"das ich das Verfahren ... nicht verstehe."
-> Dann nimm das Handbuch zum Prozessor und lese, was zu den einzelnen
Registern und Befehlen da drin steht. Danach verstehst du es.



Wäre deine Anfrage gewesen:
Das anhängende Beispielprogramm für den Prozessor "ALF-99" macht
genau das was es soll ... aber mir ist nicht klar warum in Zeile 14
"DIV   AB" aufgerufen wird, denn Register xy hat doch dann schon den
Wert Z, oder hab ich da was überlesen?

Dann hättest du ja noch eine minimale Chance gehabt, aber so ....


"kennt sich damit hier wer aus?"  > ja, es kennt sich hier jemand aus

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal auf www.avr-asm-tutorial.de da findest du ein paar Routinen
und die sind auch erklärt.

Seb

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein paar informationen mehr wären schon hilfreich.
aber das, das programm für einen 8051 ist, ist schon ersichtlich. und
das jemand sich mit einem programm auskennen will auch wenn er es nicht
selbst geschrieben hat ist doch auch nicht schlimm, oder?

ich nehme mal an das du nicht hilfe bei den befehlen oder registern
brauchst sondern das du das programm prinzipiell nicht verstehst, also
den Algorithmus.

kann dir da aber leider auch nicht weiterhelfen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Martin S.

Was genau würde dir denn dir Info bzgl. des verwendeten µC bringen? Was
der Codeschnipsel macht, ist ja schon geschriben worden.

Autor: Martin S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thorsten

Es erhöht möglicherweise die Anzahl derer, welche Lust hätten, dem
Ursprungsposter eine Antwort zu schreiben.

Pauschal-Anfragen wie:
- "wie kann man Auto fahren lernen ?"
- "kennt jemand ein schönes Urlaubsziel ?"
- "Welches Cocktail schmeckt am besten ?"
- "ich weiß nicht was soll es bedeuten" (trifft am ehesten zum
Ursprungsposting)

betrachte ich immer mit etwas Skepsis.

Sicherlich ist nicht jedem zu eigen, sich vollständig und episch zu
artikluieren. Aber ein paar Angaben dazu was derjenige gemacht hat, und
was nun genau noch fehlt, wären schon etwas hilfreich.

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas hat das richtig erkannt. wenn mir jemand helfen will dann braucht
er nicht mehr informationen dazu.

Autor: Der Elektrische Reiter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Assr-Source ist weisgott nicht schön dokumentiert...

Wir Assembler-Programmierler lieben es eben wenn man uns nicht so in
die Karten gucken kann. Wir lieben unstrukturierten Code, der voller
Tricks und falschen Komentaren seckt. Im überigen nutzen wir Komentare
in 90% der Fälle dazu um Befehle wegzukomentieren. (Damit hab' ich
mich als '51er Assembler-Fan geoutet)

Versuch's doch mal selbst:

Nimm den Codefetzten, Jag ihn durch den Compiler und Linker und mach
ein *.hex-File draus. Und ab in den Simulator (z.B. JSIM
http://home.t-online.de/home/Jens.Altmann/). Wenn Du das Programm im
Einzeschritt abtappelst, und die Register im Aug' behällst, kommst'
Du schnell hinter das Geheimis.

Jetzt entscheidet sich, ob DU ein echter Prgrammierer oder ein
Müslifresser wirst:

Ein Müslifresser überabeitet das Progamm und pept die Komentare auf. Es
wird ggf. ein bisschen länger und auch langsamer. Aber die Funktion wird
klarer.

Ein echter Programmierer überabreitet das Programm und pept die
Mnemonics (Assemblerbefehle) auf. Das Programm wird dann schneller und
kürzer und hat keine passenden Komentare mehr. Die Funktion erahnt mann
erst nach tagelangem knobeln.

cu

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das simulieren von dem code würde mir nicht viel bringen (hab ich
außerdem schon gemacht). den code an sich verstehe ich ja ohne
weiteres. ich möchte nur wissen wieso dieser code eine 16 bit zahl in
bcd umwandelt.
mich interessiert die theorie die dahinter steckt. ich dachte vorher
eigentlich das man diese umrechnung mit divisionen durch 10 machen
kann. aber der code macht noch viel mehr, und ich weiß nicht wieso.

alles klar ?

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.