Ввод размерности массива и элементов массива с клавиатуры - 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, происходит следующее:

  1. Ввод размера массива и элементов массива с клавиатуры:
    • Сначала код принимает строку с размером массива и элементами массива с клавиатуры. Для этого используется функция int 21h, которая принимает строку.
    • Затем код проверяет, является ли первый символ минусом. Если это так, то код пропускает этот символ и переходит к обработке остальных символов.
  2. Обработка содержимого буфера:
    • Код устанавливает базовую переменную bx равной 10, что является основанием системы счисления.
    • Затем код проверяет каждый символ из буфера на правильность. Если символ является цифрой от 0 до 9, то код продолжает обработку. Если символ не является цифрой, то код считает его неверным.
  3. Проверка введенных символов на правильность:
    • Код сравнивает каждый символ из буфера с цифрами от 0 до 9. Если символ меньше 0 или больше 9, то код считает его неверным.
    • Если символ является цифрой от 0 до 9, то код преобразует его в число, вычитая из него код символа '0'.
  4. Вывод результата:
    • Код выводит результат обработки массива на экран с помощью функции int 21h. В итоге, данный код принимает строку с размером массива и элементами массива, обрабатывает эти элементы и выводит результат на экран.

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

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