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


     redanbags |     

Уроки Iczelion'а

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

Уроки 1-26
Под Win32, мы больше не должны беспокоиться о моделях памяти или сегментах! Теперь только одна модель память: Плоская модель памяти. Теперь нет больше 64K сегментов. Память теперь это большое последовательное 4-х гигабайтовое пространство. Это также означает, что вы не должны "играть" с сегментными регистрами. Вы можете использовать любой сегментный регистр для адресации к любой точке памяти.

Основы
Основы - 2
Основы - 3
MessageBox
MessageBox - 2
MessageBox - 3
MessageBox - 4
MessageBox - 5
Пpостое окно
Пpостое окно - 2

Уроки 27-35
Win32 имеет несколько функций AрI, которые позволяют программисту использовать некоторые возможности отладчика. Они называются Win32 Debug ApI. С помощью ни вы можете: Загрузить программу и подсоединиться к запущенной программе для отладки. Получить низкоуровневую информацию о программе, которую вы отлаживаете, например, ID процесса, адрес входной точки, image base и так далее. Быть уведомленным о событиях, связанных с отладкой, например, когда процесс запускается/заканчивает выполнение. Изменять отлаживаемый процесс/ветвь

Win32 Debug ApI I
Win32 Debug ApI I - 2
Win32 Debug ApI I - 3
Win32 Debug ApI I - 4
Win32 Debug ApI I - 5
Win32 Debug ApI I - 6
Win32 Debug ApI I - 7
Win32 Debug ApI I - 8
Win32 Debug ApI II
Win32 Debug ApI II - 2

Основы
Ваша программа не общается непосредственно с драйверами ODBC, она пользуется услугами менеджера Управление работой менеджера осуществляется с помощью API функций, к которым вы можете обращаться непосредственно из своей программы, вы должны только подключить odbc32.inc и odbc32.lib, а так же windows.inc.

Соединение с базой данных
Соединение с базой данных - 2
Соединение с базой данных - 3
Соединение с базой данных - 4
Соединение с базой данных - 5
Соединение с базой данных - 6
Соединение с базой данных - 7
Подготовка и Использование Инструкций
Подготовка и Использование Инструкций - 2
Подготовка и Использование Инструкций - 3

Обзор РE формата
РE означает Рortable Executable. Это 'родной' файловый формат Win32. Его спецификации происходят от Unix Coff (common object file format). "Рortable executable" означает, что файловый формат универсален для платфомы win32: загрузчик РE любой win32-платформы распознает и использует это файловый формат даже когда Windows запускается на не РC CРU-платформе, хотя это не означает, что ваши РE можно будет портировать на другие CРU-платформы без изменений.

Правильность PE файла
Правильность PE файла - 2
Правильность PE файла - 3
Правильность PE файла - 4
Файловый заголовок
Файловый заголовок - 2
Опциональный заголовок
Таблица секций
Таблица секций - 2
Таблица секций - 3

Менеджер виртуальных машин
VMM - это программа, выполняющаяся в 32-битном защищенном режиме. Ее основная задача заключается в создании и поддержке рабочей среды виртуальных машин. Она ответственна за создание, выполнение и прерывание виртуальных машин. VMM является одной из многих системных VxD и находится в файле VMM32.VXD в вашей системной директории. Давайте проанализируем порядок загрузки Windows 95.

Виртуальные драйвера устройств
Взаимодействие между VxD
Взаимодействие между VxD - 2
Менеджер виртуальных машин
Управление памятью
Обработка прерываний
Управление ветвями
Каркас драйвера
Формат LE
Формат LE - 2

Как создать invoke'абельную библиотеку импорта
Это короткий очерк о том, как создать библиотеку импорта, которую можно использовать вместе с MASM'ом. Я предполагаю, что вы уже знаете кое-что о библиотеках импорта, то есть вы знаете, что это так далее и так далее. Я сделаю упор на то, как генерировать библиотеки импорта, совместимые с MASM'ом.

Формат библиотек импорта MASM'а
Создание библиотек импорта MASM из DLL
Создание invoke'абельных библиотек импорта
Получение имен функций и общего размера
Создание исходника DLL
Ассемблирование исходного кода
Пpимеp
Дополнительные инструменты
Lib2Def
MLib

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

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

Об ассемблере
Программист или любой другой пользователь может использовать любые высокоуровневые средства, вплоть до программ построения виртуальных миров и, возможно, даже не подозревать, что на самом деле компьютер выполняет не команды языка, на котором написана его программа, а их трансформированное представление в форме скучной и унылой последовательности команд совсем другого языка — машинного. А теперь представим, что у такого пользователя возникла нестандартная проблема или просто что-то не заладилось.

Author
Микропроцессоров Intel
Порядок описания команд будет следующим:
Для описания команд приняты обозначения:
AAA
AAD
AAD - 2
AAM
AAS
ADC

Директивы управления листингом
Директивы управления листингом делятся на следующие группы: При рассмотрении директив обращайте внимание на то, что их формат отличается для режимов работы транслятора MASM и IDEAL: директивам режима MASM предшествует точка; директивам режима IDEAL предшествует знак “%”.

Общие директивы управления листингом
Директивы вывода текста включаемых файлов
Директивы вывода условного ассемблирования
Директивы вывода макрорасширений
Директивы вывода листинга перекрестных ссылок
Директивы изменения формата листинга
Директивы изменения формата листинга - 2
Сообщения об ошибках
Сообщения об ошибках - 2
Сообщения об ошибках - 3

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

Структура машинной команды
Структура машинной команды - 2
Структура машинной команды - 3
Структура машинной команды - 4
Способы задания операндов команды
Способы задания операндов команды - 2
Способы задания операндов команды - 3
Прямая адресация
Прямая адресация - 2
Косвенная базовая (регистровая) адресация

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

Команды пересылки данных
Команды пересылки данных - 2
Команды ввода-вывода в порт
Команды работы с адресами
Команды работы с адресами - 2
Команды преобразования данных
Команды преобразования данных - 2
Команды работы со стеком
Команды работы со стеком - 2
Команды работы со стеком - 3

Обзор группы арифметических команд и данных
Группа арифметических целочисленных команд работает с двумя типами чисел: целыми двоичными числами. Числа могут иметь знаковый разряд или не иметь такового, то есть быть числами со знаком или без знака; целыми десятичными числами.

Целые двоичные числа
Десятичные числа
Арифметические операции над двоичными
Сложение двоичных чисел без знака
Сложение двоичных чисел без знака - 2
Сложение двоичных чисел со знаком
Пример 1.
Пример 2.
Пример 3.
Пример 4.

Логические команды
Наряду со средствами арифметических вычислений, система команд микропроцессора имеет также средства логического преобразования данных. Под логическими понимаются такие преобразования данных, в основе которых лежат правила формальной логики. Формальная логика работает на уровне утверждений истинно и ложно. Для микропроцессора это, как правило, означает /b> и /b> соответственно.

Логические команды
Логические данные
Логические данные - 2
Логические команды
Логические команды - 2
Логические команды - 3
Логические команды - 4
Логические команды - 5
Команды сдвига
Команды линейного сдвига

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

Безусловные переходы
Команда безусловного перехода jmp
Процедуры
Условные переходы
Команда сравнения cmp
Команды условного перехода и флаги
Команды условного перехода и регистр ecx/cx
Организация циклов

Цепочечные команды
Эти команды также называют командами обработки строк символов. Названия почти синонимичны. Отличие в том, что под строкой символов здесь понимается последовательность байт, а цепочка — это более общее название для случаев, когда элементы последовательности имеют размер больше байта — слово или двойное слово.

Цепочечные команды
Цепочечные команды - 2
Цепочечные команды - 3
Цепочечные команды - 4
Операция пересылки цепочек
Команда movs:
Команда movs: - 2
Операция сравнения цепочек
Команда cmps
Команда cmps - 2

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

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

Введение в семейство персональных компьютеров IBM PC
Для выполнения программ компьютер временно записывает программу и данные в основную память. Это память, которую люди имеют в виду, когда утверждают, что их компьютер имеет, например, 512К памяти. Компьютер имеет также ряд pегистров, которые он использует для временных вычислений. Минимальной единицей информации в компьютере является бит. Бит может быть выключен, так что его значение есть нуль, или включен, тогда его значение равно единице.

Введение в семейство компьютеров IBM PC
Введение в семейство компьютеров IBM PC - 2
Введение в семейство компьютеров IBM PC - 3
Введение в семейство компьютеров IBM PC - 4
Введение в семейство компьютеров IBM PC - 5
Введение в семейство компьютеров IBM PC - 6
Введение в семейство компьютеров IBM PC - 7
Введение в семейство компьютеров IBM PC - 8
Введение в семейство компьютеров IBM PC - 9
Введение в семейство компьютеров IBM PC - 10

Дисковая память II: Функции базовой версиии DOS
Все рассматриваемые операции были введены в первых версиях DOS и возможны во всех последующих версиях. Обработка дисковых файлов в базовой DOS включает определение блока управления файлом (FCB - file control block), который описывает файл и его записи. Передача адреса блока FCB в DOS обязательна для всех дисковых операций ввода-вывода. Новых команд ассемблера в данной главе не потребуется. Управление вводом и выводом осуществляется специальными прерываниями.

Функции базовой версиии DOS
Функции базовой версиии DOS - 2
Функции базовой версиии DOS - 3
Функции базовой версиии DOS - 4
Функции базовой версиии DOS - 5
Функции базовой версиии DOS - 6
Функции базовой версиии DOS - 7
Функции базовой версиии DOS - 8
Функции базовой версиии DOS - 9
Функции базовой версиии DOS - 10


Криптография - перейти
Математика и финансы - перейти
Основы MatLab - перейти
Иностранные языки - перейти
Английский для дилинга - перейти
Англо –русский биржевой словарь - перейти
Психология - перейти
Советы психологов - перейти
Web-разработка с Macromedia Studio MX - перейти
Планирование узла - перейти
Управление содержанием - перейти
Совместная работа - перейти
Проверка своих идей на модели узла - перейти
Каркасная модель узла - перейти
Создание динамических страниц - перейти