Команда процессора состоит из кода операции и одного или нескольких операндов (объектов, над которыми выполняется операция). В зависимости от числа операндов, команды делятся на безадресные(не имеющие операндов или имеющие неявно указанные), одноадресные (производящие действие над одним объектом или одним явно и несколькими неявно указанными), двух- и трехадресные. Встречаются архитектуры, у которых есть команды и с большим числом операндов, но это чрезвычайно редко. Операнды располагаются по адресам оперативной памяти, а также в регистрах.
Регистры.
Все процессоры имеют как минимум 6 системных регистров: для адреса текущей команды (счетчик команд), регистр флагов, где хранятся коды арифметических условий и, кроме того, много другой служебной информации (слово состояния процессора), три буферных регистр АЛУ и буферный регистр, в котором хранится текущая команда.
Программисту доступны только счетчик команд и слово состояния процессора. Регистры, доступные программисту для хранения данных, называются регистрами общего назначения. У современного процессора количество регистров общего назначения измеряется сотнями и даже тысячами. При наличии большого количества регистров существует два подхода к их выбору:
Почему на экранах телефона появляется это?
- каждый код операции работает только со своим регистром
- ортогональная система – все команды могут работать с любыми регистрами
Использование регистров в машинных командах в качестве операндов позволяет значительно ускорить процесс обработки.
Адреса памяти.
С точки зрения процессора, оперативная память представляет собой массив пронумерованных ячеек. Разрядность адреса является важной характеристикой процессора, определяя объем адресуемой памяти. Различают физическуюадресацию — нумерация ячеек памяти фиксированная, одна и та же ячейка всегда имеет один и тот же номер. Адрес при этом разбит на битовые поля, которые непосредственно используются в качестве номера физической микросхемы памяти, и номеров строки и столбца в этой микросхеме. Напротив, большинство современных процессоров общего назначения используют виртуальную адресацию, когда номер конкретной ячейки определяется не физическим размещением этой ячейки, а контекстом, в котором происходит адресация.
В современных компьютерах единицей адресации оперативной памяти является байт.
Операнды команд могут быть как регистрами, так и ячейками памяти. Некоторые архитектуры допускают произвольное сочетание регистров и ячеек в одной команде (PDP-11, VAX). В других архитектурах, например, х86 и МС680х0 только один операнд может размещаться в памяти, а второй всегда обязан быть регистром. У RISC-процессоров арифметические операции разрешены только над регистрами, а для обращений к памяти выделены специальные команды.
В зависимости от подхода, применяемого в конкретной системе команд , архитектуры подразделяются на память-память, регистр-память, регистр-регистр (SS, RR, RS).
| Код операции | Память (S) | Память (S) |
В чём разница между GPT и MBR? | Что лучше gpt или mbr?
| Код операции | Регистр (R) | Память (S) |
| Код операции | Регистр (R) | Регистр (R) |
Совершенно неверно, что единственным способом указания адреса операнда в памяти является помещение этого адреса в адресное поле команды. В зависимости от режима адресации, адрес операнда может вычисляться различными, иногда довольно сложными способами, с учетом значений одного или нескольких регистров, как с использованием адресного поля, так и без него.
Режимы адресации
Большинство современных процессоров поддерживают многочисленные режимы адресации.
- Абсолютная адресация.Поле команды непосредственно содержит номер целевой ячейки памяти. Таким способом производится обращение к объектам с постоянными адресами (статическим и внешним переменным, точкам входа подпрограмм).
- Косвенно-регистровый режим. Адресное поле не используется; значение регистра интерпретируется как адрес операнда. Используется в стеках. Стек – это структура данных, над которой можно осуществлять две операции – проталкивание (push)значения и выталкивание (pop) в порядке, обратном тому, в котором значения проталкивались.
- Косвенно-регистровый со смещением (базовая адресация, индексная адресация). Адрес операнда образуется сложением регистра и адресного поля команды. Используется при адресации массивов, стеков и пр.
- Базово-индексный режим.Адрес операнда образуется сложением двух или, реже, большего количества регистров, возможно, еще и адресного смещения.
- Адресация с использованием счетчика команд. Использование счетчика команд в косвенно –регистровом режиме со смещением позволяет адресовать код и данные относительно адреса текущей команды. Программный модуль, в котором используется только такая адресация (относительная) позиционно-независим, его можно перемещать по памяти , и он даже не заметит факта перемещения (почти такого же эффекта можно достичь и базовой адресацией).
- Сложные режимы адресации – комбинации различных режимов.
Можно дать следующее определение программы с точки зрения компьютера.
Программа – это результат компиляции исходного текста программы, структура загрузочного модуля создается компилятором.
Пример структуры загрузочного модуля (упрощенный вариант раннего Unix):
- «Магическое число» — признак, что это именно загрузочный модуль
- Text_size – длина области кода программы
- Data_size – длина области инициализированных данных программы
- Bss_size длина области неинициализированных данных программы
- Start – стартовый адрес программы
Загрузка программ
Рассмотрим процедуру загрузки программы в оперативную память компьютера. Предположим, что программа была заранее собрана в некий единый самодостаточный объект, называемый загрузочным или загружаемым модулем. В ряде ОС программа собирается в момент загрузки из большого числа отдельных модулей, содержащих ссылки друг на друга.
Результат загрузки программы в память называется процессом или, если нам надо отличать загруженную программу от процесса её исполнения, образом процесса. К образу процесса иногда причисляют не только код и данные процесса (подвергнутые преобразованию, как в процессе загрузки, так и в процессе работы программы), но и системные структуры данных, связанные с этим процессом. В системах с виртуальной памятью каждому процессу обычно выделяется свое адресное пространство. Впрочем, во многих системах значительная часть адресных пространств разных процессов перекрывается – это используется для реализации разделяемого кода и данных.
В рамках одного процесса может исполняться один или несколько потоков или нитей управления.
Некоторые системы предоставляют и более крупные структурные единицы, чем процесс. Например, в системах семейства Unix существуют группы процессов, которые используются для реализации логического объединения процессов в задания (job).Ряд систем имеют также понятие сессии- совокупности всех заданий, который пользователь запустил в рамках одного сеанса работы. Впрочем, соответствующие концепции часто плохо определены, а их смысл сильно меняется от одной ОС к другой.
Дата добавления: 2016-06-05 ; просмотров: 1931 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник: poznayka.org
1. Объектный модуль.
Объектный модуль — это есть машинно-ориентированное представление программы, в котором присутствуют фрагменты программы в машинном коде, а также информация о необходимых внешних связях (ссылки на объекты в других модулях). Информация о необходимых внешних связях (помимо информации о местонахождении внешних объектов) также включает в себя ссылки на те места машинного кода, которые пытаются использовать адреса внешних объектов, т.е. на те недообработанные команды, которые нельзя обработать из-за того, что при трансляции модуля еще не известно где какие объекты находятся.
Т.е. объектный модуль — это машинное представление программного кода, в котором еще не разрешены внешние связи. Объектный модуль может содержать дополнительную информацию (например, информацию, необходимую для отладки — таблицы имен и т.д.). Для каждого из исходных модулей мы получим объектный модуль.
После этого все объектные модули, которые составляют нашу программу, а также модули требуемых библиотек функций, поступают на вход редактору внешних связей. Редактор внешних связей моделирует размещение объектных модулей в оперативной памяти и разрешает все связи между ними. В итоге мы получаем исполняемый модуль, который может быть запущен как процесс. Иногда трансляторы в качестве результата трансляции выдают модуль на ассемблере соответствующей машины.
2. Клавиатура в Windows.
1. Загрузочный модуль.
загрузочный модуль – это команды, непосредственно выполняемые компьютером. Исходный код программы, состоящий из команд языка программирования высокого уровня, транслируется компилятором в объектный код, «понятный» компьютеру. Затем модуль объектного кода посредством редактора объединяется с другими модулями, после чего создается загрузочный модуль. Загрузочный модуль содержит команды в машинных кодах, которые и выполняет компьютер. Компилятор – это системная программа, которая воспринимает на входе текст программы а языке высокого уровня (исходный модуль), а на выходе генерирует программу на языке ассемблера или машинном языке (объектный модуль). Объектный модуль состоит
из двух основных частей: тела модуля, представляющего собой программу в кодах команд
конкретной ЭВМ, и заголовка, содержащего внешние имена (имена переменных, используемых
в данном модуле, но определённых в других модулях). Эта информация необходима
для построения из набора объектных модулей программы или программной системы,
готовой к выполнению. Объектные модули обрабатываются компоновщиком (редактором
связей), который строит исполняемую программу (исполняемый файл, exe-модуль,
загрузочный модуль) содержащую только команды ЭВМ.
2. Управление «мышью» в ПК.
1. Перемещаемая объектная программа.
Трансляторы бывают двух типов: компиляторы (compiler) и интерпретаторы (interpreter). Процесс компиляции состоит из двух частей: анализа (analysis) и синтеза (synthesis). Анализирующая часть компилятора разбивает исходную программу на составляющие ее элементы (конструкции языка) и создает промежуточное представление исходной программы.
Синтезирующая часть из промежуточного представления создает новую программу, которую компьютер в состоянии понять. Такая программа называется объектной программой. Объектная программа может в дальнейшем выполняться без перетрансляции. В качестве промежуточного представления обычно используются деревья, в частности, так называемые деревья разбора. Под деревом разбора понимается дерево, каждый узел которого соответствует некоторой операции, а сыновья этого узла – операндам.
Источник: studfile.net
Большая Энциклопедия Нефти и Газа
Загрузочные модули программы , которые выполняются крайне редко или требуют отладки, размещаются во временной библиотеке загрузочных модулей. Ее наличие не является обязательным. Она вводится для того, чтобы не перегружать постоянную библиотеку загрузочных модулей во время длительного функционирования системы. Формат обеих библиотек одинаковый. [1]
Загрузочный модуль программы , полученный после трансляции, может загружаться в ОЗУ или ППЗУ микропроцессорной системы, а также в файл, используемый программой моделирования работы МП. [3]
Требуется создать загрузочный модуль программы , сохранить его в разделе UPDAT файла типа LOADLIB с именем CORRECT и выполнить. При выполнении программы прерывания по исчезновению порядка игнорируются. [4]
Библиотека LEMON загрузочных модулей программ системы занимает 300 треков для ЕС-5050, 150 треков для ЕС-5061, 90 треков для ЕС-5066. В ней выделяется 10 блоков для оглавления. [5]
Библиотека, предназначенная для хранения загрузочных модулей программ сортировки-объединения . [6]
Динамическую параллельную структуру имеет смысл создавать, если загрузочные модули программы имеют периоды ожидания. [7]
Соглашение, которому следуют МР — и BMP-программы в среде DB / DC, заключается в том, что имена загрузочного модуля программы и PSB должны совпадать. [9]
Другой способ установки признака виртуальной задачи заключается в непосредственной записи единицы в 10 — й разряд 44 — й ячейки загрузочного модуля программы , хранящегося на магнитном диске. [10]
Транслятор создает перемещаемый объектный модуль и файл распечатки, содержащий листинг программы и таблицу символов. Компоновщик объединяет отдельно оттранслированные объектные модули в загрузочный модуль программы . Объектные модули перемещаются в зависимости от базы размещения, определяемой для модуля. [11]
Трансляция программ осуществляется за два прохода или за два шага. При втором проходе считываются промежуточные файлы и формируется загрузочный модуль программы пользователя . [12]
Сопровождение отладки — это комплекс методов и средств, направленных на обеспечение контроля за состоянием разработки программных компонент в процессе их отладки. Для этого конт ролируются вносимые изменения, обеспечивается идентичность символических и загрузочных модулей программ , определяется фактический состав томов библиотек в любой момент разработки. [13]
В процессе эксплуатации и сопровождения готовые прикладные программы должны занимать мало места на внешних запоминающих устройствах. При эксплуатации прикладных систем, написанных на Фортране, необходимо одновременно хранить исходные тексты и загрузочные модули программ , а также библиотеки прикладных подпрограмм в исходном и объектном виде. Каждый из загрузочных модулей содержит в себе отдельную копию исполняющих и прикладных подпрограмм. [14]
Библиотеки загрузочных модулей заполняются после компиляции и редактирования соответствующих исходных модулей. Причем, если на конкретных ЭВМ ЕС пользователю доступна малая область оперативной памяти, можно организовать загрузочный модуль оверлейной структуры. Например, загрузочный модуль программы ROOA21 простой структуры занимает 120К байт оперативной памяти ЭВМ. [15]
Источник: www.ngpedia.ru