8086 assembly, wie der Zugriff auf array-Elementen innerhalb von Schleifen

Ok, um die Dinge so einfach wie möglich sagen, ich habe eine grundlegende Schleife, die ich verwenden möchten, um zu ändern, einige Elemente in einem array mit der Bezeichnung a. In der folgenden Beispiel-code habe ich versucht, den Austausch aller Elemente von a mit 1, aber das funktioniert nicht wirklich.

assume cs:code ,ds:data
data segment
  a db 1,2,3,4
  i db 0
data ends

code segment
start:
  mov ax,data
  mov ds,ax

  lea si,a

  the_loop:
    mov cl,i
    cmp cl,4
    jae the_end

    mov ds:si[i],1      ; this is the part that i don't really understand since
    inc i               ; i'm expecting i=0 and ds:si[i] equiv to ds:si[0] which
  loop the_loop         ; is apparently not the case here since i actually receives the
                        ; the value 1
  the_end:
    mov ax,4c00h
    int 21h
code ends
end start

Ich bin mir bewusst, dass ich einfach tun dies durch eine änderung der element gespeichert in al nach der lodsb Unterricht, und nur speichern, dass. Aber ich würde gerne wissen, ob es möglich ist, etwas zu tun, was ich versucht habe oben.

InformationsquelleAutor rares.urdea | 2013-02-20
Schreibe einen Kommentar