
- •8.Буферизация данных при обмене информацией между процессами
- •9.Логическая организация механизма передачи информации
- •10.Алгоритмы планирования (Дисциплины диспетчеризации)
- •11.Аппаратные средства поддержки многозадачности.
- •12.Связь прикладного процесса с ядром ос.
- •13.Процесс – интерпретатор команд.
- •14.Реализация процедуры диспетчера процессов.
- •15.Реализация вытесняющей многозадачности.
- •16.Реализация кооперативной многозадачности.
- •17.Реализация карусельной многозадачности.
- •18.Адресация операндов в машинных командах.
- •19.Машинная команда и ее формат.
- •20.Методы адресации памяти
- •21.Вызовы, возвраты и определение подпрограмм
- •22.Основные сведения об организации подпрограмм
- •23.Директивы определения данных.
- •24.Структура программы на ассемблере.
- •25.Процедура компиляции, компоновки и отладки программ.
- •26.Общие сведения о языке ассемблера
24.Структура программы на ассемблере.
1. Шапка программы.
В шапке указывается различная служебная информация для компилятора.
list - директива, которая имеет кучу опций и может быть использована для управления процессом ассемблирования.
__config значение - эта директива указывает значение слова конфигурации контроллера. Слово конфигурации определяет основные параметры контроллера
CBLOCK число - блок поименованных констант. Число - определяет константу, которой будет соответствовать первая запись
equ - эта директива сообщает компилятору, что запись, расположенная перед этой директивой соответствует числу, стоящему после этой директивы
2. Тело программы.
В теле программы пишутся те инструкции, которые будут исполняться контроллером, то есть это как раз и есть сама программа для контроллера. ORG число - эта директива как раз предназначена для компилятора. Тело программы также можно поделить на 2 части - инициализацию и, собственно, выполнение какой-то задачи.
25.Процедура компиляции, компоновки и отладки программ.
Компилятор - это программа, которая считывает текст программы из файла и преобразует его в последовательность команд на языке, понятном системе. Редактор связей соединяет программные модули и определяет способ загрузки полученной программы в память. Система создает окончательный исполняемый код программы в несколько этапов:
Если файл содержит исходный код на языке высокого уровня, компилятор преобразует его в объектный код.
Если файл содержит код на языке ассемблера, ассемблер преобразует его в объектный код.
Редактор связей связывает объектные файлы, созданные на предыдущем этапе, со всеми остальными объектными файлами, указанными в команде компилятора.
Исправление ошибок в программе
Операционная система снабжена следующими средствами отладки:
Символьный отладчик dbx позволяет отлаживать программы, написанные на языках C, Pascal, FORTRAN и ассемблер. Этот отладчик подробно описан в разделе Программа символьной отладки dbx - Обзор.
Отладчик adb Обзор программы отладки adb обеспечен средствами анализа, отладки и исправления исполняемых файлов, а также удобен для анализа файлов данных в более сложных форматах, чем ASCII.
Отладчик ядра - это специальная программа, предназначенная для поиска ошибок в ядре операционной системы. Обычно он применяется для отладки драйверов устройств.
Трассировщик служит для локализации неполадок в системе путем отслеживания определенных системных событий.
26.Общие сведения о языке ассемблера
Символический язык ассемблера позволяет в значительной степени устранить недостатки программирования на машинном языке.
С помощью языка ассемблера программист может задать следующие параметры:
мнемонику ( символическое имя ) каждой команды машинного языка микропроцессора;
стандартный формат для строк программы, описываемой на ассемблере;
формат для указания различных способов адресации и вариантов команд;
формат для указания символьных констант и констант целочисленного типа в различных системах счисления;
псевдокоманды, управляющие процессом ассемблирования (трансляции) программы.
Главным его достоинством является то, что на языке ассемблера все элементы программы представлены в символической форме. Преобразование символических имен команд в их двоичные коды возлагаются на специальную программу – ассемблер, которая освобождает программиста от трудоемкой работы и исключает неизбежные при этом ошибки.