Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Команды условного перехода

Читайте также:
  1. I. Сопровождение перехода на новый образовательный уровень (обучение в школе) Уровень сформированности познавательной деятельности и отдельных её компонентов
  2. Арифметические команды
  3. Внешние команды MS DOS
  4. ВНЕШНИЕ КОМАНДЫ MS DOS. (УТИЛИТЫ MS DOS).
  5. ВНИМАНИЕ!При выполнении действий, связанных с настройкой ленты в окне Параметры Word можно также использовать команды контекстного меню в области списка вкладок и групп на ленте.
  6. ВНУТРЕННИЕ КОМАНДЫ MS DOS.
  7. Вольт-амперная характеристика перехода. Выпрямляющий и омический контакты
  8. Вторым законом диалектики является закон перехода коли­чественных изменений в качественные.
  9. Для перехода от идеального к реальному насосу, необходимо проанализировать, какое влияние на характеристики оказывают сделанные нами допущения.
  10. Дополнительные команды-утилиты

Рассматривая назначение команд условного перехода, следует пояснить характер их использования. Типы данных, над которыми выполняются арифметические операции и операции сравнения, определяют, какими командами пользоваться: беззнаковыми или знаковыми. Беззнаковые данные используют все биты как биты данных; характерным примером являются символьные строки: имена, адреса и натуральные числа. В знаковых данных самый левый бит представляет собой знак, причём если его значение равно нулю, то число положительное, и если равно единице, то отрицательное. Формат команд условного перехода:

 

Jnnn метка

 

Переходы для беззнаковых данных

JE/JZ переход, если равно/ноль

JNE/JNZ переход, если не равно/не ноль

JA/JNBE переход, если выше/не ниже или равно

JAE/JNB переход, если выше или равно/не ниже

JB/JNAE переход, если ниже/не выше или равно

JBE/JNA переход, если ниже или равно/не выше

Переходы для знаковых данных

JE/JZ переход, если равно/ноль

JNE/JNZ переход, если не равно/не ноль

JG/JNLE переход, если больше/не меньше или равно

JGE/JNL переход, если больше или равно/не меньше

JL/JNGE переход, если меньше/не больше или равно

JLE/JNG переход, если меньше или равно/не больше

 

Процедуры

Кодовый сегмент может содержать любое количество процедур, которые разделяются директивами PROC и ENDP. Основная процедура имеет операнд FAR, который информирует систему о том, что данный адрес является точкой входа для выполнения. Все остальные процедуры имеют операнд NEAR для указания того, что эти процедуры находятся в текущем кодовом сегменте. Этот операнд может быть опущен, так как по умолчанию ассемблер принимает тип NEAR. Не основные процедуры могут вызываться как в основной, так и в не основной с помощью команды:

 

CALL имя-процедуры

 

Каждая процедура имеет уникальное имя и содержит собственную директиву ENDP для указания конца процедуры. Команда RET всегда выполняет возврат в вызывающую программу.

Типичная организация много процедурной программы имеет вид:

 

CODEGS SEGMENT PARA

BEGIN PROC FAR

.

.

CALL имя-проц1

.

CALL имя-проц2

.

RET

BEGIN ENDP

имя-проц1 PROC NEAR

.

.

RET

имя-проц1 ENDP

имя-проц2 PROC NEAR

.

.

RET

имя-проц2 ENDP

CODESG ENDS

END BEGIN

 

Необходимо отметить, что команда CALL автоматически записывает в стек относительный адрес команды, следующей непосредственно за командой CALL, уменьшая при этом указатель вершины стека. Это надо учитывать при определении размера стека.

 




Дата добавления: 2014-12-19; просмотров: 196 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.084 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав