Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды условного перехода и флагиСодержание книги
Поиск на нашем сайте Мнемоническое обозначение некоторых команд условного перехода отражает название флага, с которым они работают, и имеет следующую структуру: первым идёт символ “j” (jump, переход), вторым — либо обозначение флага, либо символ отрицания “n”, после которого стоит название флага. Таблица 3. Команды условного перехода и флаги Название флага Номер бита в eflags/flag Команда условного перехода Значение флага для осуществления перехода Флаг переноса cf jc cf = 1 Флаг четности pf jp pf = 1 Флаг нуля zf jz zf = 1 Флаг знака sf js sf = 1 Флаг переполнения of jo of = 1 Флаг переноса cf jnc cf = 0 Флаг четности pf jnp pf = 0 Флаг нуля zf jnz zf = 0 Флаг знака sf jns sf = 0 Флаг переполнения of jno of = 0
Если внимательно посмотреть на табл. 2 и 3, видно, что многие команды условного перехода в них являются эквивалентными, так как в основе и тех, и других лежит анализ одинаковых флагов.
Пример вычисления выражения: Анализ особенностей задачи. Возможны две ситуации деления на ноль: • • В то же время ситуация, когда Возможны ситуации переполнения. Пример кода. __asm{ mov eсx , a; <eсx>=a mov ebx , b; <ebx>=b cmp eсx , ebx; сравнение a и b jg l_bigger; переход если a>b jl l_smaller; переход если a<b mov eax , 25;<eax>=25 jmp exit; переход на конец программы l_bigger: or ebx , ebx; сравнение b и 0 jz errorZ; ошибка деление на ноль mov eax , eсx; <eax>=a cdq; подготовка деления <edx:eax> = a ; обработка ситуации «частное велико» idiv ebx; <eax> = a/b sub eax , 4; <eax> = a/b – 4 jo errorOF jmp exit; переход на конец программы l_smaller: or ecx , ecx; сравнение b и 0 jz error; ошибка деление на ноль mov eax , ebx; <eax>=b imul ecx; <edx:eax> = b*b add eax , -5; добавление в младшую часть ; <eax> = b*b – 5 adc edx , -1; коррекция старшей части ; <edx:eax> = b*b – 5 ; обработка ситуации «частное велико» idiv ecx; < eax> = (b*b – 5)/a jmp exit errorZ: errorOF: exit:
|
||
|
Последнее изменение этой страницы: 2024-06-27; просмотров: 55; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.236 (0.006 с.) |