• Offshore outsourcing Russia : software outsourcing, IT outsourcing: anvision.com
  • Free web templates: anvisionwebtemplates.com
  • Web design company: anvisionwebdesign.com
  • Web hosting company: anvisionwebhosting.com
  • Online dating service: just-dating.net
  • Real estate listings: realestatehawk.net
  • PHP software scripts: softwareguys.net
  • Online job search: jobsearch4.com
  • Web designers directory: web-page-design.info
  • Advertising firms directory: advertisingfinders.net
  • Attorneys directory: attorneysfinders.net
  • Auto dealers directory: autodealerfinders.net
  • Dentists directory: dentistfinders.net
  • Home inspectors directory: inspectionfinders.net
  • Photographers directory: photographerfinders.net
  • Realtors directory: realtorfinders.net
  • Seo firms directory: seofinders.net
  • Web design directory: webdesignfinders.net
  • Web hosters director: webhostingfinders.net
Assebler&
                        win32
Что такое процессор
Память системы
Основы Ассеблера
Первая программа
Данные в Ассемблере
Символьные метки
Переходы (прыжки)
Команды Ассемблера
Программы и структуры
Упрощаем программирование
Еще о командах Ассемблера
Обработка блоков данных
Компилятор MASM
Оконное приложение
Некоторые функции Win32
Все о аквариумах и их обитателях

Что такое процессор

        Чтобы нормально знать ассемблер, надо знать, что такое процессор. Вот наиболее простая схема.

        Самое главное в процессоре это регистры. Регистры состоят из триггеров. Триггер может иметь 2 значения 0 или 1. Регистры бывают 8, 16, 32 (,64) разрядные, понятно, что если 8 разрядов, то в регистре 8 триггеров. Регистр используется для промежуточного хранения информации, некоторые регистры хранят только определённую информацию. Также есть порты ввода вывода. Доступ к внешним устройствам происходит через порты ввода вывода, с помощью контроллера ввода-вывода. Не путайте порты ввода-вывода с портами LPT, COM и т.д.

Процессоры x86

        

        Процессоры x86 бывают 8086, 80186, 80286, 80386, 80486, 80586 и т.д. дальше до предела человеческого прогресса. Процессоры 8086-80286 16-ти разрядные, дальше идут 32 разрядные. Я вам буду рассказывать о процессоре 80386, остальные не слишком сильно отличаются друг от друга.

        Регистры общего назначения - EAX, EBX, ECX, EDX 32 битные регистры младшая часть которых называется AX, BX, CX, DX они 16 битные, каждый регистр делится на 2 части: младшие AL, BL, CL, DL, старшие AH, BH, CH, DH Регистры общего назначения используются для операций с данными, такими, как сравнение, математические операции или запись данных в память. Регистр СХ(ECX) чаще всего используется как счетчик в циклах.

        Регистры сегментов - это CS, DS, ES, FS, GS, SS. Эти регистры 16-ти битные, и содержат в себе первую половину адреса "оффсет:сегмент". Адреса я вам поясню в следующем уроке. Регистры оффсета - EIP, ESP, EBP, ESI, EDI. Эти регистры 32-х битные, нижняя половина которых доступна как регистры IP, SP, BP, SI, DI. EIP - указатель команд, и содержит указатель на линию кода, которая будет исполняться следующей. То есть полный адрес на следующую исполняемую линию кода будет CS:IP (CS:EIP).

        Регистр ESP указывает на адрес вершины стека. Регистр ЕВР содержит адрес, начиная с которого в стек вносится или забирается информация (или "глубина" стека). Параметры функций имеют положительный сдвиг относительно ЕВР, локальные переменные - отрицательный сдвиг, а полный адрес этого участка памяти будет SS:EBP. Регистр ESI - адрес источника, и содержит адрес начала блока информации для операции "переместить блок" (полный адрес DS:SI), а регистр EDI- адрес назначения в этой операции (полный адрес ES:EDI). А кое-что забыл, я не объяснил вам, что такое стек. Представьте, что одна подпрограмма вызывает другую, вызываемая подпрограмма завершила свое выполнение, теперь ей надо передать управление подпрограмме, которая её вызвала, как раз адрес следующей команды после вызова подпрограммы находится на верхушке стека.

    

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

        Процессор 80386+ (плюс обозначает, что и все остальные процессоры) может работать в 2х режимах: обычный и защищённый. В защищённом режиме доступны 32 разрядные инструкции и регистры. Win32 работает на процессорах 80386+ в защищённом режиме. DOS работает в обычном режиме. В ДОС нет 32 битных регистров. Вот ещё одно преимущество Win32.

        Для того чтобы узнать результат предыдущей операции, существует регистр флагов. Он 16 битный. Каждый бит в нём обозначает некоторый флаг. В регистре флагов есть флаги переполнения, отрицательного результата, положительного результата, запрета прерываний, чётности, переноса и т.д.

        Также процессоры 386+, существует поддержка многозадачности, реализована система колец защиты: их 4. Самое привилегированное 0 кольцо в нем, что хочешь, то и делаешь. 3 кольцо защиты наиболее ограниченное. В win32 существует только 0 и 3 кольцо защиты. В 3 кольце нельзя выполнять привилегированные команды процессора нельзя обращаться к портам ввода вывода и запускать прерывания, но об этом позже.

        Вот и подошёл к концу первый урок.

 

© 2008
 
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz