- •Введение
- •1 Постановка задачи
- •1.1 Основная программа
- •1.2 Программа построение графика
- •2 Краткие теоретические сведения
- •2.1 Ассемблер, язык ассемблера
- •2.2 Ассемблеры для dos
- •3 Разработка алгоритма программы
- •3.1 Поэтапный алгоритм программы
- •3.2 Построение графика
- •4 Разработка программы
- •4.1 Описание команд микропроцессора
- •4.1.1 Команды пересылки и загрузки
- •4.1.2 Арифметические команды
- •4.1.3 Циклический сдвиг
- •4.1.4 Циклы
- •4.1.5 Синтаксис процедуры
- •4.1.6 Операции над битами и байтами
- •4.1.7 Команда сравнения и условного перехода
- •4.1.8 Префиксы
- •4.2 Регистры общего назначения
- •4.2.1 Индексные регистры
- •4.2.2 Сегментные регистры
- •4.4 Описание используемых функций
- •4.5.4 Процедура поиска нулевой строки
- •4.5.5 Процедура записи в файл “My.Dat”
- •4.5.6 Процедура создания и записи канального файла
- •4.5.7 Завершение программы
- •4.6 Описание программы разработанной на языке c#
- •5 Результат выполнения программы
- •5.3 Карта памяти
- •5.4 График
- •Заключение
- •Список используемых источников
- •Приложение 1 - Код основной программы
- •Приложение 2 – Код программы построения графика
3.2 Построение графика
Программа построения графика написана на языке C# в Windows Forms. Программа считывает из файла RESULT.DAT по 1 байту, откладывая на оси y его значения. В ось x входит интервал значений от 1 до 160 (RESULT.DAT состоит из 160 байт).
4 Разработка программы
Данный курсовой проект включает в себя разработку программы, которая преобразовывает информация, заданную в дампе памяти, в канальный файл с использованием системы команд МП i486. В качестве исходных данных необходимо использовать данные дампа памяти сведенные в файле UK64.dat. Каждый дамп отделяется от предыдущего строкой, состоящей из 16-ти нулевых байт. В соответствии с индивидуальным заданием на курсовой проект использовать для каждого варианта соответствующие байты и, выделяемые из них, биты.
После того как будет найден нужный дамп памяти, он записывается в файл my.dat. Из файла my.dat формируются слова, которые сохраняются в файл result.dat. В итоге должен получиться канальный файл result.dat с формированными в нем словами, а также графическое представление этого файла.
4.1 Описание команд микропроцессора
4.1.1 Команды пересылки и загрузки
MOV (MOVe operand)
Команда mov применяется для различного рода пересылок данных, при этом, несмотря на всю простоту этого действия, необходимо помнить о некоторых ограничениях и особенностях выполнения данной операции: направление пересылки в команде mov всегда справа налево, то есть из второго операнда в первый;
значение второго операнда не изменяется;
оба операнда не могут быть из памяти (при необходимости можно использовать цепочечную команду movs); лишь один из операндов может быть сегментным регистром; желательно использовать в качестве одного из операндов регистр AL/AX/EAX, так как в этом случае TASM генерирует более быструю форму команды mov.
LEA (Load Effective Address)
Данная команда является альтернативой оператору ассемблера offset. В отличие от offset команда lea допускает индексацию операнда, что позволяет более гибко организовать адресацию операндов.
POP (POP operand from the stack)
Команда применяется для восстановления содержимого вершины стека в регистр, ячейку памяти или сегментный регистр. Заметим, что недопустимо восстановление значения в сегментный регистр CS.
PUSH (PUSH operand onto stack)
Команда push используется совместно с командой pop для записи значений в стек и извлечения их из стека. Размер записываемых значений — слово или двойное слово. Также в стек можно записывать непосредственные значения. Заметьте, что в отличие от команды pop в стек можно включать значение сегментного регистра CS. Другой интересный момент связан с регистром SP. Команда push ESP/SP записывает в стек значение ESP/SP по состоянию до выдачи этой команды. В микропроцессоре i8086 по этой команде записывалось скорректированное значение SP. При записи в стек 8-битных значений для них все равно выделяется слово или двойное слово (в зависимости от use16 или use32).