Лабораторная работа № 3. Команды условного 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа № 3. Команды условного



И безусловного переходов. Организация ветвлений и циклов  в программе

Цель работы

1. Изучение принципов функционирования памяти и микропроцессора компьютера при выполнении ветвлений и циклов.

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

3. Получение представления об особенностях обработки данных, команд и режимах доступа к данным при организации ветвлений и циклов.

4.3.2. Контрольные вопросы

1. Ветвления в алгоритмах. Реализация ветвлений на языке ассемблера.

2. Команды условного и безусловного переходов. Каким образом вычисляются адреса переходов?

3. Циклы в алгоритмах. Организация циклов на языке ассемблера. Особенности и ограничения цикла LOOP.

4. В каком регистре находится во время выполнения программы смещение кода? Каким образом вычисляется адрес команды?

5. Какую принципиальную роль играет оператор безусловного перехода JMP при организации ветвлений?

6. Что означает корректное завершение программы?

7. Реальный и защищённый режимы работы процессора. Вычисление физических адресов ячеек памяти.

Задание на лабораторную работу

1. Написать программу на языке ассемблера, которая реализует ветвления и циклы.

1.1. В сегменте данных определить два числа в шестнадцатеричной системе счисления, размером в один байт каждое.

1.2. Также в сегменте данных описать однобайтовую ячейку для хранения наибольшего общего делителя (НОД) двух чисел с произвольным первоначальным значением.

1.3. Используя команды переходов и цикла, найти НОД двух чисел, описанных в сегменте данных.

1.4. Полученный результат поместить в соответствующую ячейку памяти.

1.5. Используя команды циклического сдвига, переходов и цикла подсчитать количество единиц в НОД.

1.6. Полученное значение поместить в регистр DL.

2. На основе исходной программы получить исполняемый файл. Выполнить программу по шагам с помощью отладчика TD, описать изменение состояния регистров и ячеек памяти при выполнении программы. Обратить особое внимание на следующие моменты:

2.1. Как изменяется содержимое регистра IP при выполнении переходов? Какие виды переходов используются в программе. Что содержится в регистре IP?

2.2. Чему равен адрес следующей команды при выполнении условия для перехода и в противном случае?

2.3. Каким образом организованы циклы в программе?

2.4. Какое значение будет находиться в регистре для НОД после подсчета количества единиц? Сколько раз нужно выполнить команду циклического сдвига, чтобы получить первоначальное значение?

Лабораторная работа № 4. Обработка массивов. Числа Фибоначчи

Цель работы

1. Изучение принципов функционирования памяти и микропроцессора компьютера при выполнении операций над массивами данных.

2. Приобретение навыков использования команд ассемблера, связанных с обработкой массивов.

3. Получение представления об особенностях обработки данных, командах и режимах доступа к данным при обработке массивов.

4.4.2. Контрольные вопросы

1. Массивы и их представление в памяти компьютера.

2. Режимы адресации данных, которые могут применяться для доступа к элементам массива. Привести примеры.

3. Способы описания массивов в сегменте данных.

4. Особенности обработки двумерных массивов в ассемблерных программах. Вычисление смещения элемента двумерного массива относительно начала сегмента данных.

5. Какие режимы адресации данных можно использовать для доступа к элементам двумерного массива? Привести примеры.

Задание на лабораторную работу

1. Написать программу на языке ассемблера, которая использует массивы и позволяет вычислить числа Фибоначчи в заданном диапазоне.

1.1. В сегменте данных определить массив из 18 двухбайтовых ячеек с произвольным первоначальным значением, две двухбайтовые ячейки с нулевым первоначальным значением для размещения минимального и максимального элементов массива соответственно.

1.2. Вычислить первые 18 чисел Фибоначчи и поместить их в массив, обращаясь к нему как к одномерному массиву.

1.3. Рассматривая имеющийся массив как двумерный размера 3×6 (3 строки, 6 столбцов), найти наименьший из нечётных элементов второй строки и наибольший из чётных элементов четвёртого столбца.

1.4. Полученные результаты поместить в соответствующие ячейки памяти.

2. На основе исходной программы получить исполняемый файл. Выполнить программу по шагам с помощью отладчика TD, описать изменение состояния регистров и ячеек памяти при выполнении программы. Обратить особое внимание на следующие моменты:

2.1. Как расположены элементы массива в памяти?

2.2. Сколько ячеек памяти отведено под массив?

2.3. Каким образом осуществляется доступ к элементам одномерного массива? Как изменяется индексный регистр, используемый для указания смещения элемента массива?

2.4. В каких регистрах процессора содержатся смещение по строке и смещение по столбцу для двумерного массива? Каким образом они вычисляются? На что указывает метка начала массива?



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 201; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.16.70.101 (0.005 с.)