![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Использование эмулятора Emu8086Стр 1 из 2Следующая ⇒
Факультет Вычислительной техники, Информатики и Микроэлектроники. Кафедра Микроэлектроники и Биомедицинской Инжинерии
Отчет По дисциплине: Архитектура компьютеров. Лабараторная №2
Тема: Ознакомление с emu8086 и языком assembler.
Выполнил: ст.гр.MN-132 Хорозов А. И.
Проверил: Крецу. В.Ю
Кишинев 2014
Цель работы: Изучить эмулятор emu8086 и понять программу, написанную на языке assembler. Теоретические сведения: Программный эмулятор (виртуальный ПК) Emu8086 Emu8086 сочетает в себе мощный редактор исходного кода, ассемблер, дизассемблер, программный эмулятор (виртуальный ПК) с отладчиком и поэтапное обучение. Визуальный интерфейс очень прост в работе. Вы можете наблюдать регистры, флаги и память во время выполнения вашей программы. Арифметико-логическое устройство (АЛУ) показывает внутреннюю работу центрального процессора (CPU). Эмулятор выполняет программы на виртуальном ПК, который полностью исключает возможность доступа из вашей программы к реальным аппаратным средствам, таким как жесткие диски и память. Машинный код 8086 полностью совместим со всеми последовавшими за ним поколениями микропроцессоров Intel, включая Pentium II и Pentium 4.
Использование эмулятора Emu8086 Напечатайте ваш код внутри текстовой области, и после щелчка кнопки [Compile]. Вас спросят о месте, где сохранить компилируемый файл. После успешной компиляции Вы можете щелкать кнопку [Emulate], чтобы загрузить компилируемый файл в эмуляторе.
2) произвести исследование области памяти
В памяти перечисляют первую строку - смещение, вторая строка - значение hexadecimal, третья строка - десятичное значение, и последняя строка - значение символа ASCII. Кнопка [Single Step] выполняет команды, один за другим останавливающие после каждой команды. [Run] кнопка выполняет команды один за другим с задержкой, установленной задержкой шага между командами. Дважды щелкните на текстовых полях регистра, открывается окно " Extended Viewer " со значением того регистра, преобразованного ко всем возможным формам. Вы можете изменять значение регистра непосредственно в этом окне. Дважды щелкните на элементе списка памяти, открывается " Extended Viewer" со значением WORD, загруженным со списка памяти в выбранном местоположении. Менее существенный байт - в младшем адресе: LOW BYTE загружен от выбранной позиции и HIGH BYTE от следующего адреса памяти. Вы можете изменять значение слова памяти непосредственно в окне " Extended Viewer", Вы можете изменять значения регистров во времени выполнения, печатая по существующим значениям. Кнопка [Flags] позволяет Вам рассматривать и изменять флажки на времени выполнения.
Директивы, определяющие тип исполнимого файла: #MAKE_COM# #MAKE_BIN# #MAKE_BOOT# #MAKE_EXE# Вы можете вставить эти директивы в исходный код для определения нужного вам типа исполнимого файла. В том случае, если компилятор не найдет ни одной из этих директив, он спросит у вас тип файла перед его созданием.
Описание типов исполнимых файлов:
#MAKE_COM# - самый старый и самый простой формат исполнимого файла. Такие файлы загружаются с префиксом 100h (256 байтов). Выберите СОМ Template из меню New, если вы планируете компилировать COM-файл. Директива компилятора ORG 100h должна быть добавлена перед кодом. Выполнение всегда начинается с первого байта файла. Поддерживается командной строкой DOS и Windows. #MAKE_EXE# - более " продвинутый" формат исполнимого файла. Не ограничены размер и количество сегментов. Сегмент стека должен быть определен в программе. Вы можете выбрать EXE Template из меню New для создания простой ЕХЕ-программы с определенными сегментмами Данных, Стека и Кода. Точка входа (где начинается выполнение) определяется программистом. Поддерживается командной строкой DOS и Windows. #MAKE_BIN# - простой исполнимый файл. Вы можете определить значения всех регистров, сегмент и смещение для области памяти, куда этот файл будет загружен. Если загрузить файл " MY. BIN" в эмулятор, он будет виден для файла - " MY. BINF" и загрузится файл " MY. BIN" в местоположение, определенное в файле " MY. BINF". Регистры также установятся с учетом информации из этого файла (откройте этот файл в редакторе для изменения или изучения). В том случае, если эмулятор не найдет файл " MY. BINF", будет использоваться текущие значения регистров и файл " MY. BIN" загрузится в текущий CS: IP. Выполнение начинается со значения в CS: IP. Этот тип файла уникален для Emu8086. Файл ". BINF создается автоматически компилятором, если он находит директиву #MAKE_BIN#. ПРЕДУПРЕЖДЕНИЕ! если файл ". binf" существует, то он будет перезаписан! #MAKE_BOOT# - эта директива копирует первую дорожку дискеты (загрузочный сектор). Вы можете записать загрузочный сектор виртуального дисковода (FLOPPY_0) через меню эмулятора: [Virtual Drive] - > [Write 512 bytes at 7C00 to Boot Sector] Сначала вы должны откомпилировать ". boot" -файл, а затем загрузить его в эмулятор (см. " micro-os_loader. asm" и " micro-os_kernel. asm" в разделе " Samples"). Затем выберите в меню [Virtual Drive] - > [Boot from Floppy], чтобы загрузить эмулятор с виртуального дисковода.
При сохранении компилируемого файла, компилятор также сохраняет 2 других файла, которые используются эмулятором для отображения фактического исходного кода при его исполнении и выборе соответствующей строки. asm - этот файл содержит оригинальный исходный код, который был использован для создания исполнимого файла. debug - этот файл содержит информацию, которая позволяет эмулятору выбирать строки оригинального исходного кода во время выполнения машинного кода. symbol - Таблица символов. Она содержит информацию, которая позволяет отображать окно " Variables" (Переменные). Это текстовый файл, так что вы можете посмотреть его из текстового редактора. binf - этот файл содержит информацию, которая используется эмулятором для загрузки BIN-файла в указанное местоположение, и установки значений регистров предшествующих выполнению (создается только в том случае, если исполнимый файл - это BIN-файл).
Редактор исходного кода Горячие клавиши редактора:
|