was ist das für eine Definition? Assembler

Gast
Wie immer: bitte mehr Informationen (welcher Processor / Compiler ...)
mehr Quelltext (zumindest eine komplette Funktion, in der REMOVE_ENTER_1 
verwendet wird).

Es ist halt eine Abkürzung, welche -wenn im Quelltext verwendet-  zwei 
Assemblerbefehle einfügt.
Diese manipulieren (bereinigen?) den Stack:
1. den Stackpionter incrementieren (vermutlich das selbe wie POP dummy)
2. den nächsten Stack-Inhalt nach FB speichern, was auch immer das sein 
mag).
Gast
Hallo Thomas,

das ist aber kein AVR Programm oder?!? Weil die Inline Assembler Befehle
(also das hinter _asm(...)) sind keine AVR Assembler Befehle.


Auf jeden Fall macht das #define folgendes:
Überall im Programmcode wo "REMOVE_ENTER_1" steht, setzt der Compiler
_asm("ADD.W #1,SP"); _asm("POPC FB"); ein.

Der erste Befehl bewirkt, dass die Konstante "1" als Wort (16bit) in die 
Varialble SP geschrieben wird. Wobei SP vermutlich der Stackpointer ist.
Im Klartext SP+=1;

POPC holt vermutlich den Inhalt vom neuen Stackpointerplatz und schreibt 
ihn in die Variable FB. (Keine Ahnung was FB für ne Variable ist). Ich 
hab vermutlich geschrieben, weil ich den Befehl POPC nicht kenne sondern 
nur POP.
Moderator (Firma: Titel) Persönliche Seite
Es ist M16C.
Tasking-Compiler?
Hier wird die Bankumschaltung manipuliert.

Mit  _asm("ADD.W #1,SP");
wird der Stackpointer um eins höher gesetzt

Mit  _asm("POPC FB");
wird der Wert vom Stack in die Bankumschaltung übertragen

Nur sollte jetzt vorher noch was auf den Stack geschrieben werden???
Poste doch mal so eine Funktion, die das Makro verwendet.


Hier taucht POPC FB auch im Zusammenhang mit Interrupts auf:
http://www.tasking.com/support/M16C/solved_known_problems_v3.1r1.htm
Gast
Danke für eure Antworten,

Danke für eure Antworten, das erklärt ja schon ein bisschen.
ja ich arbeite mit einem M16C28 und programmiere in HEW.

Ich arbeite mit ZigBee und das sind Funktionen aus dem ZigBee- Stack, 
die ich benutzen kann. Was die wirklich machen und was FB genau für eine 
Variable ist kann man nicht einsehen, da der Stack ist ja nicht 
öffentlich ist

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.