Autor Thema: Globale ASM Variablen in C gebrauchen  (Gelesen 3047 mal)

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« am: 04. March 2005, 14:38 »
Huhu

Ich würde gerne eine Asm-Variable

DummyVariable db 0

in c auslesen können.

wie kann ich das realisieren?

irgendwie mit
global DummyVariable db 0 ??

und wie muss ich sie im c dann einbinden?

Ironfoot

  • Beiträge: 6
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 04. March 2005, 14:51 »
sollteste in ASM mit

[global _dummyVar]
_dummyVar db 0


und in C dann

extern unsigned char dummyVar;


solltest aber beide Dateien gemeinsam Linken, sonst beschwert sich der Linker über "nicht aufgelöste Referenzen"...

zacK

  • Beiträge: 216
    • Profil anzeigen
    • http://www.domae.ch
Gespeichert
« Antwort #2 am: 04. March 2005, 14:55 »
gibt es denn ne möglichkeit die var zu gebrauchen wenn ich die dateien nicht linke nur zusammen kopiere.??

ich schreibe die Var besser irgendwo ins ram hin wo si nicht stört ung greiffe über die adr dan zu...

Jidder

  • Administrator
  • Beiträge: 1 625
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 04. March 2005, 15:57 »
int * var;

var = (int*)0x1234; // unsere variable befindet sich an der adresse 0x1234

*var = 1000; // in die Variable den Wert 1000 schreiben
*var++;  // die variable um 1 erhöhen


mit *var (oder var[0]) greifst du auf den inhalt zu. mit var auf die Adresse
Dieser Text wird unter jedem Beitrag angezeigt.

 

Einloggen