Нечетные (по значению) элементы массива поделить на 5, и вывести результат в консоль - Assembler

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

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

Есть код подсчитывающий кол-во нечетных чисел в массиве, прошу помочь переделать под задание в заголовке.Наверняка есть добрые люди)
.286
.model small
.data
MAS db 3,5,7,9,10,15,17,20,23,25,30,35,40,45
Num = $ - MAS
sum db 0
.code
org 100h
start:  mov ax,@data
    mov ds,ax
    mov ax,3
    int 10h;очищаем экран
    mov si,offset MAS
    mov cx,Num
@0: lodsb
    shr al,1
    adc sum,0
    loop @0
    mov al,sum
    aam
    add ax,'00'
    ror ax,8
    int 29h
    ror ax,8
    int 29h 
    mov ah,0; ждем нажатия на клавиатуру
    int 16h
    mov ah,4Ch; завершаем программу 
    int 21h
end start

Решение задачи: «Нечетные (по значению) элементы массива поделить на 5, и вывести результат в консоль»

textual
Листинг программы
start:
   mov ax,a[si]
   test al,1
   jz m1    
   idiv dl
   mov ah,0
   add ax,48
   mov b[di],ax
m1:
   add si,2
   add di,2
   loop start

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

В данном коде выполняется деление нечетных элементов массива на 5 и запись результата в другой массив. Список операций:

  1. Передача в AX регистра содержимого элемента массива, соответствующего индексу SI.
  2. Проверка бита 1 в AL (нечетность).
  3. Если бит 1 установлен, то переход к метке M1.
  4. Деление AX на DL (5).
  5. Передача в AX регистра результата деления.
  6. Добавление 48 к AX (для преобразования в ASCII).
  7. Запись результата в B[DI].
  8. Увеличение SI на 2.
  9. Увеличение DI на 2.
  10. Переход к метке Start. Примечание: В коде не указано, что происходит при делении на ноль, также не указаны размеры массивов и их начальные адреса.

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


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

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

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