Реферат: Системное программирование

  Лекция 1

  Литература:

    1. ДжорданСправочник программиста персональных компьютеров

    2. Нортон  Архитектура персональных компьютеров фирмыIBM

    3. Бэк    Введение в системное программирование

     Курс по СПвключает: лекции — 34 часа;

                          лабораторные работы — 32часа;

                         курсовую работу;

                         зачет и экзамен.

                                Основныепонятия

     Курс лекцийсостоит из двух разделов:  прктичского итеоретическо-

го. В  практическойчасти рассмотрим вопросы построения системных прог-

рамм, управляющих устройствами ПК.  В теор. части  рассмотрим  вопросы

построения компиляторов, трансляторов, ОС, СУБД и т.д.

     К СП относитсята область программирования,  котораясвязана с уп-

равлением техническими средствами ПК и организацией работы программных

систем. Отличие СП от прикладного- это  машинная зависимость  первого,

так как системные  программы тесно связаныс архитектурой и структурой

компьютера, для которого они созданы.  Например, АССЕМБЛЕР при переводе

команд в машинные коды должен учитывать способыадресации,  форматы ко-

манд, длину регистров и другие аппаратные характеристикиконкретной ма-

шины. Компиляторы также учитывают характеристикиаппаратуры при генера-

ции кодов. ОС непосредственно управляют всеми ресурсамикомпьютера.

     К задачам СПотносятся разработка:

     1. системассемблирования;

     2. загрузчикови программ связывания;

     3.макропроцессоров;

     4.Компиляторов;

     5. операционныхсистем;

     6. драйверов.

     Системаассемблирования переводит исходный файл с командами в заг-

рузочный. Загрузчик записывает объектную программу воперативную память

и передает управление на адрес начала ее исполнения-  это абс.  загр.

Загрузчик обеспечивающий перемещение  программы в любуюобласть памяти

называется перемещаемый. Программы связывания осуществляют связь между

логически связанными программами,  которые  отдельно ассемблируются и

загружаются (это обычно подпрограммы).  Макропроцессоры позволяют часто

повторяющиеся группы заменять одной макроинструкцией. ОС осуществляет

интерфейс с пользователем. Драйверы управляют работойпереферийных уст-

ройств.

     АРХИТЕКТУРАТЕХНИЧЕСКИХ СРЕДСТВ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ

                    1. Общее описание

       Центромвычислительной системы является ее процессор. Именно он

  выполняеткоманды,  составляющие компьютернуюпрограмму. Микропроцес-

  сор,использованный в IBM/PC, был разработан и создан фирмой «Интел».

       В IBM/PC используетсямикропроцессор 8088,  80286,  80386, 80486

  фирмы«Интел», Лишь немногие компоненты IBM/PC были специально разра-

  ботаны длянее,  — большая часть системы  составлена из  стандартных

  компонентов.Особенность персонального компьютера фирмы «IBM» состоит

  в оригинальномспособе организации  известных  компонентов в  единую

  функционирующуюсистему.

       СоставляющиеIBM/PC можно рассматривать с трех различных  точек

  зрения: по томугде они размещаются, как они функционируют, и как они

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

                                     — 2 -

  взаимодействуютдруг с другом.  Рассмотрим  вопрос пространственного

  размещения этихсоставляющих.

       Физическисоставляющие IBM/PC можно разделить на компоненты сис-

  темного блока икомпоненты блока расширения. Все основные платы, вхо-

  дящие в составлюбой модели IBM/PC,  размещаются вбольшом блоке, по-

  лучившем названиесистемного. Системный блок включает все необходимые

  компоненты,  позволяющие компьютеру работать безкаких-либо  дополне-

  ний. Здесь находятся микропроцессор, первые64К памяти и «встроенные»

  программы, такиекак интерпретатор языка Бейсик, записанный в микрос-

  хемах ПЗУ.

       Системныйблок расположен в основании IBM/PC и заключен в  кор-

  пус.  Системный блок имеет пять свободных разъемов, предназначенных

  для подключениядополнительного оборудования, которое может быть вве-

  дено в составкомпьютера. Блоки расширения вставляются в эти разъемы,

  располагаясь надсистемным блоком.

       Блокирасширения  или карты,  как их иногда называют — могут ис-

  пользоваться дляобслуживания устройств,  подключаемых кIBM/PC.  Они

  могут  использоваться для двух основных целей:  для увеличения объема

  памяти иподключения дополнительных устройств.

       Системныйблок разработан фирмой «IBM», а блоки расширения могут

  разрабатывать всежелающие,  при условии что они будутсоблюдать  ос-

  новныеправила,  касающиеся размеров,электрических параметров соеди-

  нений, тепловогорежима и так далее.

       Любыедополнительные  устройства подключаются кIBM/PC с помощью

  одного изразъемов расширения,  каждый из которыхимеет  62 соедини-

  тельных провода.Эти 62 линии позволяют передавать все сигналы, необ-

  ходимые дляуправления любым оборудованием,  котороеможет быть подк-

  лючено кIBM/PC.  Все линии работаютпараллельно,  так что устройства

  можно подключатьк любому из пяти разъемов.  Любой сигнал,посылаемый

  одному из блоковрасширения,  передается и всемостальным,  поскольку

  они подключены кпараллельным линиям.  Здесь имеет  место расширение

  идеи общей шиныданных: все блоки расширения используют общее 62-про-

  водноесоединение. называемое каналом ввода/вывода.

       Похарактеру  использования  все линии можно разделить на четыре

  категории. Во-первых,восемь линий используются для подвода питания к

  блокам расширенияс различными номиналами напряжений.

       Далее, ещевосемь линий используется  для  передачи восьми  бит

  данных на/с шиныданных. Все данные проходят по этой шине, независимо

  от направления передачи.

       Еще двадцатьлиний предназначены для адресации. При работе с па-

  мятьюиспользуются все 20 линий,  это позволяетпередать адрес  одной

  из 1024К ячеекпамяти. Для устройств ввода/вывода используется только

  девять линий, чтопозволяет адресовать 512 различных устройств.

       Остальныелинии  канала используются для передачиразличных сиг-

  налов управления.Примерами таких сигналов могут служить команды чте-

  ния изпамяти,  записи в память или командычтения/записи для перифе-

  рийных устройств.

       Внутрикорпуса IBM/PC спрятаны два набора переключателей. Их на-

  зываютпереключателями конфигурации системы (они  выполнены  в  виде

  корпуса  с двумя рядами выводов,  т.е. корпуса типа DIP).  Установка

  этих переключателейуказывает какое оборудование подключено к IBM/PC,

  например,  количество дисководов,  объем доступной памяти и т.д.  Эти

  переключателиничем реально не управляют -  они  используются только

  дляудобства.  После включения IBM/PCпрограммы запуска считывают по-

  ложение этихпереключателей и затем устанавливают содержимоке опреде-

  ленных ячеекпамяти в соответствии с их положением. Затем,  если ка-

  кой-либопрограмме необходимо узнать, какой объем памяти установлен,

  проверяется содержимоеэтих ячеек.

    Одним изосновных элементов компьютера, позволяющим ему  нормально

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

                                     — 3 -

 функционировать,  является память.Внутренняя память компьютера явля-

  ется временнымрабочим пространством;  в отличие отнее  внешняя  па-

  мять,  такая как файл на дискете, предназначена для долговременного

  храненияинформации.  Информация во внутреннейпамяти не  сохраняется

  при выключениипитания.

       Каждаяячейка памяти имеет адрес,  которыйиспользуется  для  ее

  нахождения.  Поскольку адреса — это те же числа,  компьютер может ис-

  пользоватьарифметические операции для вычисления адресов памяти.

       IBM/PCиспользует  возможности  адресации микропроцессора  8088

  полностью. Адресав 8088 имеют длину 20 бит, следовательно, процессор

  позволяетадресовать два в двадцатой степени байта или 1024 К.

                 2.Основные микросхемы

     Главноймикросхемой является сам микропроцессор. Рядом с микропро-

цессором предусмотрено место для микросхемы 80287,  числового сопроцес-

сора,  илипроцессора числовых данных, с его специальными возможностями

по выполнению очень быстрых (и с повышеннойточностью)  вычислений  над

числами с плавающей точкой.  Числовой сопроцессор устанавливается срав-

нительно небольшое количество РС, однако почти все членысемейства пре-

дусматривают гнездо для его установки.

     Рассмотриммикросхемы, которые предназначены для выполнения опера-

ций синхронизации в компьютере. Одна из них называетсягенератором так-

товых (или синхронизирующих) сигналов и используется,прежде всего, для

получения тактов, которые управляют основным рабочимциклов компьютер в

АТ номером его идентификации является 88248. В любомслучае эта микрос-

хема  дает  синхронизирующий сигнал,  используемый в других компонентах

компьютера для установки основного рабочего темпа. Вмикросхеме генера-

тора  тактовыхсигналов используется кварцевый кристалл в качестве точ-

ной основы для синхронизации. Наш генератор тактовыхсигналов подразде-

ляет  сверхбыстрыетакты кристалла в быстрые такты, требующиеся компь-

ютеру,  ипреобразует их в форму,  приемлемую дляиспользования другими

компонентами схемы.

     С генераторомтактовых сигналов близко связана микросхема програм-

мируемого таймера, идентифицируемая номером 8253. Программируемый тай-

мер может порождать другие сигналы синхронизации.  Можно изменять  ско-

рость выдачи сигналов, что делает эту микросхему«программируемой». Для

осуществления регулировки этим потоком информации вкомпьютерах предус-

мотрен микропроцессор контроллера шины. В РС этамикросхема имеет номер

8288,  а в АТ — 82288.  Задача контроллера шинысостоит  в  том, чтобы

обеспечить нормальную работу шины.

     Некоторыекомпоненты компьютера (в частности, дисководы) могут об-

мениваться  данныминепосредственно через кмпьютерную память, без про-

хождения данных микропроцессора для  выполнения другой  работы.  Такой

процесс  называетсяпрямым доступом к памяти.  Имеетсяспециальная мик-

росхема, предназначенная для управления этим процессом,которая называ-

ется контроллером прямого доступа к памяти (номермикросхемы — 8237).

     Прерыванияконтролируются специальной микросхемой (8259). В компь-

ютерах прерывания  поступают  с различной степенью важности и одной из

задач контроллера прерываний 8259 являетсяотслеживания  их  в порядке

приоритетов, а также фиксация каких-либо задержанныхпрерываний.

     К другимосновным микросхемам относится микросхема программируемо-

го  интерфейса  периферийных устройств (номер — 8255).  Эта микросхема

следит за работой некоторых из  более простых  периферийных  устройств

компьютера,  такихкак порт кассетной ленты. Однако большинство перифе-

рийных устройств компьютера являются слишком сложнымидля  того,  чтобы

они могли регулироваться простой обычной схемой.

     К такимсложным устройствам относятся приводы гибких дисков.  Ос-

новной микросхемой, предназначенной для управленияработой компьютера с

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

                                     — 4 -

приводами гибких дисков, является контроллер гибкого диска PD765. Для

дисплея обычно используется микросхема,  называемая контроллером элект-

ронно-лучевой трубки 6845.

     3. Специальныесвойства микропроцессора 286

     В реальномрежиме специальные возможности и характеристики микроп-

роцессора 286 не проявляются, поэтому компьютер смикропроцессором 286,

функционирующем в реальном режиме,  может быть полностью совместимым  с

обычным РС.  Длятого, чтобы воспользоваться дополнительными возможнос-

тями, следует переключиться на защищенный режим.

     В защищенном режиме микропроцессор 286обладает рядом дополнитель-

ных возможностей, позволяющих ему наращивать количествопрограмм, с ко-

торыми  компьютерможет работать одновременно.  Этодостигается за счет

четырех основных средств: защиты (которая определяет наименование дан-

ного режима), расширенной памяти, виртуальной памяти и мультизадачнос-

ти.

     Защитапозволяет операционной системе воздвигать барьеры для защи-

ты программы от воздействия функционирования другихпрограмм или  самой

операционной системы.  В стандартном РС ими приработе микропроцессора

286 в реальном режиме отдельная прорамма может испортитьработу  опера-

ционной системы  или какой-либо другойпрограммы,  использующей компь-

ютер,  либо дажезаблокировать весь компьютер, остановив его функциони-

рование. Защищенный режим работы микропроцессора 286позволяет операци-

онной системе предотвращать порчу компьютера и  даже порчу  какой-либо

части памяти любоц из программ. Когда мы используем нашикомпьютеры для

одновременной работы только с одной программой,  то неправильная работа

программы и блокировка ею машины не играет столь ужбольшой роли. Одна-

ко, если нам нужно выполнять на компьютере одновременнонесколько прог-

рамм, намного возрастает важность защиты функционированиякомпьютера от

некорректно работающих программ.  Средство защиты делает это возможным.

Защищенный режим работы микропроцессора 286 предоставляетбольший объем

памяти,  причем этодостигается двумя путями. Во-первых, за счет расши-

ренной памяти:  микропроцессор 286позволяет устанавливать в компьютер

до шестнадцати миллионов байтов рабочей памяти.Во-вторых, за счет вир-

туальной памяти: микропроцессор 286 может имитировать (или иметь) даже

большее количество памяти, чем имеется в фактическомналичии. Виртуаль-

ная память позволяет компьютеру предоставлять каждойпрограмме до одно-

го биллиона байтов (один гигабайт) для работы с ними. Этоочень большой

объем памяти.

     Наконец,используя поддерживаемую аппаратными средствами мультиза-

дачность, микропроцессор 286 может быстро и надежноосуществлять перек-

лючение между программами,  которые выполняются одновременно. Мультиза-

дачность применяется в случае,  есликомпьютер одновременно работает с

более чем одной программой (задачей).  Фактически, в каждый момент вре-

мени компьютер выполняет команды лишь одной программы,однако в процес-

се мультизадачной работы обрабатываться все программы — это можно срав-

нить с жонглером, который может одновременно работать с множеством ша-

ров.  Любойкомпьютер может попытаться работать в режиме мультизадачн-

ности, однако такую работу он не в состоянии выполнять надолжном уров-

не, не обладая определенными специальными аппаратнымисредствами (таки-

ми,  например, какзащита памяти). Защищенный режим микропроцессора 286

предусматривает множество средств,  которые  практически обеспечивают

возможность выполнения компьютером мультизадачной работы.

               4.Память и порты, регистры

     Регистрыпредставляют собой разновидность памяти специального наз-

начения,  которуюмикропроцессор использует для определенных конкретных

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

                                     — 5 -

целей.

    ________________________________________________________________

     !  Флаги        _____________________________________        !

     !               |____________________________________|        !

     !               _____________________________________         !

     !          AX   |_______AH_______|______AL___________|        !

     !          BX   |_______BH_______|______BL___________|        !

     !          CX   |_______CH_______|______CL___________|        !

     !          DX   |_______DH_______|______DL___________|        !

     !               _____________________________________         !

     !          SP   |____________________________________|        !

     !          BP   |____________________________________|        !

     !          SI   |____________________________________|        !

     !          DI   |____________________________________|       !

     !          PC   |____________________________________|        !

     !               _____________________________________         !

     !          CS   |____________________________________|        !

     !          DS   |____________________________________|        !

     !          SS   |____________________________________|        !

     !          ES   |____________________________________|        !

    !______________________________________________________________!

     Регистрамиявляется набор из четырнадцати 16-битовых мест, в кото-

рых можмно хранить числа. каждое из них являетсянеотъемлемой, внутрен-

ней частью микропроцессора.

     Первая группарегистров называется универсальными регистрами, Име-

ется четыре таких регистра, которые именуются AX, BX, CXи DX. Если для

работы требуется  применение  лишь половины емкости любого из этих ре-

гистров поскольку они делятся на половины старшего имладшего  порядка,

которые обозначаются AH и AL,  BH и BL и т.д.  В этих универсальных ре-

гистрах выполняется значительная  часть  работы, поступающей  в  наши

компьютеры.

     Следующаягруппа состоит из четырех регистров,  используется  для

оказания помощи  микропроцессору вотыскании пути в памяти компьютера.

Регистры из этой группы называются регистрамисегментов.  Каждый из них

используется для  оказания  помощи в получении доступа к разделу (или

сегменту) памяти объемом 64 К. Сегмент кода (или регистрCS) указывает,

в  каком местепамяти располагается программа.  Сегментданных (или ре-

гистр DS) определяет местонахождение данных, используемыхпрограммой, а

дполнительный сегмент (или регистр ES) дополняет сегмент данных.  Сег-

мент стека (или регистр SS) определяет местонахождениестека  компьюте-

ра, который вкратце будет описан. Более полноепредставление о примене-

нии этих регистров мы получим в главе 7,  когда более  детально  будет

рассматриваться память.

     В то время какрегистры сегментов используются для получения дос-

тупа к большим разделам (по 64 К)памяти, последняя группарегистров ис-

пользуется для оказания помощи в отыскании пути копределенным байтам в

памяти.  Ониприменяются совместно с регистром сегмента для указания на

точное место в памяти. имеется пять такх регистров, каждый из которых

испольуется для конкретной цели. Указатель команды(инструкции) IP, ко-

торый называют также программным счетчиком, РС, сообщаетмикропроцессо-

ру только о месте, где выполняется программа. Указатель стека,  SР, и

указатель базы, BP, используются для оказания помощи вотслеживании вы-

полняющейя работы. Индекс источника, SI, и индекс местоназначения (вы-

хода),  DI,используются для оказания помощи нашим программам в переме-

щении больших объемовданых из одного места в другое.

     Наконецимеется еще один регистр, называемый регистром флагов, ко-

торый используется  для фиксации флаговсостояния,  о которых шла речь

ранее.  Различныефлаги сообщают нашим программам только о том, в каком

состоянии находится компьютер: результаты арифметическихопераций, раз-

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

                                      — 6 -

решены ли прерывания и другие аналогичные состояния.

    Микропроцессоры РС  в  основном управляются посредством последова-

тельности 1-битовых флагов, каждый из которых отмечаетили устанавлива-

ет определенное состояние в компьютере. Флаги действуютнезависимо друг

от друга, однако,  для удобства,  они собраны вместе в регистр флагов.

Отдельные  флагимогут проверяться и устанавливаться посредством специ-

альных команд, а вся группа флагов может считываться илиустанавливать-

ся посредством  пары команд,  которые считывают или устанавливают весь

регистр флагов. Всего имеется девять стандартных флагов. Шесть из ним

используются для  индикации  результатов арифметических и подобных им

операций:  флагнуля, ZF, указывает на нулевой результат (или равенство

при сравнении), флаг знака,  SF, указывает наотрицательный результат,

флаг переноса,  CF,означает перенос в следующую позицию, флаг дополни-

тельного переноса,  AF,  указывает на перенос из первых четырех битов

(что требуется для моделирования десятичныхопераций),  флаг перенолне-

ния,  OF,  отмечает получение слишком большого результата и, наконец,

флаг четности, PF, отмечает четность или нечетностьрезультата.

     Триоставшихся  флага используются для управления.  Флаг направле-

ния,  DF, управляетнаправлением повторения операций (например, при по-

байтовом перемещении данных): справа налево или наоборот.Флаг прерыва-

ний, IF, контролирует возможность прерываний: разрешеныони или времен-

но запрещены. Флаг захвата, TF, вызывает генерациюкопьютером специаль-

ного прерывания «захвата» после выполненияодной  команды.  Это делает

возможным пошаговое  выполнение  программы с трассировкой результатов

каждой отдельной команды.

     Помимо этихдевяти флагов, усовершенствованный микропроцессор 286,

используемый в ветви АТ семейства РС,  допускает применение двух весьма

специальных флагов. Один из них, называемый, NT, используется для вло-

женных задач, а другой, двухбитовый флаг IOPL, управляетуровнем приви-

легии ввода/вывода.

                                                            ┌─────────┐

                                                            │         │

                                                            │ УУПДП   │

                                                             │         │

                                                            └─────────┘

┌────────┐      ┌────────────┐       ┌──────┐       ┌──────┐

│ ЗУ    │       │ПРОЦЕССОР  │        │СИСТ. │        │      │    ┌───────┐

│       │       │            │        │КОНТР.│        │КОНТР.│     │ПЕРЕФ. │

│       │       │            │        │В/В   │        │      │     │УСТР.  │

│       │       │            │        │     │        │      │     │       │

│       │       │            │        │      │        │      │     │       │

└────────┘      └────────────┘       └──────┘       └──────┘     └───────┘

                                                            ┌─────────┐

                                                            │СИСТЕМА  │

                                                            │ПРЕРЫВАН.│

                                                            │         │

                                                            └─────────┘

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

Лекция 2

                       1. Краткий обзор памяти

    Микропроцессорлучше всего работает с 16-битовыми числами, которые

могут принимать значения, не  превышающие  65536 или  64К.  Поскольку

компьютер использует  числовые  адреса для отыскания своего пути через

память, предполагается,  что память неможет содержать более 64К байт.

Как показал опыт, 64К байт слишком мало для серьезныхприменений компь-

ютера; многие из наших компьютеров оборудованы памятью,емкость которой

в десять раз больше — 640К. Поэтому возникает вопрос: каквыполнять ра-

боту,  испольуятакую большую память и продолжая применять  16-битовые

числа ля доступа к ней?

     Решение,которое было реализовано фирмой Intel в семействе микроп-

роцессоров  8086заключается в применении так называемых сегментирован-

ных адресов. Сегментированные адреса составляются из двух  16-битовых

слов, объединяемых  таким способом,  чтобы они могли определять адреса

1048576 (или приблизительно миллион) байтов  памяти. Для  того,  чтобы

посмотреть,  какэто делается, нужно рассмотреть следующее: арифметику,

которая используется при объединении двух словсегментированного  адре-

са,  и  способ обработки этих сегментированныхадресов внутри микропро-

цессора.

     Арифметикавключает так называемое «сложение со сдвигом»,  которое

позволяет создавать 20-битовое двоичное число (котороеможет  принимать

значения до 1048578) из двух 16-битовых чисел.  Предположим, что у нас

имеется два 16-битовых слова,  которые имеют шестнадцатеричные значения

ABCD и 1234. Напомним,  что каждаяшестнадцатеричая цифра представляет

четыре бита, поэтому четыре шестадцатеричные цифры  (ABCD  или 1234)

представляют 16 битов. Возьмем одно из этих двух чисел, скажем ABCD, и

добавим 0 к его концу: ABCD0.  Фактически это означаетсдвиг числа  на

одну шестнадцатеричную позицию (или на четыре двоичныепозиции) или ум-

ножение значения числа на шестнадцать.  Теперь число состоит  из  пяти

шестнадцатеричных цифр (или 20 битов) и принадлежит миллионному диапа-

зону.  Однако,  к сожалению, оно не может быть использовано в качестве

полного 20-битового адреса памяти,  поскольку в конце этого числа стоит

0:  это число можетпредставлять только адреса, оканчивающиеся  на  0,

т.е. только каждый шестнадцатый байт.

     Для того,  чтобы завершить описание схемысегментированной адреса-

ции,  мы возьмемдругое 16-битовое число (1234 в нашем примере) и доба-

вим его к сдвинутому числу:

                                ABCD0

                              +  1234

                               -------

                                ACF04

     Когда мыобъединяем два 16-битовых слова таким способом, мы полу-

чаем 20-битовое число, которое может принимать любое значение от 0  до

1048577.  И  это та арифметическая схема,  которая обеспечивает способ-

ность PC работать с миллионом байтов памяти,  используя 16-битовые чис-

ла.

     Две части этойсхемы адресации называются частью сегмента и частью

смещения. В нашем примере ABCD есть значение сегмента, а1234 есть зна-

чение смещения. Часть сегмента определяет адрес памяти,  кратный  16,

т.е.  адрес,  в последней позиции которого имеетсяшестнадцатеричный 0.

Адреса памяти, которые кратны 16,  называютсяграницами параграфов или

параграфами сегментов.

     Часть смещениясегментированного адреса определяет некоторое точ-

ное  местоположениебайта,  следующее за местоположениемпараграфа сег-

мента.  Поскольку16-битовое слово смещения может варьироваться от 0 до

<span Courier New";mso-fareast-font-family: Batang;mso-ansi-language:RU;mso-fareast-language:KO;mso-bidi-language:AR-SA">

                                     — 2 -

65535  (или64К),  то часть смещениясегментированного адреса позволяет

нам работать с 64К байтами памяти,  используя один и тот же адрес  сег-

мента.

     Представимстандартный способ записи сегментированных адресов, ко-

торый  вы  часто будете встречать при изучении технических материалов,

относящихся к PC. Сегментированный адрес обычно записывается в следую-

щем виде: ABCD:1234.  Первым указываетсяадрес сегмента, затем следует

двоеточие и адрес смещения.  Если вы работаете с языком ассемблера  или

используете программу DEBUG,  то такую запись вы будете встречать очень

часто.  Если вывзглянете на листинг программы DEBUG, представленный в

разделе «Таблица  векторов  прерываний»,  то вы увидите такую запись в

правом столбце.

     Почтивсегда,  когда  мы говорим  об адресах внутри памятинашего

компьютера,  мыобращаемся к ним в их сегментированной форме. Но иногда

нам нужно взглянуть на них в их конечной форме, когда двечасти сегмен-

тированного адреса объединены;  когда это требуется сделать, я буду на-

зывать соответствующие адреса абсолютными адресами,  чтобы не возникало

путаницы. В нашем примере объединения частей ABCD и 1234результирующим

абсолютным адресом является ACF04.

     Часть сегментасегментированного адреса  полностью  обрабатывается

набором из четырех специальных регистров сегментов,  Каждый из этих че-

тырех регистров предназначен для локализации  параграфа сегмента.  Ре-

гистр сегмента кода CS указывает,  где находится код программы. Регистр

сегмента данных DS определяет местоположение основныхданных программы.

Регистр дополнительного  сегмента  ES дополняет сегмент данных DS так,

что данные можно сдвигать между двумя отдельными частямипамяти. И, на-

конец, регистр сегмента стека SS предоставляет информациюо базовом ад-

ресе стека компьютера. Детальная адресация осуществляется посредством

обработки адреса смещения. В то время как часть сегментасегментирован-

ного адреса может использоваться только когда оназагружается в один из

этих  четырех  регистров, адреса смещения могут использоваться намного

более гибко.  Нашипрограммы могут получать смещения адресов из различ-

ных регистров (таких как универсальные регистры AX,  BX и т.д. или ин-

дексные регистры SI и DI). Смещения могут такжеуказываться в фактичес-

ких командах программы на машинном я

еще рефераты
Еще работы по программированию, базе данных