Студопедия

Главная страница Случайная страница

Разделы сайта

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






Команды управления циклами - LOOP






Команды управления циклами обеспечивают условные передачи управления при организации циклов. У микропроцессора 8086, регистр счетчика СХ служит счетчиком числа повторений циклов. Каждая команда управления циклами уменьшает содержимое регистра СХ на 1, а затем использует его новое значение для " принятия решения" о выполнении или не выполнении перехода.

Основная команда LOOP (loop until Count complete - повторять цикл до конца счетчика). Формат команды: LOOP MP; MP- метка перехода.

Команда уменьшает содержимое регистра СХ на 1, проверяет его на равенство 0 и осуществляет переход на указанную близкую метку в том же сегменте команд в диапазоне -128…+127 байтов, если содержимое регистра СХ не равно 0. Содержимое СХ рассматривается как целое число без знака, поэтому максимальное число повторений группы включенных в цикл команд, составляет 65536 (если перед входом в цикл СХ = 0). Команда выполняется по следующему алгоритму:

CX: = CX – 1, if CX ≠ 0 then go to < метка >

Команда Loop объединяет действия трех команд:

1. Dec CX; Уменьшить значение СХ на 1 (CX: = CX -1).

2. Cmp CX, 0; Сравнить СХ с 0.

3. Jne MP; Если CX ≠ 0, передать управление на метку МР.

Например, для стократного выполнения определенной группы команд можно воспользоваться следующей конструкцией:

MOV СХ, 1ОО; 3агрузить число повторении в СХ.
START: MOV AX, TAB+[SI]; Повторяемая

INC CI; группа

...; команд.

...;

LOOP START; Если СХ не равен О, перейти к метке START.
...; В противном случае выйти иэ цикла.

Команда LOOP завершает выполнение цикла только в том случае, если содержимое регистра СХ уменьшено до 0.

3.1.13 Команда пересылки данных – MOV

Основная команда общего назначения MOV (move - переслать) может пересылать байт или слово между регистром и ячейкой памяти или между двумя регистрами. Она может также пересылать непосредственно адресуемое значение в регистр или в ячейку памяти. При пересылке она замещает первый операнд (приемник), вторым (источником), соответственно исходное значение первого операнда теряется. Тип пересылаемых операндов должен быть одинаков.

Команда MOV имеет следующий формат: MOV приемник, источник

В этой команде допустимо большинство из возможных сочетаний операндов. Приведем несколько примеров:

MOV AX, TABLE; Пересылка из памяти в регистр.

MOV TABLE, АХ; Пересылка из регистра в память.

MOV ES: [BX], AX; Можно заменить используемый регистр сегмента.

MOV DS, AX; Пересылка между 16-битовыми регистрами.

MOV BL, AL; Пересылка между 8- биовыми регистрами.

MOV CL, -ЗО; Пересылка константы в регистр.

MOV DEST, 25H; Пересылка константы в память.

В команде МОV исключаются следующие сочетания операндов:

1. Память, память. То есть запрещается непосредственная пересылка данных из одной ячейки памяти в другую. Чтобы выполнить такую операцию необходимо использовать промежуточное звено, например регистр общего назначения. Если POUNDS и WEIGHT- переменные, находящиеся в памяти, то для пересылки значения из одной переменной в другую можно воспользоваться командами MOV AX, POUNDS

MOV WEIGHT, AX

2. Регистр сегмента, непосредственный операнд. Нельзя пересылать непосредственно адресуемый операнд в регистр сегмента. Как и в случае 1, сначала надо загрузить его в регистр общего назначения. Например, для загрузки адреса сегмента данных (DATA_SEG) в регистр DS используют следующие команды: MOV AX, @DATA

MOV DS, AX

Они инициализируют сегментный регистр DS.

3. Регистр сегмента, регистр сегмента. Нельзя непосредственно переслать значение одного регистра сегмента в другой. Делайте подобные пересылки через регистр общего назначения. Например, чтобы регистр DS указывал на тот же сегмент, что и регистр ES, воспользуйтесь командами

MOV АХ, ЕS

MOV DS, AX

4. Запрещено использовать регистр CS в качестве приемника в команде пересылки.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.