Ich habe folgendes Problem: Ich habe ein Zahl (belibig, eingegeben über eine Tastatur) mit 16 bit länge. Nun will ich diese Zahl mit 6000 vergleichen. Das ganze in Assembler. Nur habe ich, was das Vergleichen angeht, noch nicht viel Erfahrung. Falls es eine Rolle spielen sollte: das ganze auf einem AT90S8535. Für anregungen und tips bin ich dankbar..... Gruß Danny
Nein, dein Problem ist, dass Du zu faul bist und weder lesen noch denken kannst...
Also Leute die keinen Umgangston haben und Anfängern nicht helfen wollen/können, sollten lieber Klappe halten und gar nichts schreiben anstatt irgendwelche "geistreichen" Kommentare abzugeben. Für alle ernsthaften Antworten bin ich aber weiterhin offen.....
Da gibt es einen Befehl für compare und ein Befehl für branch. Ich programiere nicht in Assembler, aber der Compiler macht das draus: 415:lader.c **** if (jjj>iii) 1268 .LM143: 1269 05d6 2091 0000 lds r18,jjj.1 1270 05da 3091 0000 lds r19,(jjj.1)+1 1271 05de 8091 0000 lds r24,iii.0 1272 05e2 9091 0000 lds r25,(iii.0)+1 1273 05e6 8217 cp r24,r18 1274 05e8 9307 cpc r25,r19 1275 05ea 20F4 brsh .L123 416:lader.c **** iii=0; 1277 .LM144: 1278 05ec 1092 0000 sts (iii.0)+1,__zero_reg__ 1279 05f0 1092 0000 sts iii.0,__zero_reg__ 1280 .L123: Also zuerst die unteren 8bit mit cp vergleichen, dann die oberen 8bit mit cpc (compare with carry). Dann brsh (Branch if same or higer). Was die Befehle bedeuten hab ich im Datenblatt nachgesehen, das kannst du ja auch. Aber im Prinzip hat mein Namensvetter schon recht, das ist so trivial dass ich mich sowas nie Fragen trauen würde wenn ich in Assembler programmiere. Ist dasselbe als wenn ich frage: Wie vergleiche ich 2 Werte miteinander, am besten in C, weil ich in C programmiere. Entweder du programmierst in Assembler, dann solltest dich auch mit so trivialen Fragen auseinandersetzen oder nimmst Basic. Und es gibt unzählige Codebeispiele in die man reinsehen kann um zu lernen. (Ui, jetzt werden die Basic Programmierer wieder auf mich schimpfen). So, heute hab ich wieder brav die Hausaufgaben für andere erledigt. :-)
In Basic oder C ist das ja auch ne Nummer einfacher, habe ich schon ausprobiert. Da ich aber mein bisheriges Programm schon in Assembler programmiert habe und das soweit Funktioniert und ich eben nur noch eine Maximalwertabfrage einfügen wollte, war ich nicht bereit das ganze in C oder Basic nochmal zu schreiben. O.K. vieleicht ist das eine Frage die einfach zu beantworten war, aber nach 9h arbeit und 4h Schule ist eben irgendwann mal die Luft raus. Es gab auch schon in Basic wirklich blöde Fragen, aber es ist noch lange kein Grund patzig zu werden. Danke jedoch für deine Hilfe und deren die vielleicht noch kommen.
erst vergleichst du die highbytes, sind die dann identisch vergleichst du noch die lowbytes, ist eine der beiden bedingungen falsch ist die compareabfrage mit nein beandtwortet. cpi highreferenz,highzahl brne nichtgleich cpi lowreferenz,lowzahl brne nichtgleich gleich: ..... .... .... ret nichtgleich: .... .... ... ret
@Fritz genau Fritz ! Trampel ruhig auf den Basic-Schlipsen rum :-) Seit Commodore 64 programmiere ich in Basic, habe inzwische viele Dialekte gelernt, und auch wieder vergessen. Inzwischen fahre ich auf Bascom voll auf µC-Basis ab und für PC auf Visual-B 6.0. Zustande bringt man da auch was. Nichts desto trotz kriege ich aber auch auf allen Vierend kriechend noch was in Asm hin... :-) Bye und VG MArco
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.