Строка при посимвольном заполнении получается "перевернутой" - Assembler

Узнай цену своей работы

Формулировка задачи:

не могу разобраться с адресацией. нужно сделать, чтобы в пустую строку можно было ввести 8 символов, причем заполнение строки должно происходить посимвольно. однако у меня запись символов в строку происходит в обратном порядке, т.е. если произвести ввод 11100011, то в строка будет иметь следующий вид: 11000111. что нужно исправить?
num1 db "        ", 13, 10
 
    mov cx, 08h
r1:
    mov ah, 08h
    int 21h
 
    mov bx, cx
    sub bx, 1
    mov byte ptr[num1+bx], al
    loop r1

Решение задачи: «Строка при посимвольном заполнении получается "перевернутой"»

textual
Листинг программы
num1    db "        ", 13, 10
 
    mov     cx, 08h
    xor bx,bx
    mov     si, offset num1
r1: xor ax,ax
    int 16h
    mov [bx+si], al
    inc bx
    loop    r1

Объяснение кода листинга программы

  1. Переменная num1 содержит строку        , 13 (символов) и 10 (перевод строки).
  2. Цикл начинается с 8-итераций (08h=8).
  3. Переменные cx, bx и si используются как счетчики для цикла.
  4. На каждой итерации цикла, значение ax обнуляется (xor ax,ax), затем происходит ввод с клавиатуры (int 16h), и символ из строки num1 записывается по адресу, указанному в bx+si (mov [bx+si], al).
  5. После каждой итерации, bx увеличивается на 1 (inc bx).
  6. Цикл продолжается до тех пор, пока si меньше 13 (loop si).

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы