
- •Раздел 1. Общие принципы построения эвм
- •Тема 1.1 История и тенденции развития вычислительной техники. Поколения эвм
- •Тема 1.2. Основные характеристики и классификация эвм
- •Тема 1.3. Архитектура эвм
- •Тема 1.4. Структурные схемы и взаимодействие устройств эвм
- •Тема 1.5. Структурная схема и устройства пк
- •Тема 1.6. Микросхемы системной логики Chipset
- •Тема 1.7. Представление информации в компьютере, единицы измерения информации
- •Раздел 2. Программное обеспечение эвм
- •Тема 2.1. Структура программного обеспечения пк
- •Тема 2.2. Операционные системы
- •Тема 2.3. Файл и файловая система
- •Тема 2.4. Функции и характеристики сетевых ос
- •Тема 2.5. Эволюция режимов работы эвм
- •Раздел 3. Структура базового микропроцессора эвм
- •Тема 3.1. Классификация микропроцессоров
- •1. По числу бис:
- •2. По назначению:
- •3. По виду обрабатываемых сигналов:
- •4. По количеству выполняемых программ:
- •5. По характеру временной организации работы:
- •6. По объему набора инструкций:
- •Тема 3.2. Основные характеристики микропроцессоров
- •1.Разрядность регистров микропроцессора;
- •2.Разрядность шины данных;
- •Тема 3.3. Архитектура микропроцессора
- •Тема 3.4. Структура базового микропроцессора
- •Тема 3.5. Блок внутренних регистров базового микропроцессора
- •Тема 3.6. Сегментные регистры, регистр указателя команд и регистры флагов
- •Тема 3.7. Назначение и классификация уу
- •Тема 3.8. Назначение и классификация алу
- •1. По способу представления чисел:
- •2. По способу действия над операндами:
- •3. По выполняемым функциям алу подразделяются на:
- •4. По структурной организации алу подразделяются на устройства, имеющие:
- •Тема 3.9. Исполнение программного кода
- •Тема 3.10. Сегментная структура программ
- •Раздел 4. Основы программирования на ассемблере
- •Тема 4.1. Этапы создания программы на ассемблере
- •Тема 4.2. Формат команд и их классификация
- •Тема 4.3. Классификация операндов
- •Тема 4.4. Виды команд ассемблера
- •Раздел 5. Защищенный режим работы микропроцессора
- •Тема 5.1. Режимы работы микропроцессора
- •Тема 5.2. Адресация памяти в защищенном режиме
- •Тема 5.3. Дескрипторы и таблицы
- •Тема 5.5. Архитектурные особенности современных микропроцессоров
- •Тема 5.4. Суперскалярная архитектура
- •Принципы построения устройств внутренней памяти
- •4.1. Структура памяти эвм
- •3.2 Представление данных в памяти
- •3.3 Типы данных
- •Тема 6.2. Режимы адресации данных памяти
- •8.1. Общие принципы организации вв
- •10.1. Локальная системная шина
- •10.2. Шина расширения
- •11.1. Способы организации доступа к системной магистрали
- •11.2. Возможные структуры систем пдп
- •6.1. Характеристики систем прерывания
- •6.2. Возможные структуры систем прерывания
- •6.3. Организация перехода к прерывающей программе
Раздел 4. Основы программирования на ассемблере
Тема 4.1. Этапы создания программы на ассемблере
Все языки программирования условно можно разделить на три уровня:
- машинный код;
- автокод (язык ассемблера);
- языки высокого уровня (процедурные языки - BASIC, FORTRAN, PASCAL, C, MODULA-2, ADA; и языки искусственного интеллекта - LISP, PROLOG, SMALLTALK, OCCAM).
Ассемблер (от англ. assemble — собирать) — компилятор с языка ассемблера в команды машинного языка. Язык ассемблера (автокод) — язык программирования низкого уровня. В отличие от языка машинных кодов, позволяет использовать более удобные для человека мнемонические (символьные) обозначения команд. При этом для перевода программы с языка ассемблера в понимаемый процессором машинный код требуется специальная программа, называемая ассемблером.
Команды языка ассемблера один к одному соответствуют командам процессора, фактически, они представляют собой более удобную для человека символьную форму записи (мнемокод) команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько команд процессора.
Программа, написанная в командах ассемблера, называется исходной программой, а ее преобразованный в коды процессора вид именуется объектной программой. Таким образом, функцией ассемблера является преобразование исходной программы, доступной восприятию человеком, в объектную программу, понятную процессору.
Операционная система при выполнении может разместить программу в любом подходящем месте памяти и освобождает разработчика от необходимости думать, куда ее поместить. Но чтобы этим воспользоваться, надо преобразовать оттранслированную программу в вид, позволяющий ее перемещение. Такие программы называются перемещаемыми. Они создаются с помощью компоновщика - программы LINK, которая обязательно входит в комплект поставки ассемблера.
Обычно объектным модулем называется файл, содержащий результат трансляции программы ассемблером. А файл, содержащий перемещаемую версию оттранслированной программы, называется исполняемым модулем. Таким образом, функцией компоновщика LINK является создание исполняемого модуля из объектного модуля.
Компоновщик необходим также при написании большой программы. Невозможно написать сложную программу как единое целое, поэтому такие программы пишут по частям, которые потом можно собрать вместе с помощью компоновщика. При этом можно использовать модули, написанные другими программистами, или ранее написанные и отлаженные модули. Если есть набор подходящих модулей, то разработка сложной программы может занять не так уж и много времени.
Компоновщик должен вызываться для любой написанной программы, даже если она состоит только из одного объектного модуля. Одномодульные программы компоновщик сразу преобразует в перемещаемый модуль. Если программа состоит из двух или большего количества модулей, то компоновщик сначала объединяет их, а затем преобразовывает результат в перемещаемый модуль.
На рис. 29 показаны этапы разработки программ с помощью ассемблера. В скобках для каждого модуля указаны расширения файлов, в которых модули сохраняются на диске.
Рис. 29 Этапы разработки программ на ассемблере