Отладка приложений

       

Основы CPU


Довольно продолжительное время мы живем в окружении набора команд процессоров компании Intel, уходящего корнями в CPU 8086, который Intel впервые выпустил в 1978 году. Во времена MS-DOS и 16-разрядной операционной системы Windows язык ассемблера казался немного странным и трудным (из-за методики работы CPU с памятью — через 64 Кбайтные блоки, называемые сегментами). К счастью, сегодня иметь дело с языком ассемблера намного легче, потому что в Microsoft Windows 98 и 2000 CPU имеет прямой доступ к полному адресному пространству.

Язык ассемблера, который я представлю в этой главе, имеет дело с основным набором 32-разрядных команд, совместимых со всеми CPU архитектуры х86 от компаний Intel и AMD (Advanced Micro Devices). Продвинутые свойства процессоров Intel Pentium, например, ММХ в обычной практике не применяются, потому что Windows использует относительно немного таких свойств. Здесь мы не будем углубляться в действительно неприятные аспекты форматов инструкций языка ассемблера, такие как байты ModR/M и SIB, которые указывают способ доступа к памяти. Не будут рассмотрены также инструкции с плавающей точкой. Операции на модуле с плавающей точкой Intel CPU (FPU) подобны обычным инструкциям. Главные их отличия состоят в том, что FPU имеет собственный набор регистров, а инструкции с плавающей точкой используют стековую архитектуру регистров.

Напомним один ключевой момент — CPU x86 обладают большой гибкостью и реализуют много способов выполнения аналогичных операций. К счастью, компиляторы Microsoft проделывают большую работу по выбору самого быстрого способа выполнения операции и многократному использованию этой конструкции везде, где она применима, распознавая, таким образом, в какой секции кода ее легче выполнить. В данной главе описаны наиболее широко используемые инструкции, которые можно встретить в программах на языке ассемблера. Если этот материал вдохновит читателя на более подробное изучение семейства CPU компании Intel — а я надеюсь, что это так и будет — ему придется загрузить PDF1-файлы трехтомного руководства разработчиков архитектуры программного обеспечения компании Intel ("Intel Architecture Software Developer's Manual") с узла www.intel.com. Intel даже предлагает эти руководства в свободно распространяемой книжной форме.

1 PDF — Portable Document Format. Формат переносимых (мобильных) документов компании Adobe. — Пер.



Содержание раздела