汇编程序我怎样才能访问数组的元素?

Assembler How can i get acces to the elements of array?

我的汇编程序(16 位)有问题 当我输入 'abc' 时,它也会 return 我 abc。问题是,我怎样才能访问 'a' (第一个元素)? 我可以使用堆栈(到字符)吗?

org 100h

Start:
mov ah,0ah
mov dx,input
int 21h

mov ah,9
mov dx,label
int 21h
mov ah,9
mov dx,input+2
int 21h

End:
mov ax,4c00h
int 21h

label db 10,13,"Your characters: $"
input db 6
db 0
times 8 db "$"

当然可以。
您的字符串只是一个字节序列。

更简单的方法是实际命名 Int 21h/AH=0ah 服务使用的结构的所有部分:

label db 10,13,"Your characters: $"

input    db 6
str_len  db 0
string:  times 8 db "$"

然后:

mov al, BYTE [str_len] 可用于在 al 中加载字符串的长度(任何 8 位寄存器都可以)。
mov al, BYTE [string + X] 将加载 al 中字符串的 (X + 1)th 字符(对于 assemble 时已知的 X - 即静态)。
mov bx, X + mov al, BYTE [string + bx] 将加载 al 中字符串的 (X + 1)th 字符(对于运行时已知的 X - 即动态)。