在 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
我试图读取一个重复结构的数组,但它给了我一个错误,下面的代码是否有替代方案?
.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