Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Themen - SebE

Seiten: [1]
1
Lowlevel-Coding / Allgemeine Frage zu Segmenten
« am: 21. September 2008, 10:21 »
Ich habe als Beispiel folgenden Code:

MOV AX, BX ;Befehl_1

section .data

MOV BX, AX ;Befehl_2

section .data

MOV AX, BX ;Befehl_3

Befehl_2 und Befehl_3 kommen 2 verschiedene Daten-Segmente (ist das korrekt?)

Und wo kommt Befehl_1 hin?

Mir ist absolut nicht klar, was passiert, wenn man Segmente und "normalen" Code ohne Segmente mischt.

Was passiert eigentlich, wenn man nur "normalen" Code schreibt (ganz ohne Segmente)?
Kommt dann alles ins Code-Segment? (Also haben alle Daten und Befehle die Adresse CS:XXXX?)

Ich hoffe ihr versteht meine Frage(n) und könnt mich in dem ganzen Durcheinander aufklären.

Vielen Dank
2
Lowlevel-Coding / Opcode des MOV-Befehls
« am: 11. July 2008, 22:00 »
Hi, ich hab grad in dem Intel Instruction Manual gelesen und mir die Opcodes angeschaut.
Mir kommt etwas eigenartig vor: Beispiel:

MOV r16, imm16 -> Opcode: B0 + rw
und
MOV r32, imm32 -> Opcode: B0 + rd

besitzen beide den Opcode B0, addieren jeweils noch den "Register-Code" hinzu...ist ja verständlich, aber...der "Register-Code" ist hierbei gleich (= 0).
Das heißt, dass sich für BEIDE jeweils der Opcode B0 + 0 = B0 ergibt.

Woher weiß der Prozessor, dass er einmal 16 und einmal 32 Bit lesen und verschieben soll?

Ich hoffe, ihr könnt mir meinen Denkfehler erklären...


Vielen Dank
3
Lowlevel-Coding / Text-Ausgabe im PM
« am: 27. December 2005, 19:07 »
Hallo, ich bin Assembler-Neuling und das hier könnte mein erster ASM-Code sein.
Da ich eigentlich in Hochsprachen programmiere, habe ich so meine Probleme mit den Registern, ...

Kann mir jemand weiterhelfen, ich weiß nicht weiter:

PrintStr:
  PUSH CX
  MOV CX, [0xB000:0x8000] ;FEHLER: invalid Segment override

.Load
 ;Byte laden
  LODSB
  OR AL, AL

 ;"Null-Byte", dann Ende
  JZ Short .PrintStrEnd

 ;Zeichen in Video-RAM schreiben
  MOV [CX], AL ;FEHLER: invalid effective address

 ;Farbwert in Video-RAM schreiben
  MOV [CX], AH ;FEHLER: invalid effective address

  INC CX

 ;Nächstes Byte
  JMP .Load

.PrintStrEnd:
  POP CX
  RETN


Könnt ihr mir diese Fehler erklären und beheben?

Danke

SebE
Seiten: [1]

Einloggen