Если у вас есть число и вам необходимо проверить является ли оно четным или все же оно нечетное, но при этом нет возможности воспльзоваться стандартными функциями и даже логическими, но есть всемогущие арифметические ), типа плюс, минус, умножить, разделить, тогда эта статья будет вам полезна.
Сначала опишу алгоритм:
1. Разделить имеющееся число на 2. При этом получим целую часть от деления. 2. Умножим полученный результат на 2. 3. Отнимем от последнего полученного результата исходное число. 4. Если получили отрецательное значение - исходное число - нечетное, если 0, то четное, можно например выполнить переход, если отрицательное.
Вот сокращенно формула, допустим, что в а исходное число: result=(a/2)*2-a result={-1;0}
Код на ассемблере:
start: rd 70 ;допустим, что исходное число находится в ячейке с адресом 70, читаем число в аккумулятор div #2 ;нацело делим на 2 mul #2 ;умножаем на 2 sub 70 ;отнимаем от результата исходное число (из ячейки 70) jnz nenv ;переход, если результат не равен нулю, в данном случаен - отрицателен, т.е. исх.число - нечетное
;если четное выполняем действия jmp ext
nenv: ;если нечетное выполняем действия
ext:
|