Einzelnen Beitrag anzeigen
Ungelesen 07.12.15, 10:41   #3
back69
Hoffnungsloser Fall
 
Registriert seit: Sep 2013
Ort: 48151 Münster
Beiträge: 132
Bedankt: 106
back69 wird langsam von ratten respektiert | 218 Respekt Punkteback69 wird langsam von ratten respektiert | 218 Respekt Punkteback69 wird langsam von ratten respektiert | 218 Respekt Punkte
Standard

Gaaaanz allgemein gesprochen:

Als erstes solltest du den Start des Arrays bestimmen, bepsielsweise mit
> mov bx, offset array

Dann muss du wissen, welches Element du haben möchtest
> mov si, 42 ; "43". Element (in Assember hat das 1. Element den Index 0

Jetzt kommt der "Trick": Wie groß sind die einzelnen Elemente? Byte, Word, DWord... (8, 16, 32... Bits). Das "erkennt" der Assembler über die angegebene Größe

> mov al, byte ptr[bx+si]
> mov ax, word ptr[bx+si]
> mov eax, dword ptr[bx+si]

Bei "dword ptr[bx+si]" weiss der Asselber, dass du einen 32 Bit-Wert haben möchtest, der
ab der Adresse bx + dem Wert aus si ( * sizeof(dword) ) liegt.
back69 ist offline   Mit Zitat antworten
Die folgenden 3 Mitglieder haben sich bei back69 bedankt:
MaxP0w6r (16.06.22), tintinsx (18.05.23)