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