CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

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

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

      Иногда код ассемблера необходимо с делать с условием пример фильтр свой чужой. Реализовать это можно сравнением двух адресов и задать условие. Сравнение задаётся командой 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

      • 1 / 1
      • Первое сообщение
        Последнее сообщение
      Powered by NodeBB | Contributors
      СeLua[RU] 2025©