Приветствуем. IndigoBits - это место, где скапливаются самые интересные и наиболее удивительные биты информации из пространства hi-tech. Наша страсть - мир высоких технологий.

37. Директивы генерации ошибок

В ассемблере определен ряд директив, называемых директивами генерации пользовательской ошибки. Их можно рассматривать и как самостоятельное средство, и как метод, расширяющий возможности директив условной компиляции. Директивы генерации пользовательской ошибки по принципу работы можно разделить на два типа: безусловные директивы генерируют ошибку трансляции без проверки каких-либо условий; ERR (.ERR) [текст сообщения] Безусловно приводит к генерации ошибки[…]

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

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

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

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

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) Указатели на память[…]

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

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

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

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

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 зарезервированы под прерывания пользователя. Вместо того, чтобы включать процедуру в каждую программу Вы можете установить ее как прерывание, написав программу, которая останется резидентной в[…]