Deutsches ASM Tutorial (Abgebrochen)

geschrieben am 05.04.2012 19:50:37
( Link )
Sorry WYE, dein Kommentar hab ich übersehen.

neuer Versuch, hoffentlich besser anzeigen
Code
LDA $0DBF       ; Lade Münzen
CLC ; wir addieren zu den Münzen
ADC #50 ; 50 weitere Münzen
BCC Zuviel ; Sobald man 50 Münzen hat und 50 addiert wird die Carryflag gesetzt
STZ $0DBF       ; Sollte die Carryflag aktiv sein setzen wir die Münzen auf 0.
SEC ; Ist die Carryflag nicht aktiv subtrahieren wir
SBC #49 ; 49 Münzen. So haben wir am Ende 1 addiert (+50-49)
STA $0DBF ; Speichern
geschrieben am 05.04.2012 20:25:48
( Link )
Zitat von kooooopa:
BCC Zuviel ; Sobald man 50 Münzen hat und 50 addiert wird die Carryflag gesetzt


Nein, die Carry Flag wird gesetzt, wenn das Ergebnis über 255 liegt. Nicht, wenn es über 100 liegt.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 05.04.2012 20:26:08
( Link )
tut mir leid dir das sagen zu müssen aber entweder ist das jetzt totaler müll
oder ich versteh es einfach nur nciht...
Spoiler anzeigen
Code
LDA $0DBF
CMP #$31
BCC GenugCoins
STZ $0DBF
BRA Return
GenugCoins:
INC $13CC
Return:
RTL

SO hast du es glaube ich gemeint...
aber den sinn verstehe ich dann immernoch nicht
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 05.04.2012 20:35:05
( Link )
Zünni, ich glaube ersteres trifft zu.

Ok, noch ein Versuch:
Spoiler anzeigen
Code
LDA $0DBF           ; Lade Münzen
CMP#51 ; Vergleich mit 51
BCS STZ $0DBF       ; Größer gleich 51, dann mach die Münzen zu 0
INC A ; Andernfalls addiere die Münzen um 1
STA $0DBF ; Speichern
geschrieben am 05.04.2012 20:40:35
( Link )
Zitat von mzünni:
tut mir leid dir das sagen zu müssen aber entweder ist das jetzt totaler müll
oder ich versteh es einfach nur nciht...


Ich weiß nicht mehr, was das Ziel war, aber dein Block erhöht die Münzen, bis sie >= 50 sind und setzt sie dann auf 0 zurück. Lediglich die Labels sind bei dir irreführend.

Zitat von mzünni:
SO hast du es glaube ich gemeint...
aber den sinn verstehe ich dann IMMER NOCH nicht


Wer sagt, dass das einen Sinn hat? Das sind Übungsaufgaben.

Zitat von kooooopa:
BCS STZ $0DBF ; Größer gleich 51, dann mach die Münzen zu 0


Also das macht jetzt gar keinen Sinn mehr. Hinter Branch-Befehlen muss immer eine Adresse stehen (in xkas in der Regel in Form eines Labels angegeben).
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 05.04.2012 20:48:45
( Link )
Was das war richtig?

RPG-Hacker mein Held!!!!
Endlich geschafft.
zünni du arsc..... verwirr mich nicht
geschrieben am 05.04.2012 21:00:47
( Link )
Wieso, wann habe ich denn mir dir geredet? Deine Version habe ich doch ganz klar als "falsch" abgestempelt. Tatsächlich habe ich gar nichts in Richtung "richtig" gesagt. Wenn überhaupt habe ich im Bezug auf mzünnis angedeutet, dass es richtig sein könnte. :/

EDIT:
Aber selbst seine Version scheint wohl falsch zu sein. Folgendes war die Aufgabe:
-Münzen immer wieder um 1 erhöhen
-Sind Münzen über 99: Zurücksetzten auf 0
-Sind Münzen auf 50: Aufhören mit dem Erhöhen

Hier mal eine mögilche Musterlösung (vorausgesetzt der Lebenszähler ist egal):
So könnte es aussehen anzeigen
Code
LDA $0DBF
CMP #$32
BEQ Genug
INC $13CC
Genug:
RTL
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 05.04.2012 21:08:06
( Link )
Achso, du meinst das das hier richtig ist, nich meins
Zitat von mzünni:

Spoiler anzeigen
Code
LDA $0DBF
CMP #$31
BCC GenugCoins
STZ $0DBF
BRA Return
GenugCoins:
INC $13CC
Return:
RTL


Also wenn ich das Richtig verstehe werden hier:
Spoiler anzeigen
Zuerst die Münzen geladen.
Dann mit 31 (Hex) also 50 Verglichen
Dann gibt es die Möglichkeit genug (50 oder mehr Coins) BCC GenugCoins INC $13CC
oder nicht genug Coins und es wird auf 0 gesetzt. STZ $0DBF

Nur was bedeutet das BRA Return, das Return: und das RTL?
geschrieben am 05.04.2012 21:13:44
zuletzt bearbeitet von mzünni am 05.04.2012 21:20:35.
( Link )
das ist einfach das ende...
und BRA heißt soviel wir "Branch alway/ springe immer"
so wie BCC nur das es immer passirt

EDIT: @RPGHacker meins war nur meine deutung von dem Rot/Blau/grunem von kooooopa
WAS, WIE, WO???? Ne, Ne ich bin nicht die Signatur ...
Ich putze hier nur.

Mein Hack:
<!-- m --><a class="postlink" href="http://www.youtube.com/user/conankun88#p/a/u/0/8vdcyGylrg0">http://www.youtube.com/user/conankun88# ... vdcyGylrg0</a><!-- m -->
geschrieben am 05.04.2012 21:15:40
( Link )
Zitat von kooooopa:
Achso, du meinst das das hier richtig ist, nich meins


Nein, keiner der beiden ist (im Sinne meiner Aufgabenstellung) richtig.
Wie ich vorhin schon sagte: Seiner läuft bis 49. Hat der Spieler mehr als 49 Münzen, wird sofort auf 0 gesetzt.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 05.04.2012 21:17:47
( Link )
Äh, ist deins nicht auch falsch, RPG? 32 mit 0 vergleichen? Oh Gott, die Verwirrung hier drin.

Hier, folgendes. (EDIT: So, jetzt.)

Code
LDA $0DBF
CMP #50
BEQ noInc
INC $0DBF
noInc:
CMP #99
BCC return
STZ $0DBF
return:
RTS
geschrieben am 05.04.2012 21:19:33
( Link )
Zitat von WYE:
Äh, ist deins nicht auch falsch, RPG? 32 mit 0 vergleichen?


WHOOPS! Da habe ich wohl zu viel geraucht! XD
Ist jetzt korrigiert.

Das
Code
BEQ return
CMP #99
BCC noReset
STZ $0DBF

in deiner Version braucht man (um das für alle klarzustellen) nur, wenn man verhindern will, dass der Lebens-Counter erhöht wird.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 05.04.2012 21:24:24
( Link )
Ähm.... Sorry, steig jetzt nicht mehr ganz durch.
Was ist den jetzt richtig und wieso?
geschrieben am 05.04.2012 21:26:50
( Link )
Zitat von kooooopa:
Was ist den jetzt richtig [...]


WYEs Version und meine korrigierte Version.

Zitat von kooooopa:
[...] und wieso?


Weil diese zwei Versionen genau das tun, was die Aufgabenstellung verlangt.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.

geschrieben am 05.04.2012 21:29:32
( Link )
Ich nehme jetzt mal mein Beispiel, von dem ich weiß, dass es funktioniert, und kommentiere es ausführlich.

Code
LDA $0DBF
; Lade die Anzahl der Münzen in A.

CMP #50
; Vergleiche sie mit 50.

BEQ noInc
; Wenn sie (genau) 50 sind, gehe zum Label "noInc".

INC $0DBF
; Wenn nicht, dann macht der Code hier weiter - und erhöht die Anzahl der Münzen um eins.

noInc:
; Hier ist das Label "noInc".

CMP #99
; Vergleiche die Anzahl der Münzen (die haben wir immer noch in A) mit 99.

BCC return
; Wenn sie weniger als 99 sind, gehe zum Label "return".

STZ $0DBF
; Setze die Anzahl der Münzen auf 0 zurück.

return:
; Hier ist das Label "return".

RTS
; Ende der Routine.
geschrieben am 05.04.2012 21:31:37
zuletzt bearbeitet von kooooopa am 05.04.2012 21:51:15.
( Link )
Zitat von RPG Hacker:
So könnte es aussehen anzeigen
Code
LDA $0DBF
CMP #$32
BEQ Genug
INC $13CC
Genug:
RTL


Spoiler anzeigen
Also werden die Münzen geladen,
dann mit 32(Hex) verglichen.
Dann gibt es INC $13CC falls es zu wenig sind, was um 1 erhöht.
BEQ ist falls es 50 sind dann springen wir zu Genug.
Aber wieso kommt nach dem Genug nur noch ein RTL?
Müssen wir die Münzen nicht auf 0 setzen?


Edit: Ah, Danke WYE
Edit 2: Stimmt RPG-Hacker, falsch gelesen...
geschrieben am 05.04.2012 21:37:01
( Link )
BEQ bedeutet nicht "mehr als 50", BEQ bedeutet "genau 50". Lies dir nochmal die eigentliche Aufgabe durch:
Nur wenn du GENAU 50 Münzen hast, soll nichts geschehen. Wenn du weniger oder mehr als 50 Münzen hast, soll der Münzzähler um eins erhöht werden. Erreichst du allerdings 100 Münzen, soll auf 0 zurückgesetzt werden. $13CC bewerkstelligt dies automatisch (und erhöht bei 100 Münzen den Lebenszähler). Ansonsten verwendest du die Version von WYE weiter oben, wo diese Prüfung noch manuell geschieht und kein Leben dazukommt.
-Das quadratische Rad neu erfinden-
Mit das quadratische Rad neu erfinden (englisch Reinventing the square wheel) bezeichnet man die Bereitstellung einer schlechten Lösung, wenn eine gute Lösung bereits existiert.

-Slowsort-
Slowsort (von engl. slow: langsam) ist ein langsamer, rekursiver Sortieralgorithmus, der nach dem Prinzip Vervielfache und kapituliere (engl. Multiply and surrender, eine Parodie auf Teile und herrsche) arbeitet.