Zitat Zitat von PICture Beitrag anzeigen
Hallo Searcher!

Vielen Dank für deine wertfolle Hinweise. Ich gebe nicht so einfach auf, wie das aus meinem letzten Beitrag in diesem Thread aussieht.
Und ich dachte, du wärst raus aus der Nummer. Hätte mich aber ehrlich gesagt auch gewundert.

Ich habe als ASMan auf Bascom geschaut und ausser Frame scheint mir jetzt alles hoffentlich klar geworden, sonst bitte korriegieren.

Zitat Zitat von PICture Beitrag anzeigen
HW Stack : dort werden immer 2-Byte Rücksprungsadressen für jede momentan gleichzeitig laufende SUB's und INT's ab - gelegt und geholt. Ja, und die Register, die Bascom bei einem Interrupt automatisch speichert.
Zitat Zitat von PICture Beitrag anzeigen
SW Stack : dort werden alle Variablen, je nach Typ, mit entsprechender Grösse von 1 bis 4 Byte plaziert. Nein. Hier liegen nur die Adressen der Variablen, nicht deren Inhalte. Also alle übergebenen Parameter einer Sub und Funktion und die lokalen Variablen. Immer 2 Byte pro Adresse. Wenn du mit Double Typen arbeitest, liegen hier auch einige von Bascom genutzte Adressen.
Zitat Zitat von PICture Beitrag anzeigen
Frame : leider dafür habe ich nichts für mich verständliches gefunden und muss ich Euch um einfache Erklärung bitten, da ich den Dialekt von Profiprogrammierer nicht verstehe. Ich vermute, dass es dort alle benutzte "labels"/Markenadressen (z.B. von Loop's) vom Programm abgelegt werden. Nein, hier liegen nun die Werte der Variablen, falls sie per ByVal in die Sub oder Funktion übergeben wurden und die Werte der lokalen Variablen. Strings können übrigens auch per ByVal übergeben werden. Bedarf also je nach Typ der Vairablen. Zusätzlich beansprucht Bascom von den angebenen Bytes noch 24 für Typ Konvertierungen, speziell zur Ausgabe per Print oder auf's LCD.
Zitat Zitat von PICture Beitrag anzeigen
So wie die meisten Anfänger möchte ich immer möglichst genau wissen, falls möglich, was ich tue.
Da du aber jede Menge Erfahrung in ASM hast, solltest du dir unbedingt den Simulator von Bascom ansehen. Gerade bei den Stack und Frame Sachen ist der sehr hilfreich. Dann kannst du noch die $DBG Direktive einschalten. Dadurch wird neben etwas Code auch der Stack und Frame mit den Buchstaben H, S und F vorbesetzt. So kannst du sehen, was schon alles beschrieben worden ist.