Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лекция № 4. Условные переходы. Арифметиченские команды. BCD числа.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Микропроцессор имеет 18 команд условного перехода, позволяющие проверить: – отношение между операндами со знаком (больше-меньше); – отношение между операндами без знака (выше-ниже); – состояние арифметических флагов zf,sf, cf, of, pf. Команды условного перехода имеют одинаковый синтаксис: Jcc метка_перехода
Межсегментной передачи управления в условных переходах не допускается (максимальный переход равен размеру сегмента). Источниками условия для перехода могут быть: – любая команда, изменяющая состояние арифметических флагов; – команда сравнения cmp; – состояние регистра ecx/cx. Команда cmp выполняет вычитание операторов и устанавливает флаги, не записывает результат вычитания на место первого операнда. Cmp операнд_1, операнд_2
Значения аббревиатур в названии команды jcc:
Пример 7: сравним очередной элемент массива с 5:
Команды условного перехода и флаги
Cmp x, y
Пример 8: надо преобразовать строчные буквы в прописные. Строчным буквам в таблице ASCII символов соответствует диапазон 61h-7ah, прописным – 41h-5ah. Для выполнения преобразования между строчными и прописными буквами достаточно инвертировать 5 бит. Например: а – 01100001 z – 01111010 А – 01000001 Z – 01011010
Таблица ASCII кодов.
Команды условного перехода и регистр есх/сх. Регистр есх/сх выполняет роль счётчика в командах управления циклами и при работе с цепочками символов. Синтаксис этой команды таков: – Jcxz метка_перехода (Jump if is zero) – прыжок, если сх ноль; – jecxz метка_перехода (Jump equal ecx zero) – переход, если есх ноль.
В отличие от других команд условной передачи управления, команды Jcxz/ jecxz могут адресовать только короткие переходы – на -128 байт или на +127 байт от следующей за ней командой.
Организация циклов В системе команд микропроцессора существует три команды для работы с циклами. Данные команды: 1) loop метка_перехода – повторить цикл. Работа команды заключается в выполнении следующих действий: а) декремента регистра есх/сх; б) сравнение регистра есх/сх с нулём; если (есх/сх)>0, то управление передаётся на метку перехода; если (есх/сх)=0, то управление передаётся на следующую после loop команду;
2) loope/loopz метка_перехода – повторить цикл пока сх=0 или zf=0. Команды loope и loopz – абсолютные синонимы. Работа команд заключается в выполнении следующих действий: а) декремента регистра есх/сх; б) сравнение регистра есх/сх с нулём; в) анализа состояния флага нуля zf; если (есх/сх)>0, и zf=1, управление передаётся на метку перехода; если (есх/сх)=0, или zf=0, управление передаётся на следующую после loop команду;
3) loopne/loopnz метка_перехода – повторить цикл пока сх<>0 или zf=1. Команды loope и loopz – абсолютные синонимы. Работа команд заключается в выполнении следующих действий: а) декремента регистра есх/сх; б) сравнение регистра есх/сх с нулём; в) анализа состояния флага нуля zf; если (есх/сх)>0, и zf=0, управление передаётся на метку перехода; если (есх/сх)=0, или zf=1, управление передаётся на следующую после loop команду;
Команды loop loope/loopz и loopne/loopnz реализуют только короткие переходы (от -128 до _127 байтов). Для работы с длинными циклами необходимо использовать команду jmp.
При работе с вложенными циклами возникает проблема сохранения значения счётчика внешнего цикла есх/сх на время выполнения внутреннего цикла. Для этого можно использовать регистры, ячейки памяти или стек. Пример программы, содержащей три цикла вложенных один в другой.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-09-13; просмотров: 689; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.169 (0.008 с.) |