POP регистр 12 1
POP сегментный регистр 12 1
POP память 25 + EA 2-4
POPF 12 1
PUSH регистр 15 1
PUSH сегментный регистр 14 1
PUSH память 24 + EA 2-4
PUSHF 14 1
RCL регистр, 1 2 2
RCL регистр, CL 8+4/бит 2
RCL память, 1 15(23) + EA 2
RCL память, 1 20(28)+EA+4/бит 2
RCR регистр, 1 2 2
RCR регистр, CL 8+4/бит 2
RCR память, 1 15(23) + EA 2
RCR память, 1 20(28)+EA+4/бит 2
REP 2 1
REPE 2 1
REPNE 2 1
REPZ 2 1
REPNZ 2 1
RET (внутрисегментный, без POP) 20 1
RET (внутрисегментный, с POP) 24 3


RET (межсегментный, без POP) 32 1
RET (межсегментный, с POP) 31 3
ROL регистр, 1 2 2
ROL регистр, CL 8+4/бит 2
ROL память, 1 15(23) + EA 2
ROL память, 1 20(28)+EA+4/бит 2
ROR регистр, 1 2 2
ROR регистр, CL 8+4/бит 2
ROR память, 1 15(23) + EA 2
ROR память, 1 20(28)+EA+4/бит 2
SAHF 4 1

SAL регистр, 1 2 2
SAL регистр, CL 8+4/бит 2
SAL память, 1 15(23) + EA 2
SAL память, 1 20(28)+EA+4/бит 2
SAR регистр, 1 2 2
SAR регистр, CL 8+4/бит 2
SAR память, 1 15(23) + EA 2
SAR память, 1 20(28)+EA+4/бит 2
SBB регистр, регистр 3 2
SBB регистр, память 9(13) + EA 2-4
SBB память, регистр 16(24) + EA 2-4
SBB регистр, значение 4 3-4
SBB память, значение 17(25) + EA 3-6
SBB аккумулятор, значение 4 2-3
SCAS приемник 15(19) 1
SCAS (REP) приемник 9+15(19)/повтор 1
SHL регистр, 1 2 2
SHL регистр, CL 8+4/бит 2
SHL память, 1 15(23) + EA 2
SHL память, 1 20(28)+EA+4/бит 2
SHR регистр, 1 2 2
SHR регистр, CL 8+4/бит 2
SHR память, 1 15(23) + EA 2
SHR память, 1 20(28)+EA+4/бит 2
STC 2 1
STD 2 1
STI 2 1
STOS приемник 11(15) 1
STOS (REP) приемник 9+10(14)/повтор 1
SUB регистр, регистр 3 2
SUB регистр, память 9(13) + EA 2-4
SUB память, регистр 16(24) + EA 2-4
SUB регистр, значение 4 3-4
SUB память, значение 17(25) + EA 3-6
SUB AL, значение 4 2-3
TEST регистр, регистр 3 2
TEST регистр, память 9(13) + EA 2-4
TEST регистр, значение 5 3-4
TEST память, значение 11 + EA 3-6
TEST AL, значение 4 2-3
WAIT 3 + 5n 1
XCNG AL, словный регистр 3 1


XCNG память, регистр 17(25) + EA 2-4
XCNG регистр, регистр 4 2
XLAT таблица-источник 11 1
XOR регистр, регистр 3 2
XOR регистр, память 9(13) + EA 2-4
XOR память, регистр 16(24) + EA 2-4
XOR регистр, значение 4 3-4
XOR память, значение 17(25) + EA 3-6
XOR AL, значение 4 2-3

Приложение Ж. Набор инструкций микропроцессора 80286.

Придерживаясь схемы, принятой в данной книге, здесь перечисле-
ны инструкции только для режимов реальной адресации. Более мощный
микропроцессор 80286 не требует добавочного времени на вычисление
эффективных адресов, нет также отличия в выполнении команд над
байтными и словными переменными. Звездочка указывает, что Вы
должны добавить один такт, если при вычислении смещения сумми-
руются три элемента. Буква m указывает число байтов следующей
инструкции, а n - число повторений.

такты байты

AAA 3 1
AAD 14 2
AAM 16 2
AAS 3 1
ADC регистр/память с регистром 2,7* 2
ADC значение с регистром/памятью 3,7* 3-4
ADC значение с аккумулятором 3 2-3
ADD регистр/память с регистром 2,7* 2
ADD значение с регистром/памятью 3,7* 3-4
ADD значение с аккумулятором 3 2-3
AND регистр/память с регистром 2,7* 2
AND значение с регистром/памятью 3,7* 3-4
AND значение с аккумулятором 3 2-3
CALL прямой внутри сегмента 7+m 3
CALL косвенный через регистр/память внутри сег-та 7+m,11+m* 2
CALL прямой между сегмента 13+m 5
CBW 2 1
CLC 2 1
CLD 2 1
CLI 3 1
CMC 2 1
CMP регистр/память с регистром 2,6* 2
CMP регистр с регистром/памятью 2,7* 2
CMP значение с регистром/памятью 3,6* 3-4
CMP значение с аккумулятором 3 2-3
CMPS повторенный CX раз 5 + 9n 2
CMPS байт или слово 8 1
CWD 2 1
DAA 3 1
DAS 3 1
DEC регистр/память 2,7* 2
DEC регистр 2 1
DIV байтный регистр 14 2
DIV словный регистр 22 2
DIV байт памяти 17* 2
DIV слово памяти 25* 2
ESC 9-20* 2
HLT 2 1
IDIV байтный регистр 17 2
IDIV словный регистр 25 2
IDIV байт памяти 20* 2
IDIV слово памяти 28* 2


IMUL байтный регистр 13 2
IMUL словный регистр 21 2
IMUL байт памяти 16* 2

IMUL слово памяти 24* 2
IMUL умножение на целое значение 21,24* 3-4
IN фиксированный порт 5 2
IN переменный порт 5 1
INC регистр/память 2,7* 2
INC регистр 2 1
INS строка 5 + 4m 2
INS байт или слово 5 1
INT указанный тип 23 + m 2
INT тип 3 23 + m 1
INTO 24 + m или 3 1
IRET 17 + m 1
JCXZ 8 + m или 4 2
JMP короткий/длинный 7 + m 2
JMP прямой внутри сегмента 7 + m 2
JMP косвенный через регистр/память 7 + m,11 + m* 2
JMP прямой между сегментами 7 + m 2
Jxxx 7 + m или 3 2
LAHF 2 1
LDS 7* 2
LEA 3* 2
LES 7* 2
LOCK 0 1
LODS 5 1
LODS повторенный CX раз 5 + 4n 1
LOOP 8 + 4n или 4 2
LOOPZ/LOOPE 8 + 4n или 4 2
LOOPNZ/LOOPNE 8 + 4n или 4 2
MOV регистр в регистр/память 2,3* 2
MOV регистр/память в регистр 2,5* 2
MOV значение в регистр/память 2,3* 3-4
MOV значение в регистр 2 2-3
MOV память в аккумулятор 5 3
MOV аккумулятор в память 3 3
MOV регистр/память в сегментный регистр 2,5* 2
MOV сегментный регистр в регистр/память 2,3* 2
MOVS байт или слово 5 1
MOVS повторенное CX раз 5 + 4n 2
MUL байтный регистр 13 2
MUL словный регистр 21 2
MUL байт памяти 16* 2
MUL слово памяти 24* 2
NEG 2 2
NOT регистр/память 2,7* 2
OR регистр/память с регистром 2,7* 2
OR значение с регистром/памятью 3,7* 3-4
OR значение с аккумулятором 3 2-3
OUT фиксированный порт 3 2
OUT переменный порт 3 1
OUTS строка 5 + 4m 2


OUTS байт или слово 5 1
POP память 5* 2
POP регистр 5 1
POP сегментный регистр 5 1
POPA 19 1
POPF 5 1

PUSH память 5* 2
PUSH регистр 3 1
PUSH сегментный регистр 3 1
PUSH значение 3 2-3
PUSHA 17 1
PUSHF 3 1
RCA регистр/память на 1 2,7* 2
RCA регистр/память на CX 5+n, 8+n* 2
RCA регистр/память на число 5+n, 8+n* 3
RCR регистр/память на 1 2,7* 2
RCR регистр/память на CX 5+n, 8+n* 2
RCR регистр/память на число 5+n, 8+n* 3
RET внутри сегмента 11 + m 1
RET внутри сегмента, добавляя значение к SP 11 + m 3
RET между сегментами 15 + m 1
RET между сегментами, добавляя значенме к SP 15 + m 3
ROL регистр/память на 1 2,7* 2
ROL регистр/память на CX 5+n, 8+n* 2
ROL регистр/память на число 5+n, 8+n* 3
ROR регистр/память на 1 2,7* 2
ROR регистр/память на CX 5+n, 8+n* 2
ROR регистр/память на число 5+n, 8+n* 3
SAHF 2 1
SAL регистр/память на 1 2,7* 2
SAL регистр/память на CX 5+n, 8+n* 2
SAL регистр/память на число 5+n, 8+n* 3
SAR регистр/память на 1 2,7* 2
SAR регистр/память на CX 5+n, 8+n* 2
SAR регистр/память на число 5+n, 8+n* 3
SBB регистр/память с регистром 2,7* 2
SBB значение с регистром/памятью 3,7* 3-4
SBB значение с аккумулятором 3 2-3
SCAS повторенное CX раз 5+8n 2
SCAS байт или слово 7 1
SEG (переопределение сегмента) 0 1
SHL регистр/память на 1 2,7* 2
SHL регистр/память на CX 5+n, 8+n* 2
SHL регистр/память на число 5+n, 8+n* 3
STC 2 1
STD 2 1
STI 2 1
STOS повторенное CX раз 5+3n 2
STOS 3 1
SAL регистр/память на 1 2,7* 2
SAL регистр/память на CX 5+n, 8+n* 2
SAL регистр/память на число 5+n, 8+n* 3
SUB регистр/память с регистром 2,7* 2


SUB значение с регистром/памятью 3,7* 3-4
SUB значение с аккумулятором 3 2-3
TEST регистр/память с регистром 2,6* 2
TEST значение с регистром/памятью 3,6* 3-4
TEST значение с аккумулятором 3 2-3
WAIT 3 1
XCNG регистр/память с регистром 3,5* 2
XCNG регистр с аккумулятором 3 1
XLAT 5 1
XOR регистр/память с регистром 2,7* 2
XOR значение с регистром/памятью 3,7* 3-4
XOR значение с аккумулятором 3 2-3

Приложение З. Толковый словарь IBM PC.

146818: Микросхема в AT, содержащая часы реального времени и
информацию о конфигурации.

6845: Микросхема контроллера дисплея.

76496: Микросхема синтезатора звука PCjr.

765 (PD765): Микросхема контроллера НГМД.

8048: Микропроцессор клавиатуры.

8237: Микросхема прямого доступа к памяти (DMA).

8250: Микросхема коммуникационного адаптера.

8253: Микросхема программируемого таймера.

8255: Микросхема адаптера интерфейса с периферией.

8259: Микросхема контроллера прерываний.

8087: Микросхема математического сопроцессора на PC, XT и PCjr.

8088: Центральный процессор у PC, XT и PCjr.

80286: Центральный процессор у AT.

80287: Микросхема математического сопроцессора на AT.

Абсолютный адрес: Адрес памяти, выраженный в виде смещения отно-
сительно младшего адреса (0000:0000), а не относительно како-
го-либо определенного смещения в памяти (относительный адрес).

Абсолютные координаты: Координаты, указанные относительно цент-
ральной оси, а не относительно предыдущих используемых координат
(относительные координаты).

Абсолютные сектора диска: Под "доступом к абсолютному сектору
диска" понимается чтение сектора, занимающего определенное поло-
жение на диске.

Код доступа: Этот термин используется в Техническом руководстве
по MS DOS для номера подфункции - т.е. для кода одной из несколь-
ких функций, которые могут выполняться данным прерыванием.

Подтверждение: Сигнал ввода/вывода, индицирующий, что задача
выполнена и оборудование снова готово начать выполнение задачи.

Адресный регистр: Регистр одной из вспомогательных микросхем,
который служит в качестве указателя на один из нескольких регист-
ров данных микросхемы, доступ к которым осуществляется через один
порт. Программа должна сначала индексировать регистр, посылая
номер интересующего регистра в адресный регистр.


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

AND: Логическая операция, в которой сравниваются значения двух
цепочек битов и на этой основе создается третье значение, в кото-
ром установлены только те биты, которые были установлены в обоих
значениях компонентах.

ANSI.SYS: Драйвер устройства, поставляемый вместе с операционной
системой, который способен выполнять многие функции BIOS. Он
используется для достижения программной совместимости с машинами,
использующими MS DOS, отличными от IBM PC.

Коды ASCII: Набор кодов от 0 до 127, соответствующих одному из
128 символов ASCII. IBM PC использует расширенный набор кодов
ASCII, состоящий из 256 символов.

Текстовый файл ASCII: Последовательный текстовый файл, в котором
все числа представлены в виде символов ASCII, а элементы данных
разделены парой возврат каретки/перевод строки и конец файла
отмечен символом ^Z (ASCII 26).

Строка ASCIIZ: То же, что и строка пути.

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

Ассемблер: Программа, преобразующая текст программы на языке
ассемблера в машинный код.

Яэык ассемблера: Язык программирования самого низкого уровня, в
котором программист пишет инструкции непосредственно управляющие
работой процессора.

Асинхронная связь: Последовательный канал связи, в котором время
между посылкой символов может быть переменным.

Атрибут: Характеристика, приписываемая устройству или данным.
Каждый символ текстового экрана имеет атрибуты, определяющие его
цвет, интенсивность и т.д. Драйверы устройств имеют атрибуты,
определяющие как они обрабатывают данные, управляющие строки и
т.д. Файлы могут иметь атрибуты, указывающие, что они являются
скрытыми, только для чтения и т.д.

Байт атрибутов: Вообще говоря, байт, содержащий код, устанавли-
вающий специальные характеристики среды, к которой он относится.
Байт атрибутов файла (в дисковом каталоге) определяет статус
скрытого файла, статус только для чтения и т.п. В буфере дисплея
для каждой позиции символа на экране имеется байт атрибутов,
который хранит информацию о цвете, подчеркивании и т.д.


AUTOEXEC.BAT: Имя командного файла, который автоматически выпол-
няется при загрузке системы.

B: Суффикс, обозначающий число, представленное в двоичном виде,
например, 10111011B. См. приложение А.

Фоновый цвет: Фоновый цвет используется дисплеем. Это тот цвет,
который принимает весь экран, когда он очищен.

Фоновые операции: Вторичный процесс, выполняемый при выполнении
программы. Например, текстовый редактор может посылать данные на
принтер в то время, когда программа используется для редактирова-
ния. Фоновые операции могут работать за счет использования преры-
ваний.

Базовый адрес: Младший из группы смежных адресов портов, через
которые осуществляется доступ к периферийному устройству.

Командный файл: Файл, содержащий список команд и программ DOS,
которые будут автоматически вызываться в том порядке, в котором
они записаны, либо порядок их выполнения может определяться ус-
ловными операторами.

Скорость обмена: Число битов в секунду, которое передается при
обмене.

BIOS: Базовая система ввода/вывода, котораяявляется частью опе-
рационной системы, постоянно хранящейся в ПЗУ машины.

Область данных BIOS: Область данных, начинающаяся с адреса
0040:0000, в которой BIOS хранит статусную информацию и буфер
клавиатуры.

Битовое поле: Когда байт или слово рассматриваются как цепочка
битов, то некоторые биты, взятые вместе, могут хранить определен-
ный элемент информации. Например, биты 0-3 байта атрибутов симво-
ла на дисплее оьразуют битовое поле, которое определяет основной
цвет символа.

Битовые операции: Программные операции, читающие или изменяющие
определенные биты данных.

Битовая плоскость: В EGA видеобуфер разделен на четыре области,
которые называются битовыми плоскостями 0-3. В режиме 16-ти цве-
тов четыре плоскости параллельны, при этом 4 байта, относятся к
определенному адресу памяти (регистры задвижки определяют обмен
данными между процессором и памятью дисплея). В некоторых случаях
плоскости могут быть связаны в цепь, образуя одну или две большие
плоскости.

Блочные устройства: Устройства, которые посылают и принимают
данные порциями в блок. Дисковые накопители являются наиболее
обычными блочными устройствами.


Запись начальной загрузки: Короткая программа, которая помещает-
ся на диск в такой позиции, которая считывается с диска в первую
очередь при загрузке системы. Эта программа дает компьютеру воз-
можность загрузить части операционной системы.

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

Код отпускания: Тип скан-кода, который генерируется при отпуска-
нии клавиши (код нажатия генерируется при нажатии клавиши).

Определение перерыва: Способность адаптера коммуникации распоз-
навать длинную последовательность логических нулей. Это сигнали-
зирует о том, что отдаленная станция хочет перерыва в связи.

Буфер: Область памяти, отводимая для хранения данных, которые
будут передаваться от одной части компьютера к другой. БУфер
используется клавиатурой, то же самое относится и к дисковым
накопителям и дисплею.

Флаг переноса: Один из битов регистра флагов процессора, который
часто используется функциями MS DOS для индикации ошибки.

CD: "Носитель обнаружен". См. DCD.

Связь в цепочку: У EGA видеопамять разделена на 4 битовые плос-
кости. Когда они объединяются в одну или две большие плоскости,
то это называется связью в цепочку.

Символьное устройство: Устройство, которое посылает или прини-
мает данные по одному символу, такие как принтер. Сравните с
блочными устройствами, которые обмениваются данными блоками.

Процесс потомок: Программа, запускаемая когда другая программа
(родитель) имеет управление.

Циклическая очередь: Тип буфера данных, в котором данные встав-
ляются с одного конца, а берутся с другого. Текущие положения
этих двух концов постоянно меняются и два указателя хранят теку-
щие положения "головы" и "хвоста".

Кластер: Группа дисковых секторов, образующая основную единицу,
которая используется при распределении дискового пространства.

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

Кодовый сегмент: Область памяти, хранящая программный код (дру-
гие сегменты хранят данные и стек).


Атрибуты цвета: Цепочки битов, хранимые в видеобуфере, которые
определяют цвет определенной точки или символа на экране. Для
монохромного и цветного адаптера эти атрибуты совпадают с систе-
мой кодовых номеров цвета. Однако для PCjr и EGA относятся к
номеру регистра палетты, а уже этот регистр содержит код цвета, с
которым связан этот атрибут.

Код цвета: Число от 0 до 15, которое относится к одному из шест-
надцати цветов дисплея. Для дисплея EGA, присоединенному к улуч-
шенному графичекому адаптеру, могут быть 64 кода цвета (0-63).

COM: Тип исполняемого файла, в котором привязка уже выполнена и
поэтому все адреса уже правильно записаны в файле перед его заг-
рузкой.

Командная строка: Строка на экране дисплея, принимающая управ-
ляющую информацию, такая как строка, начинающаяся с запроса опе-
рационной системы.

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

Компилятор: Программа, преобразующая текст программы на языке
высокого уровня в файл, содержащий исполняемый машинный код (или,
иногда в промежуточный код, который затем исполняется интерпрета-
тором).

CONFIG.SYS: Имя специального файла, который система просматри-
вает при загрузке. Этот файл содержит информацию о параметрах
системы и драйверах устройств, которые должны быть установлены,
что позволяет установить требуемую конфигурацию системы.

Управляющий блок: См. блок параметров.

Управляющий код: Один из первых 32 символов набора кодов ASCII.
Они обычно используются управления оборудованием, а не кодирова-
ния данных. Наиболее часто употреблямыми управляющими кодами
являются возврат каретки и перевод строки.

Управляющая строка: Строка символов, управляющая оборудованием.
Управляющие строки часто включаются в поток данных, посылаемых
на принтер или модем. Они начинаются со специального символа,
указывающего их специальный статус (обычно, символ ESC, ASCII
27).

CPU: Центральный процессор, который выполняет инструкции, сос-
тавляющие компьютерную программу. У всех IBM PC центральным про-
цессором является микросхема 8088, за исключением PC AT, у кото-
рого процессором служит микросхема 80286.

CRC: См. циклический контроль четности.


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

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

CR/LF: Возврат каретки/перевод строки. Эта пара символов исполь-
зуется, чтобы вызвать перевод курсора или печатающей головки к
началу следующей строки.

CRT: Электронно-лучевая трубка, т.е. видеодисплей.

CTS: Очистка посылки. Сигнал от модема порту коммуникации, инди-
цирующий, что модем готов начать передачу данных. Он является
частью процедуры установления связи.

Текущий блок: Блок данных файла, состоящий из 128 записей, на
который ссылаеися при доступе к файлу методом управляющего блока
файла. См. текущий номер записи.

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

Текущий номер записи: При доступе к файлам методом управляющего
блока файла, данные организованы в блоки по 128 записей. Текущий
номер записи это номер записи в текущем блоке. Например, текущий
номер записи для записи прямого доступа номер 128 будет равен 0,
поскольку она будет первой записью в блоке 1 (весь отсчет начи-
нается с нуля, поэтому запись с номером 128 будет 129-й записью
файла, блок 1 - вторым блоком, а последняя запись блока 0 имеет
номер 127).

Циклический контроль четности: Метод проверки ошибок, в котором
за переданным блоком данных следует вычисленный математически
результат; после приема вычисление повторяется и сравнивается с
переданным, чтобы быть уверенным, что данные переданы без искаже-
ния.

Цилиндр: У дисковых накопителей цилиндром называется группа
дорожек, находящихся на одинаковом расстоянии от центра диска или
дисков, помещенных в накопитель.

Сегмент данных: Область памяти, содержащая данные программы. В
языке ассемблера на эту область указывает регистр DS.

Область переноса данных: Буфер, используемый при доступе к фай-
лам с помощью метода управляющего блока файла, который содержит
данные передаваемые на диск или с диска.


DB: Термин языка ассемблера, указывающий, что объект данных
имеет размер 1 байт, или что это строка состаящая из однобайтовых
кодов.

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

DD: Термин языка ассемблера, индицирующий, что объект данных
имеет длину 4 байта.

DTA по умолчанию: Область переноса данных, размером 128 байтов,
которая выделяется каждой программе и начинается со смещения 80H
в префиксе программного сегмента.

Ограничитель: Специальный символ, разделяющий элементы данных.

Устройство: Вообще говоря, устройством называется любое оборудо-
вание, которое хранит, выводит или обрабатывает информацию, такое
как дисковый накопитель, видеодисплей или принтер.

Драйвер устройства: Программная процедура, управляющая устрйст-
вом, таким как дисковый накопитель или принтер.

Заголовок устройства: Начальная часть процедуры драйвера уст-
ройства, которая идентифицирует устройство.

Обработчик прерывания устройства: Основная часть процедуры драй-
вера устройства; она содержит код, выполняющий основные функции
драйвера.

Стратегия устройства: Часть процедуры драйвера устройства, свя-
зывающая драйвер с заголовком запроса, который является блоком
параметров, который создает система для управления драйвером.

Прямой доступ к памяти: Способ осуществления очень быстрого
обмена между периферийным устройством и памятью. Он особенно
полезен при дисковых операциях. Этот метод использует специальную
микросхему (которая отсутствует у PCjr).