Ввод массива с клавиатуры и вывод - Assembler

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

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

Здравствуйте! Объявил массив
Листинг программы
  1. mas db 4 dup(?)
делаю ввод с клавиатуры:
Листинг программы
  1. mov cx,5
  2. xor si,si
  3. c11:
  4. MOV AH,1H
  5. INT 21H
  6. sub al,30h
  7. mov mas[si],al
  8. inc si
  9. loop c11
и вывод:
Листинг программы
  1. mov cx,5
  2. xor si,si
  3. c12:
  4. mov ah,02h
  5. mov dl,mas[si]
  6. add dl,30h
  7. int 21h
  8. inc si
  9. loop c12
При вводе вводится 2-3 элемент массива и вылетает, при выводе просит ввод опять же 2-3 символа и закрывается место того чтоб вывести. Подскажите что не так делаю

Решение задачи: «Ввод массива с клавиатуры и вывод»

textual
Листинг программы
  1.      m2:    mov cx,10
  2.             xor ax,ax
  3.             xor si,si
  4.             c1:
  5.                 MOV AH,01H
  6.                 INT 21H
  7.                 mov mas[si],al
  8.                 inc si
  9.             loop c1
  10.             mov cx,10
  11.             xor ax,ax
  12.             xor si,si
  13.             c2:
  14.                 mov dl,mas[si]
  15.                 mov ah,02h
  16.                 int 21h
  17.                 inc si
  18.             loop c2

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

Выполняемый файл программы, предположительно, на языке Assembler, вводит массив из 10 чисел с клавиатуры и выводит его на экран. Список операций, которые выполняются в коде:

  1. mov cx,10 - установка счётчика циклов на 10.
  2. xor ax,ax — очистка регистра ax.
  3. xor si,si — очистка регистра si.
  4. c1: — начало цикла.
  5. mov AH,01H — подготовка команды ввода числа.
  6. INT 21H — ввод числа с клавиатуры в регистр al.
  7. mov mas[si],al — сохранение введённого числа в массиве по адресу si.
  8. inc si — увеличение индекса на единицу.
  9. loop c1 — повторение цикла.
  10. mov cx,10 - установка счётчика циклов на 10.
  11. xor ax,ax — очистка регистра ax.
  12. xor si,si — очистка регистра si.
  13. c2: — начало цикла.
  14. mov dl,mas[si] — подготовка команды вывода числа.
  15. mov ah,02h — подготовка команды вывода числа.
  16. int 21H — вывод числа с клавиатуры в регистр dl.
  17. inc si — увеличение индекса на единицу.
  18. loop c2 - повторение цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

12   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы