assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 2
Текст из файла (страница 2)
Исходя из этого, учебник адресованследующим категориям читателей:^ преподавателям и студентам вузов для использования в качестве источникаметодически подобранной и систематизированной информации по различнымаспектам применения ассемблера в контексте архитектуры Intel-совместимыхпроцессоров;ж специалистам, занимающимся программированием и желающим освоить ассемблер для расширения своего профессионального кругозора, придания новыхсвойств своему опыту и для решения конкретных практических задач;ж школьникам, углубленно изучающим программирование для компьютеров набазе Intel-совместимых процессоров, а также всем тем, кто интересуется различными аспектами низкоуровневого программирования.Материал учебника, выбранный уровень и методика его изложения преследуют следующие цели:ш изложить основы архитектуры Intel-совместимых процессоров;^ показать неразрывную связь архитектуры процессора с его машинным языком;* представить систему машинных команд в виде функциональных групп с тем,чтобы объяснить цели, которые преследовали разработчики процессора привведении той или иной команды в систему машинных команд;ш научить использовать инструментальные средства разработки ассемблерныхпрограмм;т научить осмысленному подходу к выбору средств ассемблера для реализациипрактических задач средней сложности.Язык ассемблера является символическим представлением машинного языка,он неразрывно связан с архитектурой самого процессора.
По мере внесения изменений в архитектуру процессора совершенствуется и сам язык ассемблера. По этойпричине книга направлена на решение комплексной задачи — не просто рассмотреть ассемблер как еще один из десятков языков программирования, а показать14Предисловиеобъективность его существования и неразрывную связь его конструкций с архитектурой конкретного процессора. Материал книги содержит описание основныхособенностей архитектуры и системы команд процессоров Pentium Pro/MMX/II/III/IV.Изложение материала в учебнике ведется в форме глав, которых всего 17. Логически их можно разделить на четыре части.я В первых шести главах приводятся сведения о том, что представляет собой современный компьютер, что подразумевают понятия архитектуры процессораи компьютера в целом.
Приводится информация о системе и синтаксисе машинных команд и команд ассемблера. Важными являются сведения о жизненном цикле типовой программы на ассемблере и инструментальных средствахразработки ассемблерных программ.• Вторая часть книги, начиная с главы 7, посвящена рассмотрению команд ассемблера в соответствии с их функциональным назначением. Этот материалявляется базовым, и его достаточно, чтобы научиться писать простые программы на ассемблере.
Начиная с главы 11 обсуждаются специальные средства ассемблера, которые используются для написания программ средней сложности.Рассматриваются возможности ассемблера для работы со сложными структурами данных, механизм макрокоманд, вопросы организации модульного программирования, в том числе принципы связи с модулями, написанными наC/C++ и Pascal.Последние две главы учебника посвящены различным аспектам написания ассемблерных программ, использующих современные программно-аппаратныерасширения.
Приводятся подробные сведения о порядке разработки оконныхи консольных Windows-приложений, применении сопроцессора.вВажная часть учебника — его приложение. В нем собрана справочная информация о командах (вплоть до Pentium IV). Данных, которые приведены в приложении, достаточно для проведения широкого круга работ — от общего знакомствас системой машинных команд до поддержки процесса дизассемблированияна уровне машинных кодов.В других приложениях, расположенных на сайте http://www.piter.com/download,собрана справочная информация о различных средствах пакетов ассемблераMASM и TASM.Таким образом, книга является самодостаточным учебным пособием.
Ее использование позволяет сформировать фундаментальные знания по различным аспектам низкоуровневого программирования на языке ассемблера для Intel-совместимых компьютеров. В долгосрочной перспективе материал учебника может служитьсправочником.По сравнению с первым изданием в учебнике сделаны многочисленные изменения. Во-первых, материал был приведен в соответствие с современным уровнемразвития процессоров Intel (до Pentium IV).
Во-вторых, исправлены ошибки и опечатки. Во многом это заслуга внимательных читателей, за что им отдельная благодарность. В-третьих, произведено перестроение материала с учетом существования своеобразных продолжений учебников — книг серии «Практика» издательстваПредисловие15«Питер». Для настоящего учебника пока существует одна такая книга —«Assembler: практика».
Ее содержание посвящено углубленному изучению языкаассемблера на различных востребованных на практике задачах прикладного характера. Материал книги «Assembler: практика» может служить основой для выполнения курсовых и дипломных работ, не говоря уже о его использовании приработе над различными программными проектами. Планируется появление второй книги из этой серии, которая будет ориентирована на освещение вопросов системного программирования. Каждую из этих книг следует позиционировать следующим образом.
Учебник формирует основы и принципы, а на определенном этапеначинает выполнять справочные функции. Книги серии «Практикум» представляют описания вариантов реализации востребованных на практике задач прикладного и системного характера.Об ошибках следует сказать отдельные слова. Конечно, книги, а тем более учебники, не должны содержать неточностей и ошибок, но при нынешних темпах жизни и развития техники это — недостижимый идеал.
Конечно, это не говорит о том,что нельзя написать книгу без ошибок. Безусловно можно, но для этого потребуется времени в несколько раз больше и ее выход в свет может оказаться совершеннобессмысленной затратой времени и сил, так как к этому моменту перестанет бытьактуальным сам предмет, которому посвящена книга. Поэтому вопрос о том, чтоважнее — своевременная книга, содержащая определенное количество ошибок, нопомогающая читателю решить актуальные проблемы сегодняшнего дня, или идеально выверенное издание, освещающее вопросы вчерашнего дня, остается философским. Книги, в которых много исходного кода, — это особый вид книг, которыеможно охарактеризовать как «книги-программы», а в программах, как известно,последних ошибок не бывает.
Более того, рискну высказать мнение, что с учебнойцелью ошибки даже полезны. Это подтверждает и свой, и чужой опыт. Пословица«На ошибках учатся» имеет скрытый смысл — наиболее устойчивые знания формируются именно при исправлении своих и чужих ошибок. Это даже не знания,это уже профессиональный опыт. Тем не менее мои рассуждения не следует рассматривать как оправдание ошибок первого издания учебника и будущих ошибоквторого издания. Они неизбежны, и автор будет благодарен всем читателям, ктозаметит ошибки, неточности и просто опечатки и сообщит о них редакции или автору по указанным далее адресам электронной почты.Часто спрашивают, для программирования каких процессоров можно использовать учебник. Ответ — для Intel-совместимых процессоров.
Под термином «Intelсовместимые процессоры» подразумеваются процессоры фирм Intel, AMD, VIA,Transmeta, полностью поддерживающие базовую систему команд процессоров Intelи полностью или частично поддерживающие различные расширения базовой системы команд процессоров Intel.Что нужно для работы с книгой? Во-первых, компьютер на базе Intel-совместимого процессора.
Во-вторых, пакещ ассемблеров TASM и MASM. Причем лучше всего будет на этапе изучения использовать оба этих пакета. К сожалению, пакет TASM в самостоятельном виде уже не развивается, но работа с ним на этапеобучения достаточно комфортна, тем более что он имеет режим работы, позволяющий во многих случаях без дополнительной доработки переносить программы для16Предисловиеиспользования с пакетом MASM.
Последняя доступная версия этого пакета —TASM 5.0. С пакетом MASM дела обстоят лучше — он развивается. Последние доступные версии — MASM 6.14 и MASM32 версии 7.0. И наконец, для работы нужен один из текстовых редакторов класса notepad.exe.БлагодарностиХорошая традиция — выражение благодарности окружающим людям за их активный или пассивный вклад в появление книг на свет. Это не является некой формой похвальбы, а говорит лишь о том, что ты не один на белом свете и своимиуспехами и неудачам обязан многим людям, которых ты, возможно, никогда невидел и никогда не увидишь. Поэтому я рад и благодарен письму каждого читателя.
Адрес электронной почты v_yurov@mail.ru всегда доступен для писем читателей относительно содержимого книг, пожеланий, сообщений о замеченных ошибках и неточностях. Особую благодарность выражаю жене Елене и детям — Сашеи Юле.От издательстваВаши замечания, предложения, вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).Мы будем рады узнать ваше мнение!Все исходные тексты программ, приведенные в книге, а также дополнительныеприложения вы сможете найти по адресу http://www.piter.com/download.Подробную информацию о наших книгах вы найдете по адресу http://www.piter.com.Глава 1Организация современногокомпьютераВнешний вид типичного современного компьютераСтруктурная схема компьютераМесто ассемблераИсторическая ретроспектива процессоров IntelСовременному человеку трудно представить свою жизнь без электронно-вычислительных машин (ЭВМ).
В настоящее время любому желающему по силам собратьу себя на рабочем столе полноценный вычислительный центр, степень функциональности которого может быть ограничена только фантазией и финансовыми возможностями его обладателя.В минимальной комплектации типовой персональный компьютер состоит изкомпонентов, показанных на рис. 1.1.Из рисунка видно, что компьютер образуют несколько физических устройств,каждое из которых подключено к одному блоку, называемому системным. Еслирассуждать логически, то ясно, что он играет роль некоторого координирующегоустройства. Попытка открыть корпус и заглянуть внутрь системного блока, скореевсего, не приведет к удовлетворению жажды познания — непонятная совокупностьразнообразных плат, блоков, индикаторов и соединительных проводов вряд ли дастоднозначные ответы на возможные вопросы. Внутри монитора вы тем более ничего интересного не найдете, за исключением возможности удовлетворить другуюжажду — жажду приключений.