Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Assembler, was bedeutet $

  Alt 4. Jan 2006, 13:59
Zitat von jbg:
Dabei handelt es sich nur um einen komplizierten Weg, um die Zahl 5 in das Word "i" zu schreiben.
Denn "DsDatenPointer DW OFFSET DsDatenPointer" erzeugt ein Word, dessen Inhalt der Offset dieses Words selbst ist. Und das ist wiederum der aktuelle Programmcodezähler $.
Und von diesem wird wieder DI abgezogen, womit wir wieder bei der Addresse von "i" landen. In in diesen wird dann die Zahl 5 gemovt.
... was nicht funktionieren wird, da es einen solchen Adressierungsmodus nicht gibt.


Zitat von mumu:
danke für die antworten jetzt hab ichs glaub ich kapiert. nur noch eine Frage dazu:

Zitat:
ein was versteh ich aber trotzdem noch nicht so ganz:
MOV WORD PTR [BX-DI],5
hätte es jetzt einen Unterschied gemacht folgendes zu schreiben: MOV BYTE PTR [BX-DI],5
transferriert MOV WORD PTR [BX,DI],5 ins Byte 1 von i 5 und ins Byte 2 auch 5, oder wie?
"MOV WORD PTR [BX,DI],5" gibt's nicht.
Im 16-Bit Modus gibt es nur eine begrenzte Zahl von Adressierungsmodi:
Code:
[BP]
[BX]
[SI]
[DI]
[BP+SI]
[BP+DI]
[BX+SI]
[BX+DI]
Jeweils optional mit Byte/Word-Displacement.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat