Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Collapse
Brand Logo

CELua[RU]

  1. Главная
  2. Программирование
  3. Обучающие примеры
  4. Безусловные и условные пыжки.

Безусловные и условные пыжки.

Запланировано Прикреплена Закрыта Перенесена Обучающие примеры
1 Сообщения 1 Posters 63 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • PitronicP Не в сети
    PitronicP Не в сети
    Pitronic Супер модераторы
    написал в отредактировано Pitronic
    #1

    Иногда код ассемблера необходимо с делать с условием пример фильтр свой чужой. Реализовать это можно сравнением двух адресов и задать условие. Сравнение задаётся командой cmp, после которой идёт условие прыжка , после которого выполняется ваш код. пример мы нашли смещение от адреса число которое равно 1 от начала структуры адреса игрока и нам надо если оно равно чтоб здоровье было больше. и так пишем наш код.
    cmp [eax+1234],1 // сравнили наш адрес фильтра с единицей
    jne code // если не равно прыжок на метку code
    mov [eax+40],#99999 // а если равно
    кроме метки code могут быть безымянные метки
    @F прыжок в перёд
    @B прыжок назад
    пример
    cmp [eax+1234],1 // сравнили наш адрес фильтра с еденицей
    jne @F // если не равно прыжок в перёд
    mov [eax+40],#99999 // а если равно
    также есть чистая безымянная метка которая позволит сделать два условия
    @@: безымянная метка
    пример с этим же кодом
    cmp [eax+1234],1 // сравнили наш адрес фильтра с единицей
    jne @F // если не равно прыжок в перёд
    mov [eax+40],#99999 // а если равно
    @@: // прыжок на безымянную метку
    mov [eax+40],0 // если [eax+1234],1 не равен это наш враг и с метки @@: не наш игрок умирает
    Теперь таблица условных прыжков и переходов:
    JA прыжок, если выше
    JAE прыжок, если выше или равно
    JB прыжок, если ниже
    JBE прыжок, если меньше или равно
    JC Прыгает, если перенос
    JCXZ прыжок, если равно нулю
    JE прыжок, если равно
    JG прыжок, если больше
    JGE прыжок, если больше или равно
    JL прыжок, если меньше
    JLE прыжок, если меньше или равно
    Прыжок JNA, если не выше
    JNAE прыжок, если не выше или не равно
    Прыжок JNB, если не ниже
    JNBE прыжок, если не ниже или не равно
    Переход JNC, если не выполняется перенос
    JNE прыжок, если не равно
    Переход JNG, если не больше
    JNL прыжок, если не меньше
    JNO переходит, если не переполнено
    JZ прыжок если равно нулю.

    1 ответ Последний ответ
    👍
    1

Powered by NodeBB | Contributors
СeLua[RU] 2024©
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы