Найти количество четных чисел - Assembler

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

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

Помогите,пожалуйста. Нужно доделать счетчик "Найти количество четных чисел" основа кода должна быть такой,индекс-база адрессирование. В ответе должно быть 4
.model tiny
.code
.startup
           Org 100h
           Jmp Short Start
Vector     Dw  2, 7, -1, 16, 15
N          Equ 5
Start:
           Xor  Bx, Bx
           Xor  Si, Si
           Mov  Cx, N
S:
           Mov  Ax, Vector[Bx][Si]  
Test Dx, 00000001B
           Jnz _Last 
           Inc Bx
           Inc Si 
_Last:   
           Add  Bx,2

           Loop S
.exit 0
end

Решение задачи: «Найти количество четных чисел»

textual
Листинг программы
.model tiny
.code
.startup
           Org 100h
           Jmp Short Start
Vector     Dw  2, 7, -1, 16, 15
N          Equ 5
Count      dw 0
Start:
           lea  bx, [Vector]
           Xor  Si, Si
           mov  [Count], 0
           Mov  Cx, N
S:
           mov  ax, [bx+si]
           shr  ax, 1
           cmc
           adc  [Count], 0
           add  si, 2
           Loop S
.exit 0
end

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

  1. .model tiny — указывает на модель памяти, в данном случае tiny, что означает, что будут использоваться только регистры
  2. .code — сегмент кода
  3. .startup — сегмент инициализации
  4. Org 100h — указание на начальный адрес сегмента
  5. Jmp Short Start — переход на начало программы
  6. Vector Dw 2, 7, -1, 16, 15 - массив чисел, с которыми будет производиться проверка на четность
  7. N Equ 5 - константа, используемая в качестве счётчика для цикла
  8. Count Dw 0 - счётчик для подсчёта четных чисел
  9. Start: — метка начала программы
  10. lea bx, [Vector] — загрузка базового адреса массива в bx
  11. Xor Si, Si — инициализация счётчика для прохождения по массиву
  12. mov [Count], 0 - инициализация счётчика для подсчёта четных чисел
  13. Mov Cx, N — установка счётчика для цикла
  14. S: — метка начала цикла
  15. mov ax, [bx+si] — загрузка очередного числа из массива в ax
  16. shr ax, 1 - выделение четного бита из числа
  17. cmc — проверка чётности числа, если число чётное, то результат будет отрицательным
  18. adc [Count], 0 - прибавление единицы к счётчику, если число чётное
  19. add si, 2 - переход к следующему числу в массиве
  20. Loop S — продолжение цикла до тех пор, пока счётчик не станет равным нулю
  21. .exit 0 - завершение программы

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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