Проверка на чет/нечет? - Assembler

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

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

Как проверить число 5 на его четность/нечетность? К примеру: в регистр eax засовываю число 5(нечет) т.е xor eax,eax mov eax,5 - как узнать чет это число или нечет? Раньше думал мол можно так: сравниваю его cmp eax,eax и проверяю на нечетность т.е jnp result ;else jmp start но оно работает не так :/ (проверяет на нечетность число ЕДИНИЧНЫХ бит.)

Решение задачи: «Проверка на чет/нечет?»

textual
Листинг программы
mov eax,5
 
test eax,1
jz even
 
odd:
;действие, если число нечетное
 
jmp exit
 
even:
;действие, если число четное

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

  1. mov eax,5 - в переменную EAX записывается число 5
  2. test eax,1 - в EAX происходит побитовое И с 1, результат сохраняется в CF (флаг результата)
  3. jz even - если CF=1 (то есть результат побитового И с 1 равен 0), то выполняется переход на метку even
  4. odd: - это метка, которая будет выполнена, если число нечетное
  5. jmp exit - происходит переход на метку exit
  6. even: - это метка, которая будет выполнена, если число четное

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


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

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

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