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


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

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






Циклы со счетчиком





Лабораторная работа №3

ПРОГРАММИРОВАНИЕ ВЛОЖЕННЫХ ЦИКЛОВ.

1.1 Цель лабораторной работы:

Освоение базово-индексной и базово-индексной со смещением адресаций при работе с 2-мерными массивами, а также форм записи базово-индексной адресаций; изучение способов организации циклов.

Задание

1. В соответствии с вариантом задания составьте граф-схему решения задачи и на ее основе разработайте программу.

2. Получите файл листинга программы.LST.

3. Выпишите машинные коды команд: JMP, JZ, LOOP, PUSH,POP.

Содержание отчета

- титульный лист;

- задание;

- граф-схема решения задачи;

- текст программы в виде распечатанного.LST файла с комментариями;

- результаты работы программы (.CRF файл, состояния регистров, дампы (dump) памяти;

- машинные коды требуемых команд.

Основные понятия

Как и во всяком языке программирования, обработка массивов выполняется с помощью циклических конструкций. В Ассемблере существует 2 способа организации циклов:

1. цикл со счетчиком организуется с помощью команды LOOP;

2. цикл с условием организуется программистом самостоятельно с помощью команды условного перехода Jxx и команды безусловного перехода JMP.

Циклы со счетчиком

В свою очередь циклы с постусловием делятся на циклы с постоянным и переменным кол-вами повторений

LOOP –цикл с постоянным кол-вом повторений

Команда Синтаксис Действие
LOOP LOOP <метка> СХ является счетчиком повторений, LOOP декрементирует СХ, и если СХ¹0, то IP= <метка>; если же СХ=0,тогда IP= IP+1. CХ- беззнаковое число, <метка> расположена в диапазоне -127¸128.

LOOPZ½LOOPNZ –цикл с переменным кол-вом повторений

Команда Синтаксис Действие  
LOOPE/ LOOPZ (Сино- нимы) LOOPE <метка> Цикл, пока равно, но не более СХ раз. СХ является счетчиком повторений, LOOPЕ сначала проверяет флаг ZF: если ZF=1, то декрементируется СХ, и если СХ¹0, то IP= <метка>; если же ZF=0,тогда IP= IP+1 вне зависимости от СХ. CХ- беззнаковое число, <метка> расположена в диапазоне -127¸128.  
LOOPNE/ LOOPNZ (Сино-нимы) LOOPNE <метка> Цикл, пока не равно, но не более СХ раз. СХ является счетчиком повторений, LOOPNЕ сначала проверяет флаг ZF: если ZF=0, то декрементируется СХ, и если СХ¹0, то IP= <метка>; если же ZF=1,тогда IP= IP+1 вне зависимости от СХ. CХ- беззнаковое число, <метка> расположена в диапазоне -127¸128.

Общим недостатком LOOP½LOOPZ½LOOPNZ является ограничение на длину диапазона в пределах -127¸128 байт.

Пример 1. Граф-схема цикла со счетчиком (рис.1)

Рис.1

имеет следующий шаблон на Ассемблере:

mov cx, m; m- кол-во повторений

met: ……………

push cx

……………

pop cx

loop met

Примечание: При необходимости использования в теле цикла регистра CX его содержимое сохраняется в стеке, а перед командой LOOP – обязательно восстанавливается из стека. Met является адресом (меткой) перехода. Символ “:” - служебный, обозначающий прямой ближний переход, т.е. переход в пределах текущего сегмента кода. Следовательно, TASM резервирует под met 8 бит.

Date: 2015-05-22; view: 596; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию