Вариант 5. 1) Даны три числа, уменьшить каждое на 4210.
2) В заданной последовательности определить сумму нечетных чисел.
Алгоритм задания в программу Ассемблер.
Объявление переменных в !регистрах! A, B, C.
· A = a;
· B = b;
· C = c;
D = 2 - Записываем константу в регистр D.
E = 0; - Тут будем хранить сумму нечетных чисел. Сейчас там 0.
rd A; - Исходное число находится в регистре с адресом A, читаем число в аккумулятор.
div #2; - Нацело делим на 2.
mul #2; - Умножаем на 2.
sub 70;- Отнимаем от результата исходное число (из регистра А).
jnz nenv; - Переход, если результат не равен нулю, в данном случаен - отрицателен, т.е. исх.число – нечетное /значит не четный/ Совершаем необходимые манипуляции, т.е. складываем
jmp ext; - Если четное выполняем действия.
nenv:
add E, A; - Если нечетное выполняем действия.
exit:
То же самое для B, C.
rd B; - Исходное число находится в регистре с адресом A, читаем число в аккумулятор.
div #2; - Нацело делим на 2.
mul #2; - Умножаем на 2.
sub 70; - Отнимаем от результата исходное число (из регистра А).
jnz nenv; - Переход, если результат не равен нулю, в данном случаен - отрицателен, т.е. исх.число - нечетное /значит не четный/ Совершаем необходимые манипуляции, т.е. складываем
jmp ext; - Если четное выполняем действия.
nenv:
add E, B; - Если нечетное выполняем действия.
exit:
rd C; - Исходное число находится в регистре с адресом A, читаем число в аккумулятор.
div #2; - Нацело делим на 2.
mul #2; - Умножаем на 2.
sub 70; - Отнимаем от результата исходное число (из регистра А).
jnz nenv; - Переход, если результат не равен нулю, в данном случаен - отрицателен, т.е. исх.число - нечетное/значит не четный/ Совершаем необходимые манипуляции, т.е. складываем
jmp ext; - Если четное выполняем действия.
nenv:
add E, C; - Если нечетное выполняем действия.
exit:
После этого выполняем сложение
add A,-42;
add B,-42;
add C,-42;
//Конец//
Если чётное Если нечётное
В эмуляторе представлен вариант вычитания из аккумулятора 42, аналогичные операции для вычитания из регистров В и С. Сравнение с резистором D получившегося результата.