Ввод размерности массива и элементов массива с клавиатуры - Assembler
Формулировка задачи:
Организовать ввод размерности массива и элементов массива с клавиатуры и вывод полученных результатов на экран.Найти сумму максимального и минимального элементов массива.
P.S. недавно начал изучать ассемблер, требуется небольшой толчок). Заранее спасибо.
Решение задачи: «Ввод размерности массива и элементов массива с клавиатуры»
textual
Листинг программы
InputInt proc mov ah,0ah xor di,di mov dx,offset buff ; аддрес буфера int 21h ; принимаем строку mov dl,0ah mov ah,02 int 21h ; выводим перевода строки ; обрабатываем содержимое буфера mov si,offset buff+2 ; берем аддрес начала строки cmp byte ptr [si],"-" ; если первый символ минус jnz ii1 mov di,1 ; устанавливаем флаг inc si ; и пропускаем его ii1: xor ax,ax mov bx,10 ; основание сc ii2: mov cl,[si] ; берем символ из буфера cmp cl,0dh ; проверяем не последний ли он jz endin ; если символ не последний, то проверяем его на правильность cmp cl,'0' ; если введен неверный символ <0 jl er cmp cl,'9' ; если введен неверный символ >9 ja er sub cl,'0' ; делаем из символа число
Объяснение кода листинга программы
В данном коде, написанном на языке Assembler, происходит следующее:
- Ввод размера массива и элементов массива с клавиатуры:
- Сначала код принимает строку с размером массива и элементами массива с клавиатуры. Для этого используется функция int 21h, которая принимает строку.
- Затем код проверяет, является ли первый символ минусом. Если это так, то код пропускает этот символ и переходит к обработке остальных символов.
- Обработка содержимого буфера:
- Код устанавливает базовую переменную
bx
равной 10, что является основанием системы счисления. - Затем код проверяет каждый символ из буфера на правильность. Если символ является цифрой от 0 до 9, то код продолжает обработку. Если символ не является цифрой, то код считает его неверным.
- Код устанавливает базовую переменную
- Проверка введенных символов на правильность:
- Код сравнивает каждый символ из буфера с цифрами от 0 до 9. Если символ меньше 0 или больше 9, то код считает его неверным.
- Если символ является цифрой от 0 до 9, то код преобразует его в число, вычитая из него код символа '0'.
- Вывод результата:
- Код выводит результат обработки массива на экран с помощью функции int 21h. В итоге, данный код принимает строку с размером массива и элементами массива, обрабатывает эти элементы и выводит результат на экран.