Проверка на чет/нечет? - 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: - это метка, которая будет выполнена, если число четное

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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