Ноутбуки   
   Софт   
   Компьютеры   
   Компьютерные фирмы   
  Меню сайта

BIOS

SSD-накопители

Акустика для ПК

Видеокарты

Видеокарты - История

Джойстики, клавиатуры и мыши

Дигитайзеры

Жесткие диски

Жесткие диски - история

Звуковые карты

Именитые люди компьютерной индустрии

История компьютеров

Карманные компьютеры

Компьютер десктоп - готовая сборка

Компьютерные фирмы

Компьютеры в теории и практике

Копировальные аппараты

Корпуса, вентиляторы, блоки питания

Маршрутизаторы, коммутаторы, хабы

Материнские платы

Модемы

Модули памяти

Мониторы

Мониторы и видеокарты - история

Новости

Ноутбуки и субноутбуки

Оборудование беспроводной связи, bluetooth, wi-fi

Оптические накопители CD, DVD, Blueray

Оргтехника

Память - история

Плоттеры

Принтеры

Процессоры

Процессоры - история

Сетевые карты

Сетевые фильтры, ИБП

Сети

Сканеры

Сменные жесткие диски

Советские ПК

ТВ-тюнеры

Типы компьютеров

Устройства архивации данных и стримеры

Факс

Флоппи-дисководы

Флэшки и всяко-разно

Шины и чипсеты - история




Главная страница Прайс-лист Интернет-магазин

СТЕК

Стеки - это наиболее интересные и полезные средства современных компьютеров. Вместе с прерываниями стеки обеспечивают эффективность работы компьютеров.
Что такое стек? Стек - это место, в котором компьютер хранит рабочие величины, так что один набор величин никогда не смешивается с другим набором.
Стек получил свое имя благодаря метафоре, которую часто используют для описания его работы. Представьте себе стопку тарелок, например, таких которые используются в кафетериях, где тарелки находятся на подпружиненной платформе, перемещающейся вверх и вниз. Если нужно добавить в стопку (по-английски stack) чистые тарелки, которые были в стопке, опускаются вниз. Когда кто-нибудь снимает тарелку сверху, вся стопка поднимается вверх. Тарелки используются по принципу "последним вошел - первым вышел".
Когда компьютер занят работой и поступает прерывание, необходимо место для того, что бы заполнить состояние компьютера до начала обработки прерывания. Если еще одно прерывание поступит в процессе обработки первого, то необходимо запомнить и эту информацию. Когда обслуживание второго прерывания завершится, компьютер должен вернуться к выполнению своей последней перед прерыванием работы, в данном случае к обслуживанию первого прерывания. Для обслуживания прерываний и для многих других операций, которые должны выполняться по принципу перехода к последней из отложенных операций, наиболее естественным средством для запоминания состояния компьютера будет стек.
Организация стека в IBM/PC основана на выделении под стек определенной области оперативной памяти и использовании специального регистра сегмента стека, SS, указывающего адреса этой области памяти. Вершина стека указывается содержимым специального регистра, называемого указателем стека SP. Стек компьютера, в отличие от подпружиненной стопки тарелок, не перемещается физически, а остается на месте. Зато изменяется адрес вершины стека, указываемый содержимым регистра SP.
Данные помещаются в стек компьютера операцией PUSH, извлекаются операцией POP.
Когда возникает прерывание, адрес текущей программы, хранящийся в регистрах CS и IP, помещается в стек, затем адрес процедуры обслуживания прерывания загружается в эти регистры и начинается выполнение данной процедуры. До ячейки, указываемой регистром SP (указателем стека), хранятся данные всей предыдущей работы, ожидающей своего возобновления. За указателем стека находится свободное пространство стека, которое может использоваться процедурой обслуживания прерывания, если ей требуется дополнительная рабочая область. Если возникнет еще одно прерывание, новая процедура обслуживания найдет для себя свободную область в стеке несколько дальше.
Когда завершается очередная процедура, она освобождается. Сначала из стека извлекаются все рабочие значения, а затем извлекается адрес точки приостанова предыдущей процедуры, который загружается в регистры CS и IP. В процессе выполнения всех этих действий механизм работы со стеком автоматически поддерживает последовательность их выполнения. Стеки используются не только для обслуживания прерываний, но и при вызовах одних программ другими. Как при вызовах, так и при обслуживании прерываний принцип один: выполнявшаяся работа должна быть запомнена на время,так что бы можно было начать новую. Когда новая работа будет завершена, необходимо вернуться к выполнению старой в порядке, обратном тому в котором работа приостановлена.
При вызове подпрограмм часто возникает необходимость передавать им параметры, что можно сделать с помощью стека. В третьем приложении к этой книге описывается стыковка программ на Паскале с программами на ассемблере и там можно увидеть, как стек используется для передачи параметров.
Стеки настолько существенны для работы компьютеров, что можно только удивляться их относительно недавнему включению в конструкцию компьютеров. Серия компьютеров 360, которая являлась основной продукцией фирмы "IBM" начиная с 1960-тых годов, не реализовывала концепцию стека, что сильно отразилось на возможностях всей этой серии. Существует красивая легенда о том, что руководитель, исключивший стековую архитектуру из конструкции компьютеров фирмы "IBM", был в последствии "сослан" во внутрифирменный аналог Сибири.
Использование стеков может быть гораздо шире, чем описывалось выше. Микропроцессор 8088 использует стек только для хранения контекста приостановленных программ. Для этой же цели стек использует большинство компьютеров. Можно, однако, полностью переориентировать способ работы компьютера с командами и данными, так что все будет основываться на использовании стека. Такая архитектура, ориентированная на использование стека, была разработана фирмой "Барроуз" и все, кто хочет понять на сколько радикально может отличаться компьютер с такой архитектурой, от обычных компьютеров, подобных IBM/PC, может обратиться к описаниям компьютеров фирмы "Барроуз".
Имеется одна подробность в использовании стека микропроцессором 8088, о которой необходимо знать, если Вам потребуется воспользоваться содержимым стека или проверить рабочий стек. Стек продвигается от верхних адресов памяти к нижним. Это означает , что старое содержимое стека имеет большие абсолютные адреса памяти, чем указатель стека SP. Так, например, чтобы извлечь параметры подпрограммы, помещенные в стек, используются положительные смещения (это описано в 3 приложении к этой книге). Что касается свободной части стека, к которой обычно обращаются только командами записи или извлечения из стека, а не по прямому адресу памяти, то для нее потребовалось бы отрицательное смещение относительно указания стека.


ASCII-коды, американский стандартный код для обмена информацией

Аппаратное и программное обеспечение

Аппаратные прерывания, шина данных

Архитектура компьютера, как работает компьютер

Байты

Биты и числа

Двоичная система счисления

Для чего нужны операционные системы

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

На что необходимо обратить внимание - прерывания

Организация памяти IBM PC

Память, часть 1 - что это такое и как осуществляется чтение из памяти

Память, часть 2 - что такое адрес

ПЗУ первой персоналки от IBM

Порт

Сверхоперативная память - регистры

СТЕК




Немного рекламы:


















































































Rambler's Top100