Определить количество положительных чисел среди заданных чисел a, b и c - Assembler

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

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

Здравствуйте,помогите с ассемблером,пожалуйста.Определить количество положительных чисел среди заданных чисел a, b и c;

Решение задачи: «Определить количество положительных чисел среди заданных чисел a, b и c»

textual
Листинг программы
a    db    120
b    db    -10
с    db    -78
 
start:
     mov   si,a      ; источник
     mov   cx,3      ; кол-во элементов
     xor   ah,ah     ; AH=0 (здесь будет результат)
 
@00: lodsb           ; число в AL (si+1)
     or    al,al     ; проверка его
     js    @01       ; переход, если SF=1 (отрицательное)
     inc   ah        ; иначе: счётчик +1
@01: loop  @00       ; промотать СХ-раз..
     ret             ; выход в DOS для *.com!

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

  1. Задано три числа: a=120, b=-10, c=-78.
  2. Переменная si указывает на первое число (a), cx=3 (количество чисел).
  3. Переменная ah инициализируется нулём (0), которая будет содержать результат.
  4. Используя lodsb, программа загружает байт из памяти в AL (si+1).
  5. Используя операцию or с AL, проверяется, является ли число отрицательным (SF=1).
  6. Если число отрицательное, то происходит переход к метке @01.
  7. Иначе, счётчик увеличивается на 1 и сохраняется в ah.
  8. Используя loop, происходит три повторения: — Первое число (a) не отрицательное, поэтому счётчик увеличивается на 1. — Второе число (b) отрицательное, поэтому происходит переход к метке @01. — Третье число (c) отрицательное, поэтому происходит переход к метке @01.
  9. Выход из программы (ret).

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


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

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

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