![]() без тайни |
Увод
Тази книга е предназначена за програмисти с опит, които искат да навлязат по-надълбоко в тайните на най-разпространената в днешно време процесорна архитектура I80x86/87. Книгата представлява справочник на инструкциите, регистрите, структурите от данни и системните възможности на всички процесори като цяло. Във фокуса на разглежданията са „новите“ процесори I80386, I80486 и фамилиите Pentium. Разбира се, „старите“ процесори I8088/86 и I80186 също не са забравени: все пак, ако фамилиите Pentium са върхът, то I8086 и I80186 са основата. Между двете групи стои I80286 – това е един преходен процесор, който запазва всички черти на „старите“, но въвежда и нещо принципно ново, доразвито в „новите“ процесори: т.нар. защитен или виртуален режим, който се характеризира с увеличен обем физически адресируема памет и хардуерно реализирани средства за защита на кода на различните приложения едно от друго и от операционната система.
Към „старите“ процесори е добавен още микропроцесорът V20, произвеждан от японската фирма NEC. Тези процесори са хардуерно съвместими с I8086, а програмно – с I80186. Но те са уникални и с това, че предлагат няколко инструкции, които не са реализирани в процесорите на Intel, най-интересни измежду които са инструкциите за работа с двоично-десетични числа направо в паметта и префиксите REPC и REPNC. Всички уникални инструкции на V20 са включени в описанието. Тази книга представлява компилация на различни източници на информация за фамилията процесори I80x86 и обобщение на опита, придобит от автора – програмист със силно системна ориентация. Смятам, че тя ще бъде полезна за всички, които желаят да слязат на по-ниско ниво от обикновеното приложно програмиране (светът не се състои само бази данни, хора!). Част от информацията е придобита вследствие на случайно възникнала ситуация, довела до въпроса „Това пък какво е?“. Така бяха открити всички инструкции на V20, недокументираните форми на AAM и AAD, действието на кода D6, наречен от мен, може би не съвсем сполучливо, SETALC. Процесорите на Intel са разгледани последователно – архитектура, режими на работа, инструкции. Към книгата са добавени програмни фрагменти, които са кратки, удобни и вършат доста полезна работа или дават хубави идеи за решение на често срещани задачи. Голяма част от тези фрагменти са „измислени“ от мен. Най-голямата непълнота в информацията в тази книга е във връзка с наблюдаване и оценяване на производителността при процесор Pentium 4. Механизмите за това са силно усложнени в сравнение с предишните поколения Pentium процесори и са неясно описани дори в официалната документация на Intel История на книгата
Началото на книгата е поставено още през 1992 г. Тогава бях ученик в X-ти клас от най-първия випуск на училище Електронни системи. По онова време I80486 беше върхът на технологиите, 50MHz – чудо невидено, а Бил Гейтс все още не можеше да си представи за какво биха му били на човек повече от 640К оперативна памет.
Основата беше поставена с пълен справочник на инструкциите на I8086. Малко по-късно бяха добавени инструкциите на I80186, а след щателно изследване - и екзотичните инструкции на процесора V20, на който бяха базирани компютрите, с които работехме тогава. Увлечението ми по най-ниското ниво на програмиране датира от значително по-рано. След като справочникът на инструкциите беше готов, стана очевидно, че трябва да се опишат и всички системни особености на процесора – адресиране, сегментация, структури данни, формати на регистри и т.н. Постепенно се запознах и с другите процесори на Intel – 286, 386, 486 – и естествено ги включих в книгата. Техните режими на работа предизвикаха появата на много нови глави. С появата на фамилиите Pentium и техните многобройни функции броят на главите постоянно нарастваше. Днес книгата се състои от 16 глави и около 500 страници (А4). Нашироко са използвани илюстрации за онагледяване на много функции на процесорите и таблици за систематизиране на голямата по обем фактология. Програмните фрагменти се появяваха или като илюстрация на описваните функции, или като част от някои мои програмистки находки. Днес не е трудно цялата тази информация да се намери свободно в Интернет: официалната документация на IA4, IA8, IA32, IA64, x86-64 и на AMD 3DNow! се състои от общо 18 книги с общ обем 5000 страници. Но в „80х86: без тайни“ тези 5000 страници са синтезирани на едно място в 500 на български език. Опитах да публикувам книгата. Най-голямото издателство на компютърна литература, СофтПрес, ми отказа с аргумента, че не можели да продадат книга от български автор. Унизително е, но изглежда истина. Ние сме удивителни нихилисти на тема собствени способности. Предложих книгата да бъде издадено под името на Андреас Крийкуейдър, но и това не помогна. Както е да, Интернет не пита за националността на автора. Съдържание и резюме на текста
Текстът на книгата е разделен на шестнайсет глави.
Част I. ВъведениеРазглежда основните характеристики на процесорните системи като цяло. Тази глава не е свързана с фамилията I80x86, а с теорията на процесорната техника (ориентирана към системния програмист). Включени са основните концепции за изграждане на процесорна система, нейните компоненти и ресурси. Разгледани са много теми, отговор на въпроса Що е то..., които знаещите приемат са даденост, а незнаещите много трудно успяват да осмислят.Част II. Базова архитектураПредставя фамилията I80x86 и архитектурата х86. Тук са описани пълно всички архитектурни особености на фамилията като цяло и на отделни нейни представители. Дадено е пълно описание на приложните и системните регистри (т.е. тези, които имат отношение към приложното и системното програмиране и не попадат в категорията „специални ресурси“).Добавена е кратка емоционална статия, наречена Ода за паметта, в която се описва как масово разпространените потребителски операционни системи използваха най-мощната процесорна фамилия по подобие на парен чук за просто убийство на муха и какви са икономическите предпоставки за това. Част III. Реален режим на работа
Тези четири глави са посветени на четирите режима на работа на процесорите от фамилията I80х86. Описани са подробно особеностите на всеки режим – адресиране на паметта, принципи за защита, влизане и излизане от режима. Различните видове таблици, разполагани в паметта и изисквани от процесора за нормалната му работа, са пълно описани в съответната глава. Глава IV съдържа и кратко есе на тема защо и кому е нужна защита. |
![]() |
![]() |
|
| Съдържание | Пълен текст | |
![]() |
![]() |
|
| PDF, 3.6M | Приложение, 18К |