Практическая работа 2. Тема Регистры и оперативная память процессора. Сегмент кода. Команды в сегменте команд. Выполнение программ. Данные в сегментах данных
Скачать 48.63 Kb.
|
Практическая работа №2. Тема: Регистры и оперативная память процессора. Сегмент кода. Команды в сегменте команд. Выполнение программ. Данные в сегментах данных.Цель работы: ввод непосредственных данных в регистры и в память просмотр данных, команд в памяти. Выполнение пошаговой трассировки программы. Определение данных в сегменте памятиХод работы:Представим, как выглядит программа в машинных кодах в памяти и результаты ее выполнения. У нас есть оперативная память, в которую загружается программа перед ее выполнением (сразу же по нажатию на Enter из Norton Commander). Операционная система, которая, собственно, и загружает программу, сообщает процессору, что надо начать обрабатывать команды, которые в памяти начинаются с такого-то адреса. Начало программы в памяти процессор различает легко - ему указывает на это командный интерпретатор, а вот конец программы программист должен указывать сам! Компьютер "распознает" как выход из программы специальную последовательность байтов. Например, для исполнимых файлов типа *.com достаточно последовательности CD и 20. Дана программа смотреть приложение, ввести её в программе Debug, с помощью команды А, вывести в машинных кодах при помощи команды U, записать полученное с самостоятельными комментариями Рисунок 1 - Определите размеры команд в байтах:
Ввести программу в машинных кодах с помощью команды Е (enter): смотреть приложение Рисунок 2 - 4. Вывести все регистры: Рисунок 3 - 5. Рисунок 4 - Вместо шестнадцатеричных кодов мы легко могли вводит ь эти команды при помощи команды "A" (assemble). Для просмотра программы в сегменте кодов выполнить команду просмотра памяти: Рисунок 5 - Выполнил команду просмотра памяти Введите программу в Ассемблере и напишите комментарий: _A 100 mov ax, i1 ; mov bx, i2 ; add ax, i2 ; div bx ; ret где: вместо i1 ввести сегодняшнее число, а i2 - месяц. Выведите на экран содержимое всех регистров и следующую по порядку команду, запишите их: Выполните трассировку с помощью команды: -t Укажите все результаты выполнения программы при выполнении трассировки и определите размеры команд в байтах: Чему равен результат операции? ___________________ В каком регистре он находится? ____________________ Опишите работу команды деления. Какие способы адресации она использует? Где находятся операнды и результаты операции? Вывод: ______________________________________________________________________ ______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ |