Forum: Mikrocontroller und Digitale Elektronik code analyse


von Fritz (Gast)


Angehängte Dateien:

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

von Martin S. (Gast)


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

von Sebastian (Gast)


Lesenswert?

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

Seb

von Thomas (Gast)


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.

von Thorsten (Gast)


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.

von Martin S. (Gast)


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.

von Fritz (Gast)


Lesenswert?

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

von Der Elektrische Reiter (Gast)


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

von Fritz (Gast)


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 ?

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.