Справочник по языку Ассемблера IBM PC

       

Уроки Iczelion'а

Win32 программы выполняются в защищенном режиме, который доступен начиная с 80286. Hо 80286 теперь история. Поэтому мы предполагаем, что имеем дело только с 80386 и его потомками. Windows запускает каждую Win32 программу в отдельном виртуальном пространстве. Это означает, что каждая Win32 программа будет иметь 4-х гигабайтовое адресное пространство.
Hо это вовсе не означает, что каждая программа имеет 4 гигабайта физической памяти, а только то, что программа может обращаться по любому адресу в этих пределах. Windows сделает все необходимое, чтобы сделать память, к которой программа обращается "существующей". Конечно, программа должна придерживаться правил, установленных Windows, или это вызовет General рrotection Fault. Каждая программа одна в своем адресном пространстве, в то время как в Win16 дело обстоит не так. Все Win16 программы могут *видеть* друг друга, что невозможно в Win32. Этот особенность помогает снизить шанс того, что одна программа запишет что-нибудь поверх данных или кода другой программы.

Уроки 1-26
Уроки 27-35
Основы

Обзор РE формата
Менеджер виртуальных машин
Как создать invoke'абельную библиотеку импорта

Справочник по языку Ассемблера IBM PC

Интересно проследить, начиная со времени появления первых компьютеров и заканчивая сегодняшним днем, за трансформациями представлений о языке ассемблера у программистов.
Когда-то ассемблер был языком, без знания которого нельзя было заставить компьютер сделать что-либо полезное. Постепенно ситуация менялась. Появлялись более удобные средства общения с компьютером. Но, в отличие от других языков, ассемблер не умирал, более того он не мог сделать этого в принципе. Почему? В поисках ответа попытаемся понять, что такое язык ассемблера вообще.
Если коротко, то язык ассемблера — это символическое представление машинного языка.
Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами (инструкциями) машинного языка. Отсюда понятно, что, несмотря на общее название, язык ассемблера для каждого типа компьютера свой. Это касается и внешнего вида программ, написанных на ассемблере, и идей, отражением которых этот язык является.

Об ассемблере
Директивы управления листингом


Структура машинной команды
Команды пересылки данных

Обзор группы арифметических команд и данных
Логические команды
Команды передачи управления
Цепочечные команды

Ассемблер и программирование для IBM PC

Написание ассемблерных программ требует знаний организа ции всей системы компьютера. В основе компьютера лежат понятия бита и байта. Они являются тем средством, благодаря которым в компьютерной памяти представлены данные и команды. Программа в машинном коде состоит из различных сигментов для определения данных, для машинных команд и для сигмента, названного стеком, для хранения адресов. Для выполнения ариф метических действий, пересылки данных и адресации компьютер имеет ряд регистров. Данная глава содержит весь необходимый материал по этим элэментам компьютера, так что вы сможете продвинутся к главе 2 к вашей первой программе на машинном языке.

Введение в семейство персональных компьютеров IBM PC
Дисковая память II: Функции базовой версиии DOS