Adresse eines Array rausfinden
-
Ich will im inline-Assembler die Adresse eines Arrays rausfinden. D.h. den Selektor ins DS-Register laden und den Offset in irgendein anderes Register. Wie kann ich das machen?
Danke
-
Normalerweise gibt es doch nur ein Datensegment. Also ist DS normalerweise schon richtig gesetzt.
Warum nicht so?
mov eax, array
Du musst übrigens angeben, welchen Compiler du benutzt.
-
Benutze VC++.
Ich fange nur grad mit Assembler an und wollte ein Bisschen mit dem Befehl XLATB herumspielen und dafür muss man ja die Adresse in DS:EBX laden. Wie kann ich das machen?MfG
-
Kümmer dich einfach nicht um DS, das ist unter Windows immer korrekt gesetzt, ebenso wie ES.
-
Aber wie lade ich dann den Offset? Also das,was in EBX kommt?
MfG
-
Original erstellt von JokerXXL:
**Aber wie lade ich dann den Offset? Also das,was in EBX kommt?MfG**
mov ebx, arrayname
wie cd9000 es schon schrieb
-
Hmm, hab inzwischen rausgefunden, dass es mit LEA klappt...
-
Geht es nicht auch mit mov?
-
Original erstellt von cd9000:
Geht es nicht auch mit mov?Ich schätze der Compiler macht daraus etwas in der Art ebx = *array.
-
Anscheinend kennt der VC++ inline assembler das Keyword "offset" nicht.