Hallo.Ich weise am Anfang meines Programms mit der .set Anweisung einem Label einen Wert zu.Wenn ich diesen Wert in einem Unterprogramm dann wieder mit der .set Anweisung ändere,bezieht sich diese änderung irgendwie nur auf das Unterprogramm.Wenn ich wieder ins Hauptprogramm wechsle,gilt wieder der alte Wert(gesehen anhand der Simulation).Wäre nett,wenn mir jemand sagen könnte,wie man eine Variable jederzeit ändern kann,und diese änderung dann auch überall wirksam ist. mfg Andy
je nach programmiersprache. bei manchen müssen variablen global vereinbart werden, damit sie auch in subroutinen geändert werden können. womit codest du denn?
Hallo.Hab ich vergessen.Programmiert wird in Assembler.Wie bekommt man den in dieser Programmiersprache globale Variablen hin? Andy
oje, null plan von assembler. ich bin ein fauler hund und strick alles in bascom. macht wenig arbeit und funzt trotzdem (meistens) gruss, faultier harry
.set ist eine Preprozessoranweisung und hat bestimmt auch ein Äquivalent in Basic. Es ist zeilenorientiert, d.h. in allen Zeilen vor der .set-Anweisung ist es unbekannt und in allen Zeilen danach ist es bekannt und hat den zugewiesenen Wert. Weist man dem gleichen Symbol in späteren Zeilen einen anderen Wert zu, ist dieser wiederum nur in allen Zeilen danach gültig. Das kann leicht zu Verwirrungen führen, deshalb sollte man für andere Werte auch immer andere Symbolnamen verwenden. Deshalb nimmt man in der Regel besser die .equ Anweisung, die eine versehentliche Doppelzuweisung von Symbolen anmeckert. Peter
Hallo.Danke für die antworten.Aber wegen zu wenig Speicher(AT1200) müsste ich eine Variable benutzen,da ein grösseres Unterprogramm 2 mal durchlaufen werden soll,aber mit zwei verschiedenen Werten. Wenns gar nicht geht,muss ich wohl einen grösseren AT nehmen. Andy
Mit .set definierte Symbole sind doch keine Variablen und belegen demzufolge auch keinen Speicherplatz ! Sie helfen nur einen Assemblertext lesbarer zu gestalten. Variablen kannst Du im SRAM oder in Registern ablegen, z.B. .def MY_VAR = r16 Peter
Wie ich das sehe, soll ein Unterprogramm ZUR LAUFZEIT mit zwei verschiedenen Werten aufgerufen werden. Das geht nur mit Peter's Methode. .SET erzeugt keinen irgendwie geartetem Code, der zur Laufzeit irgendetwas bewirken würde. MfG Gerd
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.