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

Лабораторная работа №4 Программирование логических операций

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

Изучение логических команд микропроцессоров семейства Intel х86 и выполнение программ, использующих вычислительные операции.

2. Задание.

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

  1. Изучить содержание, форму записи и последовательность выполнения логических команд микропроцессоров семейства Intel х86, в т.ч. AND, OR, XOR, TEST, NOT, SAR, SAL, SHL, SHR, RCL, RCR, ROL, ROR, и операторов EQ, NE, IT, LE, GT, GE по [1].

  2. Разработать детальную схему алгоритма вычисления функции

Y=X*7=X-2*X+(2*X)*2. Величина Y < 65535.

Таблица 4

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

F

X

X1

X2

1

X1V(&(X1VX2))&(X1V)

148710

A1D916

C8F516

2

X1&(X1V)V(&X2)

563310

15F016

99BC16

3

X1&(VX2)V(X1VX1&X2)

397110

7E1A16

E88E16

4

X1&(VX1&X2)VX1&

811010

FA5116

881216

5

(X1V&X2)&(X1V)

274410

C7A816

D68116

6

X1&X2(X1V)V&(X1VX1&X2)

913810

0FFF16

FFF016

7

X1&((V)VX1&X2)

475110

7AC16

AD6916

8

(X1V&X2)&(X1VX1&)

618910

191A16

DA7616

9

X1&(VX2)VX1&X2

793410

275616

600116

10

X1VX1&X2&(X1V&)

458610

FA4516

8AFD16

Примечание: операция конъюнкция (&) старше операции дизъюнкции (V)

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

Написать программу на языке ассемблер в текстовом редакторе «Блокнот» реализующую следующие подпункты:

  1. С помощью команд AND, OR, NOT реализовать функцию F (таблица 4). Результат сохранить в переменной ХЗ. При вычислениях желательно использовать регистры АХ, ВХ, СХ, DX. Фиксировать значения всех используемых в программе регистров на каждом шаге выполнения программы.

  2. С помощью команд AND, NOT, XOR реализовать следующую функцию:

f = (Х1⊕Х2⊕Х12)&(Х1⊕Х12). Результат сохранить в переменной X4. При вычислениях желательно использовать регистры АХ, ВХ. Фиксировать значения всех используемых в программе регистров на каждом шаге выполнения программы.

  1. С помощью команды циклического сдвига влево через перенос (RCL) выполнить программу вычисления функции Y=X*7. При вычислениях желательно использовать регистры АХ, ВХ. Сохранить Y в регистре DX. Фиксировать значения всех используемых в программе регистров на каждом шаге выполнения программы.

  2. С помощью команды TEST сравнить следующие числа: 4369010 и 2184510; 6168010 и 1542010; 13910 и 24410; 19810 и 24910. Возможно использование одного из сравниваемых чисел как непосредственного операнда. При вычислениях желательно использовать регистры АХ, ВХ. Фиксировать значения всех используемых в программе регистров на каждом шаге выполнения программы. Фиксировать значения флагов ZF,SF,PF.

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

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

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

    1. Список логических команд микропроцессоров семейства Intel х86.

    2. Детальную схему алгоритма вычислений для пункта 2.1.2.

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

    4. Дамп памяти содержащий сегмент данных программы (для переменных Х3,X4).

    5. Таблица состояний РОН процессора на каждом шаге выполнения программы для всех пунктов, а регистра флагов только для пункта 2.2.4.

    6. Выводы.

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

4.1. Какие логические операции вы знаете?

4.2. Какие логические команды вы знаете?

4.3. Что такое базис логической функции?

  1. В чем особенность команды TEST?

  2. В чем отличие логических команд от логических операторов?

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