Скачать 265.18 Kb.
|
Федеральное агентство по образованию РФ ГОУ ВПО ИжГТУ Кафедра ВТ Пояснительная записка к курсовому проекту “Проектирование компилятора”по дисциплине “Системное программное обеспечение” Выполнил: ст. гр. 6-78-X Проверил преподаватель: Ижевск, 2010 Содержание:“Проектирование компилятора” 1 Содержание: 3 П1). Введение 4 П2). Расчет варианта задания 4 П3). Разработка контрольного примера 5 П4). Описание используемых директив и команд ассемблера и способов адресации 6 Описание приведено для 16 разрядного ассемблера и работы только со словом (2 байта). 6 П5). Выбор варианта построения ассемблера, описание алгоритмов и таблиц 8 П6). Объектный код откомпилированного примера и его расшифровка 14 П7). Заключение 15 Приложение: Исходные текст компилятора с подробными комментариями 16 Приложение: Графическая оболочка программы - компилятора: 28 Литература 29 П1). ВведениеВ данной курсовой работе предусматривается разработка усеченной версии компилятора языка ассемблера для ЭВМ на базе микропроцессоров INTEL. Разработка преследует следующие цели: 1). Закрепление теоретических знаний, полученных на лекциях дисциплины ”Системное программное обеспечение ЭВМ” по теме “Ассемблеры”; 2).^ . Объектный файл должен впоследствии восприниматься линковщиком и преобразовываться в исполняемый файл (COM или EXE). Данная цель включает подцели: а) изучение дополнительного материала по архитектуре микропроцессоров INTEL, а именно изучение системы команд микропроцессора, форматов машинных команд и способов адресации; б) изучение форматов объектных программ и загрузочных модулей. ![]() П2). Расчет варианта задания![]() П3). Разработка контрольного примераАлгоритм контрольного примера: Жирным шрифтом выделены команды из базового набора. Исходные данные - фиксированный массив целых чисел типа word (2 байта). 1). Найти в массиве слово с нулевым младшим полубайтом, если не найдено то выйти из программы: Считывание и пересылка слов массива в регистр АХ происходит с помощью цепочечной команды lodsw, загрузка адреса массива с помощью si. Команда jmp - команда безусловного перехода применена если поиск неуспешный. Поиск нулевых битов осуществлен с помощью команды test, контроль над окончанием и поиском в массиве осуществлен в команде loopne (аналогично loopnz) 2). В данном слове все нули слева заменить на единицы справа (Пример: 0F00h => F00Fh, 0700h => E01Fh ): Побитовая перестановка осуществлена с помощью операции циклического сдвига rcl и команды установки флага CF в единицу stc. 3). Выйти из программы. Код контрольного примера: masm model small .stack 256 .486 .data intarr dw 0F0Fh dw 0FFFh dw 000Fh dw 0700h .code main: ;подключение сегмента данных mov ax,@data mov ds,ax ;обрабатываемый массив целых чисел lea si,intarr mov cx,0004h ;нахождение слова с нулевым младшим полу-байтом (млад. 4 бита =0000) ; или выход по последнему слову cicle: lodsw test ax,000Fh loopne cicle ;если слово - последнее и без нулевого млад. полубайта то выйти: test ax,000Fh jz mnoexit jmp mexit mnoexit: ;превратить нули слева в единицы справа при сдвиге влево ;проверка -есть ли нули в начале слова: test ax,8000h jnz dontrcl ;осуществить сдвиг, записать единицу справа и проверить левый бит на 0: dorcl: stc rcl ax,01h test ax,8000h jz dorcl dontrcl: ;выход mexit: mov ax,4c00h int 21h end main |
![]() | ![]() | Вычислительная система цифровой обработки сигналов в реальном времени пояснительная записка | |
![]() | Вычислительная система цифровой обработки сигналов в реальном времени пояснительная записка | ![]() | Вычислительная система цифровой обработки сигналов в реальном времени пояснительная записка |
![]() | ![]() | Цель данного курсового проекта заключается в проектировании препроцессора, предназначенного для аппаратной реализации различных функций... | |
![]() | Цель данного курсового проекта заключается в проектировании препроцессора, предназначенного для аппаратной реализации различных функций... | ![]() | Стивен Смит. Научно-техническое руководство по цифровой обработке сигналов [Электронный ресурс] / Пер с англ фирмы «Автэкс». – С-пб,... |
![]() | Их производительность и объем памяти вполне достаточны для решения множества бытовых и промышленных задач, а архитектура ядер многих... | ![]() | Главный упор делается на использование ортогональных преобразований в задаче нахождения всех собственных числе (в том числе кратных... |