Пересылка из регистра в регистр
1). DX, CX=CD34
2). BX, AX=B389
3). AX, CX=1C65
4). DX, SI=1F3C
5). AX, BX=30B9
6). AH, DL=67
7). AL, BL=20
8). DX, DI=3E3F
9). SI, DI=0A30
10). AX, BP=101E
11). DH, CH=6A
12). BP, DI=356D
Практическая работа № 4
Команды передачи данных и управления 2 часть
Цель работы: Изучить работу процессора при выполнении команд передачи данных PUSH, POP и команд передачи управления CALL, RET, использующих стек.
Задание:
1. Запустить программу Debug:
выполнить задание №1 с командами передачи данных и управления PUSH и POP.
1.1. Сохранить значения указанных в приложении 1 регистров в стеке, записав соответствующие команды в виде ассемблерных.
1.2. Переслать в указанные из приложения 1 регистры заданные значения, записав соответствующие команды в виде ассемблерных.
1.3. Восстановить значения указанных в приложении 1 регистров.
1.4. Составить ассемблерную программу, объединив пункты 1, 2, 3.
1.5. Ввести программу в сегмент кодов со смещением 114h.
1.6. Просмотреть в сегменте кодов дамп вашей программы.
Выполнить программу, просмотрев содержимое стека после сохранения и восстановления информации, сохранить и распечатать ход выполнения задания.
2. Изучение работы команд Call и Ret.
2.1 Вызвать подпрограммы внутри данного сегмента и внутри подпрограммы, расположенные по относительным адресам, заданным в приложении 2, записав соответствующие команды в виде ассемблерных.
2.2 Написать подпрограмму, складывающую значения в регистрах из приложения 2. Значения переслать в регистры с помощью соответствующих ассемблерных команд. Сложение осуществляется командой ADD op1, op2.
2.3 Написать подпрограмму, вычитающую значения в регистрах из приложения 2. Значения переслать в регистры с помощью соответствующих ассемблерных команд. Вычитание осуществляется командой SUB op1,op2.
2.4 Ввести программу в сегмент кодов со смещение 100h.
2.5 Просмотреть содержимое стека после выполнения каждой из подпрограмм, сохранить и распечатать ход выполнения задания.
2.6 Составить ассемблерную программу и ввести программу в сегмент кодов со смещением 100h.
2.7 Посмотреть в сегменте кодов дамп программы.
2.8 Выполнить программу, просмотрев содержимое стека после вызова подпрограмм. Сохранить и распечатать результат работы.
Содержание отчета:
1. Цель работы.
2. ход выполнения работы:
- выполненное по пунктам каждое задание
Практическая работа № 5
Выполнение арифметических команд 1 часть и 2 часть.
Цель работы: изучить работу процессора при выполнении арифметических команд(сложение, вычитание, умножение, деление) для различных способов адресации операндов.
Задание:
Произвести запуск программы- отладчика Debug.
Выполнить арифметические команды.
1. Изучение работы команды сложения ADD над знаковыми и беззнаковыми операндами, адресованными разными способами.
1). Переслать в указанные из приложения 1 регистры заданные значения (1 и 2 слагаемое), записав соответствующие команды в виде ассемблерных.
2). Записать в указанную ячейку памяти (если необходимо) заданное в приложении 1 значение операнда.
3). Просмотреть в сегменте данных записанную информацию если один из операндов это ячейка памяти.
4). Получить сумму заданных операндов, записав соответствующую команду в виде ассемблерной.
5). Составить ассемблерную программу и ввести программу в сегмент кодов со смещением 100h.
6). Посмотреть в сегменте кодов дамп программы.
7). Выполнить программу, просмотрев результат в сегменте данных если это необходимо. Сохранить и распечатать результат работы.
2. Изучение работы команд вычитания SUB над знаковыми и беззнаковыми операндами, адресованными разными способами.
1). Переслать в указанные из приложения 1 регистры, заданные значения (1 и 2 уменьшаемое, вычитаемое), записав соответствующие команды в виде ассемблерных.
2). Записать в указанную ячейку памяти (если необходимо) заданное в приложении 1 значение операнда.
3). Просмотреть в сегменте данных записанную информацию, если один из операндов это ячейка памяти.
4). Получить разность заданных операндов, записав соответствующую команду в виде ассемблерной.
5). Составить ассемблерную программу и ввести программу в сегмент кодов со смещением 135h.
6). Посмотреть в сегменте кодов дамп программы.
7). Выполнить программу, просмотрев результат в сегменте данных, если это необходимо. Сохранить и распечатать результат работы.
3. Изучение работы команд умножения MUL и IMUL над знаковыми и беззнаковыми операндами, адресованными разными способами.
1). Переслать в указанные из приложения 1 регистры, заданные значения (1 и 2 множимое, множитель), записав соответствующие команды в виде ассемблерных.
2). Записать в указанную ячейку памяти (если необходимо) заданное в приложении 1 значение операнда.
3). Просмотреть в сегменте данных записанную информацию, если один из операндов это ячейка памяти.
4). Получить произведение заданных операндов, записав соответствующую команду в виде ассемблерной.
5). Составить ассемблерную программу и ввести программу в сегмент кодов со смещением 200h.
6). Посмотреть в сегменте кодов дамп программы.
7). Выполнить программу, просмотрев результат в сегменте данных, если это необходимо. Сохранить и распечатать результат работы.
4. Изучение работы команд умножения MUL и IMUL над знаковыми и беззнаковыми операндами, адресованными разными способами.
1). Переслать в указанные из приложения 1 регистры, заданные значения (1 и 2 делимое, делитель), записав соответствующие команды в виде ассемблерных.
2). Записать в указанную ячейку памяти (если необходимо) заданное в приложении 1 значение операнда.
3). Просмотреть в сегменте данных записанную информацию, если один из операндов это ячейка памяти.
4). Получить частное заданных операндов, записав соответствующую команду в виде ассемблерной.
5). Составить ассемблерную программу и ввести программу в сегмент кодов со смещением 110h.
6). Посмотреть в сегменте кодов дамп программы.
7). Выполнить программу, просмотрев результат в сегменте данных, если это необходимо. Сохранить и распечатать результат работы.
Контрольные вопросы:
1. Как представлены отрицательные числа в микропроцессоре?
2. О чём говорит состояние флага CF при сложении (вычитании) беззнаковых чисел?
3. О чём говорит состояние флага ОF при сложении (вычитании) беззнаковых чисел?
4. Какой делитель, кроме нуля, может часто вызывать прерывание и почему (исходя из того, что частное значительно меньше делимого)?
Содержание отчета:
1. Цель работы.
2. Ответы на контрольные вопросы.
3. Распечатка выполненного по пунктам каждого задания с содержимым регистров, флагов командной строки до и после выполнения команд.
4. Содержимое сегмента кодов и данных при работе с памятью.
Практическая работа № 6