mov ebx,ds:dx geht nicht
-
@TriPhoenix:
Keine Ahnung, wie dein Posting gemeint war, aber 16Bit Addressierung laesst sich wunderbar mit 32Bit Registern kombinieren und andersrum...@Chrissi:
Also nochmal: Wolltest du nun einen Speicherinhalt auslesen oder was?
So wie du das oben geschrieben hast, kann es auf jeden Fall nie funktioniert haben.
-
Naja klar, wozu sonst braucht man ne Adresse. Aber - ich weiß nicht mehr genau, was ich da beim Herumprobieren so wollte - ich wollte einfach den Inhalt von DS und DX in EBX vereint haben, um dann daraus eine [EBX]-Referenz zu machen, was eigentlich blödsinnig ist, da man gleich [DS:DX] machen könnte, was aber auch nicht ging. Und da verzweifelte ich eben. Ach ja, ich bin noch blutiger Anfänger, also bitte kein scharfer Zynismus
-
Aha. Also irgendwie ein Segmentregister mit einem anderen Register "vereinen" geht AFAIK nicht.
Wenn du auf den Speicher zugreifen willst, musst du zunaechst zwischen 16 und 32Bit unterscheiden.
Bei 16Bit-Addressen kannst du nur mit bp/si/di und bx addressieren, bei 32Bit kannst du alle standardregister benutzen.Wenn du extra ein Segmentregister zur Addressierung festlegen willst, muss das in NASM afaik so aussehen: "mov al, ds:[bx]"
Bei ds ist das aber an sich reichlich sinnlos: Es wird IMHO alles ausser bp und esp normalerweise mit ds addressiert.
-
Weißt du was? Genau sowas wollt ich hörn. Danke danke.
Aber what to hell is AFAIK und IMHO? Ich wiederhole mich nur ungern, dass ich im Assemblern ein kleines Schulmädchen bin. Ich würde jetzt fragen, wo lernt man den sowas, aber da würdest du mich nur böse auf FAQ verweisen
-
Nobuo T schrieb:
@TriPhoenix:
Keine Ahnung, wie dein Posting gemeint war, aber 16Bit Addressierung laesst sich wunderbar mit 32Bit Registern kombinieren und andersrum...Achja, Adressierungs und Operanden-Prefix, verzeihung
-
-
*lol* Standard Internet-Slang
=>
http://www.afaik.de/
http://www.imho.com/Da du ja nicht gefragt hast, komme ich mal rein zufaellig auf die Idee, hier hinzuschreiben, wie man ASM lernen koennte
...
- Hier fragen
- Die Tutorials in den FAQ lesen (auch wenn da leider nicht viel zu NASM ist
)
- Viel ausprobieren
Je nachdem, wieviel Zeit du hast, dauert das dann 1/2Jahr und die Basics sitzen.
-
Danke, cd9000, ein sehr sehr wertvoller Hinweis, Google scheint echt gut zu sein, damit kann man dolle Sachen machen.
Ich glaubte bloß, AFAIK als Interjektion gebraucht zu sehn, und in welchem Kontext, mir ganz unerklärlich.
-
zu Nobuo T:
Ich sollte wohl wirklich mal die FAQ ordentlich durchlesen, aber Ausprobiern und hier fragen, das hab ich ja schon gemacht. Ihr könnt alle also ganz stolz auf meine Fortschritte sein.
-
Nobuo T schrieb:
Aha. Also irgendwie ein Segmentregister mit einem anderen Register "vereinen" geht AFAIK nicht.
Wieso sollte das nicht gehen?
mov bx, ds shl ebx, 16 mov bx, dx
Hier wird Segment- und Offsetanteil in einem Register (ebx) abgelegt.
xor ebx, ebx mov bx, ds shl ebx, 4 movzx edx, dx add ebx, edx
Hier wird die lineare Adresse in ebx berechnet.
-
hi.
Mit deinen Beispielen hast du natuerlich recht.
Meine Aussage bezog sich hier allerdings mehr auf den Ansatz, den Chrissi B. in seinem ersten Posting verfolgte. In dieser Form gehts net und macht obendrein auch noch keinen Sinn.