Да, конечно.
Ваша строка - это просто последовательность байтов.
Более простой способ - фактически назвать всю часть структуры, используемую службой 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]
загрузит символ (X + 1)th
строки в al
(для X
, известного во время сборки - т.е.static).
mov bx, X
+ mov al, BYTE [string + bx]
загрузит символ (X + 1)th
строки в al
(для X
, известного во время выполнения - то есть динамического).