Определить количество положительных чисел среди заданных чисел 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).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д