- •Федеральное агентство связи
- •Регистры общего назначения.
- •Сегментные регистры.
- •Регистры состояния и управления.
- •Формат команд.
- •Создание программы на ассемблере.
- •Отладчик Turbo Debugger.
- •Структура программы на ассемблере.
- •Методические указания по выполнению лабораторных работ.
- •Лабораторная работа №1 Изучение пакета tasm и организация ввода данных с клавиатуры.
- •Лабораторная работа №2 Система адресования и последовательность выполнения основных команд пересылки.
- •Лабораторная работа №3 Программирование арифметических операций.
- •Лабораторная работа №4 Программирование логических операций
- •Лабораторная работа №5 Запись и выполнение программ пересылки данных между информационными массивами.
- •Лабораторная работа №6 Программирование ветвящихся вычислительных процессов.
- •Лабораторная работа №7 Программирование итеративных циклических вычислительных процессов.
- •Лабораторная работа №8 Программирование и контроль регулярных циклических вычислительных процессов.
- •Лабораторная работа №9 Программа и стек.
- •Лабораторная работа № 10 Программирование вычислительных процессов с использованием стандартных подпрограмм.
Лабораторная работа №2 Система адресования и последовательность выполнения основных команд пересылки.
Цель работы.
Изучение системы адресации и команд пересылки микропроцессоров семейства Intel х86.
Задание.
Предварительная часть.
Изучить систему адресации микропроцессоров семейства Intel х86 по [1,2].
Изучить содержание, форму записи и последовательность выполнения команд пересылки по [1]. Изучить содержание и форму записи директив определения данных и оператора указания типа данных - PTR по [1,2]
Экспериментальная часть.
Исследовать операции пересылки данных в микропроцессоре. Используя текстовый редактор ‘‘Блокнот” записать программу на языке ассемблер, осуществляющую операции пересылки данных в микропроцессоре. Для этого взять исходные данные в таблице 2, согласно номеру бригады. Записать переменную а в регистр al. Осуществить пересылку переменной с в регистр ah. Записать непосредственный операнд (см. таблицу 2) в регистр dx. Переслать переменную с в регистр bx, командой mov bx,word ptr с. Так как размеры операндов не совпадают применяется оператор указания типа данных - PTR, который показывает, что переменную с следует рассматривать как операнд размером в слово. Записать содержимое регистра al в регистр cl. Осуществить пересылку из регистра cl в переменную с. Записать содержимое регистра ах в регистр сх. Осуществить пересылку из регистра dh в регистр cl. Записать содержимое переменной b в регистр si. Переслать данные из регистра ah в переменную b. Необходимо учитывать, что переменная а имеет размер байт, переменная b размер слова, переменная с размер байт, непосредственный операнд размер слова.
Таблица 2
№ бригады |
Имя переменной |
Непосредственный операнд (слово) | ||
A (байт) |
B (слово) | |||
1 |
1E16 | |||
2 |
410 |
476510 |
DA16 |
EEA116 |
3 |
2116 |
29910 |
F116 |
23610 |
4 |
CD16 |
DD0116 |
24010 |
5183510 |
5 |
4510 |
1110 |
7516 |
432516 |
6 |
12510 |
3F5A16 |
7010 |
CCDA16 |
7 |
DE16 |
1454710 |
3716 |
1222210 |
8 |
7816 |
47210 |
17610 |
FFD16 |
9 |
7810 |
A2316 |
4D16 |
614910 |
Произвести компоновку полученной программы, т.е. создать загрузочный модуль с опциями для tasm.exe - [/zi], а для tlink.exe - [/v].
Загрузить отладчик TD и исследовать в нем работу программы в пошаговом режиме, нажимая клавишу F7. Необходимо также с помощью TD просмотреть область памяти содержащую сегмент данных. Для этого, после пошагового выполнения команд mov ax,@data, mov ds,ax, в пункте меню View выбрать Dump. В окне Dump вызвать контекстное меню, щелкнув правой кнопкой мыши. В появившемся контекстном меню выбрать команду Goto и ввести в диалоговом окне начальный адрес памяти –DS:0000. После этого, в окне Dump будут видны данные сегмента в двух представлениях: шестнадцатеричном и символьном.
Содержание отчета.
Текст программы на языке ассемблер.
Дамп памяти содержащий сегмент данных, используемых программой, в
шестнадцатеричном представлении.
Таблица состояния регистров процессора на каждом шаге выполнения
программы.
Выводы.
4. Контрольные вопросы.
4.1. Какие методы адресации используются в системе команд микропроцессора Pentium?
4.2. В чем заключается смысл команд пересылки?
Как осуществить пересылку данных-между регистрами микропроцессора?
Как записать число в регистр микропроцессора?
Как посмотреть область памяти содержащую сегмент данных?
Как записать переменную размером в байт в 16-ти разрядный регистр?
Зачем в начале программы указываются команды mov ax,@data и mov ds,ax?