在 x86 Dos 程序集中动态读取数组值

Dynamically reading an array values in x86 Dos assembly

我试图读取一个重复结构的数组,但它给了我一个错误,下面的代码是否有替代方案?

.data 
    aux db 0
    array db 0,1,2,3,4,5,6,7,8,9
.code
main:
    print_array:
    mov dl, array[aux]
    mov ah, 02h
    int 21h
    inc aux
    cmp aux, 9
        je exit
    jmp print_array

    exit:
    mov ah, 4ch
    int 21h        
end main

aux 变量用于索引数组。您不能以这种方式使用基于内存的变量。为此最好使用地址寄存器:

      xor si, si
    print_array:
      mov dl, array[si]
      mov ah, 02h
      int 21h
      inc si
      cmp si, 9
      jbe print_array