Посчитать количество элементов массива, равных нулю - Assembler

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

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

Посчитать количество элементов массива, равных нулю, и записать их в Rg AX (формат элементов массива - слово)

Решение задачи: «Посчитать количество элементов массива, равных нулю»

textual
Листинг программы
  1. model   tiny
  2. .code
  3. org 100h
  4. szMas   equ 20
  5. begin:  lea si,dwMas
  6.     mov cx,szMas
  7. @@01:   lodsw
  8.     or  ax,ax
  9.     jnz @@02
  10.     inc bx
  11. @@02:   loop    @@01
  12.     ret
  13. dwMas   label   word
  14. num =   0
  15.     rept    szMas
  16.     dw  num
  17. num =   (num+1) mod 4
  18.     endm
  19.     end begin

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

  1. Объявляется директива model с параметром tiny.
  2. Начало кода программы задается с помощью org 100h.
  3. Определяется константа szMas (размер массива), которая равна 20.
  4. Метка begin обозначает начало блока кода.
  5. Помещается адрес массива в регистр SI с помощью lea si,dwMas.
  6. В регистр CX помещается размер массива szMas.
  7. Идет цикл @@01: для обработки элементов массива в регистре AX.
  8. Проверяется значение элемента на равенство нулю с помощью or ax,ax.
  9. Если значение элемента не равно нулю, выполняется переход к метке @@02: с помощью jnz @@02.
  10. Инкрементируется регистр BX, который хранит количество элементов массива, равных нулю с помощью inc bx.
  11. Происходит обратный переход к метке @@01: для обработки следующего элемента массива с помощью loop @@01.
  12. Программа завершается с помощью ret.
  13. Объявляется метка dwMas для массива.
  14. Переменная num инициализируется значением 0.
  15. С помощью директив rept и endm в массив помещаются элементы, начиная с 0 и увеличивая значение по модулю 4.
  16. Окончание программы указывается с помощью end begin.

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


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

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

13   голосов , оценка 3.538 из 5

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

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

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