Ввод массива с клавиатуры и вывод - Assembler
Формулировка задачи:
Здравствуйте!
Объявил массив
делаю ввод с клавиатуры:
и вывод:
При вводе вводится 2-3 элемент массива и вылетает, при выводе просит ввод опять же 2-3 символа и закрывается место того чтоб вывести.
Подскажите что не так делаю
mas db 4 dup(?)
mov cx,5 xor si,si c11: MOV AH,1H INT 21H sub al,30h mov mas[si],al inc si loop c11
mov cx,5 xor si,si c12: mov ah,02h mov dl,mas[si] add dl,30h int 21h inc si loop c12
Решение задачи: «Ввод массива с клавиатуры и вывод»
textual
Листинг программы
m2: mov cx,10 xor ax,ax xor si,si c1: MOV AH,01H INT 21H mov mas[si],al inc si loop c1 mov cx,10 xor ax,ax xor si,si c2: mov dl,mas[si] mov ah,02h int 21h inc si loop c2
Объяснение кода листинга программы
Выполняемый файл программы, предположительно, на языке Assembler, вводит массив из 10 чисел с клавиатуры и выводит его на экран. Список операций, которые выполняются в коде:
- mov cx,10 - установка счётчика циклов на 10.
- xor ax,ax — очистка регистра ax.
- xor si,si — очистка регистра si.
- c1: — начало цикла.
- mov AH,01H — подготовка команды ввода числа.
- INT 21H — ввод числа с клавиатуры в регистр al.
- mov mas[si],al — сохранение введённого числа в массиве по адресу si.
- inc si — увеличение индекса на единицу.
- loop c1 — повторение цикла.
- mov cx,10 - установка счётчика циклов на 10.
- xor ax,ax — очистка регистра ax.
- xor si,si — очистка регистра si.
- c2: — начало цикла.
- mov dl,mas[si] — подготовка команды вывода числа.
- mov ah,02h — подготовка команды вывода числа.
- int 21H — вывод числа с клавиатуры в регистр dl.
- inc si — увеличение индекса на единицу.
- loop c2 - повторение цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д