ganz kleine Frage zu Variablen in FASM
-
hi,
Um es ganz kurz zu machen.
Sind folgende Codeteile richtig?var1 db 12 mov ah,byte [var1] ; Kopiert den Wert von war1 nach ax mov bx,var1 ; kopiert die Adresse von var1 nach bx mov byte [bx],ah ; der Wert von bx wird als andresse angesehen und in diese wird ;der Wert von ah geschrieben
ganz genau weiß ich nicht, was der [] operator bewirkt.
Könnte bitte einr ganz kurz erklären, was was ist?Ein Vergleich zu den c operatoren & und * wäre sehr gut, da ich diese perfekt verstehe.
Aber in fasm komm ich immer durcheinandermfg
-
Ich kenne nur den MASM32-Assembler von Microsoft (Intel-Syntax), den es auch frei im Internet gibt.
FASM soll Flat-Assembler heissen, hoffendlich mit Intel-Syntax und Flat(32bit-Adressierung)?!var1 db 12 mov ah, var1 ; Kopiert den Wert von var1 nach ah ; oder mov ah, [var1] ; das Gleiche, Kopiert ebenfalls den Wert von var1 nach ah ; oder mov ah, byte ptr [var] ; das Gleiche, Kopiert ebenfalls den Wert von var1 nach ah ; der Assembler kennt hier die Operandengrössen - byte ptr ist deshalb hier überflüssig ; mov ebx, offset var1 ;kopiert die Adresse von var1 nach ebx (32-Bit Programmierung !) ;mov bx, offset var1 ;kopiert die Adresse von var1 nach ebx (nur bei 16-Bit Programmierung !) ;oder lea ebx, var1 ;kopiert die Adresse von var1 nach ebx (32-Bit Programmierung !) ;und jetzt geht mov [ebx], ah ;oder umständlicher geschrieben mov byte ptr [ebx], ah
Man kann die Assemblersprache nicht von C-Operatoren ableiten - du musst Assembler üben bis der Groschen fällt!
@Wlufy "Ein Vergleich zu den c operatoren & und * wäre sehr gut, da ich diese perfekt verstehe."
Dann haste es ja leicht, die Zusammenhänge zu begreifen.