Здесь мы размещаем статьи и шпаргалки, посвященные языку программирования Assembler (ассемблер). А также примеры на ассемблере, описание команд ассемблера. Любой сможет тут найти уроки и прочую полезную информацию по ассемблеру для начинающих. Для правильного изучения языка программирования assembler рекомендуем воспользоваться оглавлением.

36. Макродирективы условной генерации.

Директивы компиляции по условию позволяют проанализировать определенные условия в ходе генерации макрорасширения и при необходимости изменить этот процесс. Директивы компиляции по условию предназначены для выборочной трансляции фрагментов программного кода. Это означает, что в макрорасширение включаются не все строки макроопределения, а только те, которые удовлетворяют определенным условиям. Всего имеются 12 условных директив компиляции. Их логично попарно[…]

7. Директивы определения сегментов, закрепления сегментных регистров. Общая структура программы.

Директивы определения сегментов имя_сегмента SEGMENT [тип_выравнивания] [тип_комбинирования] [класс_сегмента] [тип_размера_сегмента] Имена сегментов формируются по правилу формирования имен. Типы выравнивания бывают: byte ,word :2, dword :4, para :16, page :256, mempage :4кб Сообщает компоновщику с какого адреса нужно размещать сегмент. По умолчанию – para. Тип комбинирования сообщает компоновщику как нужно объединять сегменты различных модулей, имеющих одно и[…]

5. Типы данных, с которыми работает процессор

С точки зрения размерности микропроцессор аппаратно поддерживает такие типы данных На уровне команд процессор поддерживает такую логическую интерпретацию перечисленных типов данных Целый тип со знаком(8,16,32 бит) Первый бит — знаковый: 0(положительное), 1(отрицательное) Отрицательное число хранится в дополнительном коде Байт(-128;127) Слово(-32768; 37767) Двойное слово(〖-2〗^31;2^31-1) Целый тип без знака Байт(0;255) Слово(0;65535) Двойное слово(0, 2^32-1) Указатели на память[…]

44. Команды передачи данных сопроцессора

Группа команд передачи данных предназначена для организации обмена между регистрами стека, вершиной стека сопроцессора и ячейками оперативной памяти. Команды загрузки числа из области памяти на вершину стека сопроцессора: FLD источник — для вещественного, FILD источник —для целого, FBLD источник — для десятичного числа. Порядок выполнения команд: Операнд считывается и преобразуется к расширенному формату Поле top[…]

47. Команды управления сопроцессором.

Группа команд управления предназначена для работы с нечисловыми регистрами сопроцессора. Мнемоники управляющих команд могут начинаться с FN (без ожидания и без проверки особах случаев) или F (с ожиданием). Команды с буквой N в мнемокоде выполняются немедленно, что позволяет сэкономить несколько тактов. F[N]STCW приемник ; записать содержимое CW в опер. память FLDCW источник; загрузить CW из[…]

43. Форматы данных сопроцесcора

Сопроцессор расширяет номенклатуру форматов данных, с которыми работает основной процессор. Форматы данных, с которыми работает сопроцессор: двоичные целые числа в трех форматах — 16, 32 и 64 бита; В программе целые двоичные числа описываются обычным способом — с использованием директив DW, DD и DQ. упакованные целые десятичные (BCD) числа — длина максимального числа составляет 18[…]

42. Программная модель сопроцессора

Программная модель сопроцессора состоит из: Стек сопроцессора (8 регистров по 10 бит) r0, r1, …, r7 3 служебных регистра по 16 бит (регистр состояния SWR, управляющий регистр CWR, регистр тегов TWR) 2 регистра указатели по 48 бит (DPR регистр указатель данных, IPR регистр указатель адреса) Стек сопроцессора: Регистровый стек сопроцессора организован по принципу кольца. Это[…]

27. Создание собственного вектора прерывания

Большинство из готовых прерываний, обеспечиваемых операционной системой, ничто иное, как обычные процедуры, доступные для всех программ, и Вы можете пожелать добавить свое в эту библиотеку. Значения в диапазоне 60h – 7Fh зарезервированы под прерывания пользователя. Вместо того, чтобы включать процедуру в каждую программу Вы можете установить ее как прерывание, написав программу, которая останется резидентной в[…]

26. Прерывание. Классификация. Команда INT

Прерывание означает временное прекращение основного процесса вычислений для выполнения некоторых запланированных или незапланированных действий, вызванных работой устройств или программы. В зависимости от источника различают прерывания: Аппаратные (внешние) – реакция процессора на физический сигнал от некоторого устройства. Возникают в случайные моменты времени, а значит – асинхронные Программные (внутренние) – возникает в заранее запланированный момент времени —[…]

8. Директивы определения начала и конца процедуры, директива определения конца программы. Инициализация программы.

Директивы определения начала и конца процедуры имя_процедуры PROC [NEAR(FAR)]; начало процедуры NEAR – может быть вызвана только из этого модуля FAR – может быть вызвана только из этого и любого другого модуля имя_процедуры ENDP; конец процедуры Выход из процедуры осуществляется по команде RET Директива определения конца программы END[имя_точки_входа] ;Указывает транслятору где заканчивается программа Инициализация программы:[…]