Nu r det ju s att det funkar lite speciellt med arrayer i asm...
Fr att komma t ett vrde, mste du antingen anvnda en konstant (inte en variabel), eller ett av fljande register: BX, SI, DI, BP (BP har dock SS som standard segment, s vill du komma t arrayen i DS mste du anvnda DS:[BP]). BX och BP gr ven att kombinera med SI och DI (BX+SI), och du kan ven lgga till en konstant (BX+1 eller BX+SI+1).
Sedan r arrayer 0 baserade, dvs definierar du en array som DB 25 dup(0), kommer man t den med 0-24.
S... Om du har fljande , och vill komma t vrdet i arrayen som index pekar p (index lr vl ndras nnstans i koden...)
arr DB 25 dup(0)
index DW 0
...
mov bx,index
mov al,[bx+arr] (eller "mov al,arr[bx]", det r vilket som...)
(mov al,[index+arr] fungerar allts inte... i vissa kompilatorer gr det igenom, men det fr inte den effekt man tnker sej)
om du istllet vill anvnda BP, blir det
mov al,DS:[BP+arr]
Vill du anvnda dej av en konstant position i arrayen kan du antingen gra
plats EQU 5
mov al,[arr+plats] (eller "mov al,arr[plats]")
eller
mov al,[arr+5] (mov al,arr[5])
Heh, hoppas det blev lite klarare