Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗФ / ВМСиС сборник лабораторных работ.docx
Скачиваний:
51
Добавлен:
06.11.2017
Размер:
457.26 Кб
Скачать

Лабораторная работа №5 Запись и выполнение программ пересылки данных между информационными массивами.

  1. Цель работы.

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

  1. Задание.

    1. Предварительная часть.

      1. Изучить методы формирования информационных массивов по [1,2].

      2. Изучить алгоритм передачи данных из массива M1 в массив М2 и обратно по [1].

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

      4. Записать алгоритм передачи данных из массива M1 в массив М2 и обратно.

    2. Экспериментальная часть.

  1. Записать программу передачи данных между массивами в текстовом редакторе “Блокнот” на языке ассемблер. Для этого сформировать 2 массива с числом элементов не менее 6 в каждом. Размер элементов массива взять равным 1 байту. Задаться индексами элементов в массивах, по которым произойдет обмен элементов. Произвести обмен между массивами по заданным индексам. Поместить новый элемент массива M1 в регистр dl, а новый элемент массива М2 в регистр dh.

  2. Произвести компоновку полученной программы, т.е. создать загрузочный модуль с опциями для tasm.exe - [/zi], а для tlink.exe - [/v].

  3. Загрузить отладчик TD и исследовать в нем работу программы в пошаговом режиме, нажимая клавишу F7.

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

    1. Описание алгоритма пересылки данных из массива M1 в массив M2 и обратно.

    2. Текст программы на языке ассемблер.

    3. Таблица состояния регистров процессора на каждом шаге выполнения программы.

    4. Выводы.

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

    1. Способы описания массивов на языке ассемблер.

    2. Как организуется пошаговый режим работы программы в TD.

  1. Какие пары регистров - модификаторов разрешено использовать при модификации по нескольким регистрам.

  2. Какие регистры могут быть использованы в качестве регистров - модификаторов.

Лабораторная работа №6 Программирование ветвящихся вычислительных процессов.

  1. Цель работы.

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

  1. Задание.

2.1. Предварительная часть.

  1. Изучить содержание, форму записи и последовательность выполнения команд условных и безусловных переходов по [1,2]. Записать мнемокод и содержание команд: je, jne, jc, jp, jnp, jz, jnz, jc, jnc, jmp.

  2. Разработать детальную схему алгоритма вычисления функции у=х*2+[(х*2)*2]*2. Число х<256=28, а произведение у занимает 2 байта. Значение х (десятичные числа) заданы в таблице 5.

Таблица 5

Номер бригады

1

2

3

4

5

6

7

8

9

x

75

100

80

90

120

49

65

73

40

2.2. Экспериментальная часть.

2.2.1. Записать программу у=х*10 в текстовом редакторе “Блокнот” на языке ассемблер. Выполнение операции умножения х*2 рекомендуется выполнить с помощью команды ADD al,al{al←al+al}. Если при сложении младших байтов произошел перенос из старшего разряда (флаг CF=1), то целесообразно использовать команду ADC ah,0, которая выполняет арифметическое сложение приемника, источника и флага CF. Записать результат умножения х*10 в регистр dx, причем старший байт результата поместить в dh, а младший байт соответственно в dl.

  1. Произвести компоновку полученной программы, т.е. создать загрузочный модуль с опциями для tasm.exe - [/zi], а для tlink.exe - [/v].

  2. Загрузить отладчик TD и исследовать в нем работу программы в пошаговом режиме, нажимая клавишу F7.

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

3.1. Команды условных и безусловных переходов: мнемоника, содержание операции.

3.2. Детальная схема алгоритма вычисления функции y=x*10.

3.3. Текст программы на языке ассемблер.

3.4. Таблица состояния регистров процессора на каждом шаге выполнения программы.

3.5. Выводы.

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

  1. Какие существуют команды условных переходов?

  2. Пояснить смысл команды jz, jnz, jc, jnc.

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

  4. Как выполнить операцию х*100?

Соседние файлы в папке ЗФ