Радиоавтоматика и МП / бр3995
.pdfК командам простого циклического сдвига относятся:
ROL (Rotate Left) – сдвигаемые влево биты записываются в тот же опе- ранд справа (рис. 11).
0
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Флаг cf
Рис.11. Схема работы команды простого циклического сдвига вправо ROL
ROR (Rotate Right) – сдвигаемые вправо биты записываются в тот же операнд (рис.12).
Флаг cf
Рис.12. Схема работы команды простого циклического сдвига влево ROR
Команды циклического сдвига через флаг переноса CF отличаются от команд простого циклического сдвига тем, что сдвигаемый бит не сразу попадает в операнд с другого его конца, а сначала записывается во флаг переноса CF. К таким командам относятся следующие:
RCL (Rotate through Carry Left) – циклический сдвиг влево через перенос. Сдвигаемые биты поочерёдно становятся значением флага CF
(рис. 13).
Флаг cf
Рис.13. Схема работы команды циклического сдвига влево через флаг переноса ROR
41
RCR (Rotate through Carry Right) – циклический сдвиг вправо через перенос. Сдвигаемые биты поочерёдно становятся значением флага CF
(рис. 14.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
0
Флаг cf
Рис.14. Схема работы команды циклического сдвига вправо через флаг переноса RСR
Варианты заданий к лабораторной работе 6
При разработке программ использовать выше рассмотренные команды.
1.Сформировать массив из 10 двухбайтных чисел. Найти максимальное зна- чение, поделить его на 4 и поместить в один из регистров процессора. Все остальные числа переместить в другой массив.
2.Сформировать массив из 10 двухбайтных чисел. Найти минимальное зна- чение, умножить его на 8 и поместить в один из регистров процессора. Все остальные числа переместить в другой массив.
3.Сформировать два массива из 10 однобайтных чисел. Посчитать количест- во одинаковых чисел и поместить это число в регистр СХ.
4.Сформировать массив из 10 двухбайтных чисел. Найти в массиве число 55 и его номер поместить в регистр ВН.
5.Сформировать два массива из 10 однобайтных чисел. Посчитать количест- во неодинаковых чисел и поместить это число на место первого элемента массива.
6.Сформировать массив из 10 однобайтных чисел. Найти максимальное зна- чение, проверить его старший разряд и, если он равен единице, поместить в один из регистров процессора. В противном случае поместить в память.
7.Написать программу поиска числа ААН в массиве из десяти чисел. В слу- чае отсутствия такого числа переместить весь массив другое место памяти.
8.Написать программупоиска чисел ААН и 33Н в массиве из десяти чисел. В случае наличия таких чисел помножить каждое число из массива и пере- слать в другое место памяти.
9.Написать программу умножения каждого числа из массива, состоящего из десяти чисел, на 16. Все чётные числа переписать в другой массив.
10.Сформировать массив из десяти однобайтных чисел, найти среди них числа, превышающие число 48Н, переписать их в другой массив, умножив на два.
42
ЛИТЕРАТУРА И ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ
Основная литература
1.Юров, В. ASSEMBLER: учебник/ В.Юров. – СПб.: Питер, 2002.
2.Нарышкин, А.К. Цифровые устройства и микропроцессоры: учеб. пособие для студентов вузов/ А.К.Нарышкин. – М.: Академия, 2006.
3.Юров, В. ASSEMBLER: практикум/ В.Юров. – СПб.: Питер, 2003.
4.Брэй, Барри. Микропроцессоры Intel: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro Processor, Pentium 4. Архитектура, программирование и
интерфейсы/ Барри Брэй. – СПб.: БХВ-Петербург, 2005.
5.Галисеев, Г.В. АССЕМБЛЕР IBM PC: самоучитель/ Г.В. Галисеев. – М.: Диалектика, 2004.
6.Зубков, С. В. Assembler дя DOS, Windows и UNIX/ С.В. Зубков . – СПб.: Питер, 2004.
7.Микропроцессорный комплект К1810. Структура, программирование/ под ред. Ю. М. Казаринова. – М.: Высш. шк., 1995.
8.Панов, А. Ассемблер/ А. Панов. – СПб.: БХВ-Петербург, 2006.
Дополнительная литература
9.Гук, М. Процессоры INTEL от 8086 до PENTIUM / М. Гук.– Л.: Питер, 1997.
10.Григорьев, В. Л. Программирование однокристальных микропроцессоров/ В.Л. Григорьев. – М.: Энергоатомиздат, 1999.
11.Юров, В. Assembler: спец. справочник/ В.Юров. – СПб.: Питер, 2000.
12.Григорьев, В. Л. Микропроцессоры I486. Архитектура и программирование. Кн. 1, 2, 3, 4/ В.Л. Григорьев. – М.: Гранал, 1998.
13.Скэнлон, Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера/ Л. Скэнлон. – М.: Радио и связь,1996 .
14.Рудаков, П. И. Программируем на языке ассемблера IBM PC/ П.И. Рудаков, К.Г. Финогенов.– Обнинск: Принтер, 1997.
15.Ю-Чжен-Лю, Микропроцессоры семейства 8086/8088 / Ю-Чжен-Лю, Г. Гибсон. – М.: Радио и связь,1997.
16.Точчи, Рональд Дж. Нил С.Уидмер Цифровые системы. Теория и практика /Рональд Дж. Точчи, Нил С.Уидмер. – М.: Вильямс, 2004.
17.Брамм, П. Микропроцессор 80386 и его программирование/
18.П. Брамм, Д. Брамм. – М.: Мир, 1992.
19.Дао, Л. Программирование микропроцессора 8088/ Л. Дао. – М.: Мир, 1993.
Методическая литература
1.Мичурина, М.М. Цифровые устройства и микропроцессоры. Архитектура микро- процессоров INTEL: метод. указания/ М.М. Мичурина. – Красноярск: КГТУ, 2004. – 60 с.
2.Мичурина, М.М. Освоение ассемблера: метод. указания/ М.М. Мичурина, И. Н. Сушкин. – Красноярск: КГТУ, 2002. – 40 с.
3.Мичурина, М.М. Методические указания к лабораторным работам по дисциплине ЦУ и МП/ М. М. Мичурина, И. Н. Сушкин. – Красноярск: КГТУ, 2001.
4.Микропроцессор 80386. Методические указания для студентов специальности 2007 –“ Радиотехника”/ сост. М. М. Мичурина, И. Н. Сушкин. – Красноярск: КГТУ, 1996. –
41с.
43
ПРИЛОЖЕНИЯ Приложение 1
|
|
|
Таблица 1 |
|
|
Директивы ассемблера |
|
Группа |
№ п/п |
Директива |
Назначение |
директив |
|
|
директивы |
Управления сегмен- |
1 |
SEGMENT |
Определяет начало (имя) сегмента |
тированием и счетчи- |
|
|
Определяет конец сегмента |
ком команд |
2 |
ENDS |
Определяет содержимое сегментных |
|
3 |
ASSUME |
регистров |
|
|
|
Определяет адрес размещения команд |
|
4 |
ORG |
или данных |
|
|
|
Определяет список объектов которые |
|
5 |
GROUP |
должны быть размещены в одном блоке |
|
|
|
памяти объемом 64 К |
|
|
|
Определяет метки программы |
|
6 |
LABEL |
|
Определения данных |
7 |
DB |
Определяет байты памяти |
|
8 |
DW |
Определяет два байта памяти |
|
9 |
DD |
Определяет четыре байта памяти |
|
10 |
DQ |
Определяет восемь байтов памяти |
|
|
|
Определяет десять байтов памяти |
|
11 |
DT |
|
Определения симво- |
12 |
EQU |
Определяет имя переменной |
лов |
13 |
PURGE |
Отменяет ранее определенное имя пере- |
|
|
|
менной |
Определения макро- |
16 |
CODEMACRO |
Вводит макроопределение |
средств |
17 |
ENDM |
Определяет конец макроопределения |
|
|
|
Распределяет имена и размерности по- |
|
18 |
RECORD |
лей (в битах) при определении записей в |
|
|
|
макроопределениях |
|
|
|
Определяет необходимость префикса |
|
|
|
замены |
|
19 |
SEGFIX |
Проверяет соответствие указанного ад- |
|
|
|
реса текущему сегменту |
|
20 |
NOSEGFIX |
Задает значение полей в записях |
|
|
|
Определяет необходимость генерации 8- |
|
|
|
зарядного смещения при передачи |
|
21 |
MODRM |
управления |
|
22 |
RELB |
Определяет необходимость генерации |
|
|
|
16-зарядного смещения при передаче |
|
|
|
управления |
|
23 |
RELW |
|
Связывания модулей |
24 |
PUBLIC |
Определяет имена, общие для разных |
|
|
|
модулей программ |
|
25 |
EXTRN |
Задает список имен переменных, разме- |
|
|
|
щенных в других модулях программ |
|
|
|
Определяет имя объектного модуля про- |
|
26 |
NAME |
граммы, полученной в результате ас- |
|
|
|
семблирования |
|
|
|
Конец ассемблирования |
|
27 |
END |
|
|
|
44 |
|
Группа |
№ п/п |
Оператор |
Назначение |
Вспомогательных |
|
|
оператора |
операторов |
|
|
|
Определения место- |
1 |
PTR |
Формирует адрес переменной или пере- |
положения команд и |
|
|
менную |
данных |
2 |
NEAR |
Определяет метку в текущем сегменте |
|
|
|
Определяет метку вне текущего сегмен- |
|
3 |
FAR |
та |
|
|
|
Вводит в программу тип переменной |
|
4 |
THIS |
Тир выравнивания, указывающий на на- |
|
|
|
чальный адрес сегмента, заканчиваю- |
|
5 |
PARA |
щийся цифрой 0H |
|
|
|
Тип выравнивания, указывающий на на- |
|
|
|
чальный адрес сегмента, заканчиваю- |
|
6 |
PAGE |
щийся цифрами 00H |
|
|
|
Тип выравнивания, указывающий, что |
|
|
|
весь сегмент должен быть расположен в |
|
7 |
INPAGE |
пределах страницы в 256 байт |
|
|
|
Тип выравнивания, допускающий любое |
|
|
|
смещение |
|
|
|
Тип выравнивания, допускающий четное |
|
8 |
BYTE |
смещение (полный начальный адрес |
|
|
|
сегмента четный) |
|
9 |
WORD |
|
|
|
|
|
Связывания модулей |
10 |
AT |
Определяет начальный адрес сегмента |
программ |
|
|
Определяет последовательное располо- |
|
11 |
STACK |
жение стековых сегментов модулей про- |
|
|
|
грамм в памяти |
|
|
|
Определяет общую область памяти мо- |
|
12 |
COMMON |
дулей программ |
|
|
|
Аналогичен COMMON, но сегмент рас- |
|
13 |
MEMORY |
полагается последним |
|
|
|
Определяет сегментную компоненту ад- |
|
14 |
SEG |
реса переменной |
|
|
|
Определяет относительную компоненту |
|
15 |
OFFSET |
адреса (исполнительный адрес перемен- |
|
|
|
ной) |
|
|
|
Определяет тип переменной |
|
|
|
Определяет число компонент перемен- |
|
16 |
TYPE |
ной (массива) |
|
17 |
LENGTH |
Определяет число байтов, занимаемых |
|
|
|
переменной (массивом) |
|
18 |
SIZE |
Определяет число битов, занимаемых |
|
|
|
переменной (массивом) |
|
|
|
Выделяет младший байт слова |
|
19 |
WIDTH |
Выделяет старший байт слова |
|
20 |
LOW |
|
|
21 |
HIGH |
|
|
|
|
|
45
Группа |
№ п/п |
Оператор |
Назначение |
Вспомогательных |
|
|
оператора |
операторов |
|
|
|
|
22 |
DUP |
Задает массивы данных |
|
23 |
SHORT |
Указывает, что для хранения значения |
|
|
|
достаточно одного байта |
Специального назна- |
24 |
PROCLEN |
Определяет удаленность процедуры (0 |
чения |
|
|
процедура размещена в текущем про- |
|
|
|
граммном сегменте, FFH – процедура |
|
|
|
размещена вне текущего сегмента) |
|
|
|
Для отмены сегментных регистров, на- |
|
25 |
NOTHING |
значенных директивой ASSUME (после |
|
|
его использования для каждого операнда |
|
|
|
|
|
|
|
|
необходимо задавать префиксы сегмен- |
|
|
|
тов в явном виде) |
|
|
PREFIX |
Определение префикса |
|
|
|
|
|
26 |
|
|
Приложение 2
|
|
|
Таблица 2 |
|
|
|
Программное обеспечение дисциплины |
||
№ |
№ раздела курса |
Разработчик программы |
Название программного про- |
|
п/п |
|
|
дукта |
|
1 |
2,3 |
MicroSoft |
Turbo Assembler |
|
2 |
2,3 |
MicroSoft |
Turbo Link |
|
3 |
2,3 |
MicroSoft |
Turbo Debugger |
|
|
2,3 |
|
|
|
Приложение 3
Система команд микропроцессора К1810ВМ86
В таблице 2 приведена полная система команд центрального процессора К1810ВМ86 со всеми данными, необходимыми для её использования. При этом приняты следующие обозначения: Е – число тактов, затрачиваемое на вычисление исполнительного адреса ЕА операнда, находящегося в памяти; п– число тактов, требуемое для выполнения команды; r
– регистр ЦП; seg – сегментный регистр
46
47
Приложение 4
|
|
|
|
|
|
|
|
Таблица 3 |
|
|
|
|
|
Система команд микропроцессора I8086/8088 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
Группа |
|
Номер |
Мнемокод |
|
nт |
Байты формата команды |
Описание команды |
||
команд |
|
команды |
|
нечетный |
четный |
||||
|
|
|
|
|
|
||||
Пересылка |
1 |
MOV r, r |
|
2 |
|
|
Pг ← Pг |
|
|
данных |
|
|
|
|
|
100010 dw |
mod reg r/m |
|
|
|
2 |
MOV r, mem |
|
8 + E |
Pг ← П |
||||
|
|
|
|
||||||
|
3 |
MOV mem, r |
|
9 + E |
|
|
П ← Pг |
|
|
|
4 |
MOV mem, data |
|
10 + E |
1100011 w |
mod 000 r/m |
П ← Д |
|
|
|
|
|
|
|
|
data L |
data H (w = 1) |
|
|
|
5 |
MOV r, data |
|
4 |
1011 w reg |
data L |
Pг ← Д |
|
|
|
|
|
|
|
|
data H (w = 1) |
|
|
|
|
6 |
MOV a, mem |
|
10 |
101000dw |
addr L |
A ← П |
|
|
|
|
|
|
|
|
addr H |
|
|
|
|
7 |
MOV mem, a |
|
10 |
|
|
П ← A |
|
|
|
8 |
MOV seg, r |
|
2 |
|
|
Сегментный Pг ← Pг |
|
|
|
9 |
MOV seg, mem |
|
8 + E |
100011d 0 |
mod 0 seg r/m |
Сегментный Pг ← П |
|
|
|
10 |
MOV r, seg |
|
2 |
Pг ← сегментный Pг |
||||
|
|
|
|
||||||
|
11 |
MOV mem, seg |
|
9 + E |
|
|
П ← сегментный Pг |
|
|
|
12 |
PUSH r |
|
10 |
11111111 |
mod 110 r/m |
Cтек ← Pг |
|
|
|
13 |
PUSH mem |
|
16 + E |
Cтек ← П |
||||
|
|
|
|
||||||
|
14 |
PUSH r |
|
10 |
01010 reg |
– |
Cтек ← Pг |
|
|
|
15 |
PUSH seg |
|
10 |
000 seg 110 |
– |
Стек ← сегментный Pг |
|
|
|
16 |
POP r |
|
8 |
10001111 |
mod 000 r/m |
Pг ← стек |
|
|
|
17 |
POP mem |
|
17 + E |
П ← стек |
||||
|
|
|
|
||||||
|
18 |
POP r |
|
8 |
01011 reg |
– |
Pг ← стек |
|
|
|
19 |
POP seg |
|
8 |
000 seg 111 |
– |
Сегментный Pг ← стек |
|
|
|
20 |
XCHG r, mem |
|
17 + E |
1000011 w |
mod reg r/m |
Pг ↔ П |
|
|
|
|
|
|
|
|
|
|
||
|
21 |
XCHG r, r |
|
4 |
Pг ↔ Рг |
|
|||
|
|
|
|
||||||
|
|
22 |
XCHG AX, r |
|
3 |
10010 reg |
– |
A ↔ Pг |
|
|
|
23 |
IN port |
|
10 |
1110010 w |
port |
A ← порт |
|
|
|
|
|
|
|
47 |
|
|
|
|
|
24 |
IN |
8 |
1110110 w |
– |
A ← [DX] |
|
|
25 |
OUT port |
10 |
1110011 w |
port |
Порт ← А |
|
|
26 |
OUT |
8 |
1110111 w |
– |
[DX] ← А |
|
|
27 |
LEA r |
2 + E |
10001101 |
mod reg r/m |
Pг ← EA |
|
|
28 |
LDS r, mem |
16 + E |
11000101 |
mod reg r/m |
Pг и DS ← П |
|
|
29 |
LES r, mem |
16 + E |
11000100 |
mod reg r/m |
Pг и ES ← П |
|
|
30 |
LAHF |
4 |
10011111 |
– |
AH ← FL |
|
|
31 |
SAHF |
4 |
10011110 |
– |
FL ← AH |
|
|
32 |
PUSHF |
10 |
10011100 |
– |
Стек ← F |
|
|
33 |
POPF |
8 |
10011101 |
– |
F ← Стек |
|
Арифмети- |
34 |
ADD rl, r2 |
3 |
|
|
Pг ← Pг + Pг |
|
ческие дей- |
|
|
|
|
|
|
|
ствия |
|
|
|
000000 dw |
mod reg r/m |
|
48 |
|
35 |
ADD r, mem |
9 + E |
Pг ← Pг + П |
||
|
|
|
|||||
|
|
36 |
ADD mem, r |
16 + E |
|
|
П ← Pг + Pг |
|
|
37 |
ADD r, data |
4 |
100000 sw data L |
mod 000 r/m |
Pг ← Pг + Д |
|
|
|
|
|
|
data H (sw = 01) |
|
|
|
38 |
ADD mem, data |
17 + E |
|
|
П ← П + Д |
|
|
39 |
ADD a, data |
4 |
0000010 w |
data L |
А ← А + Д |
|
|
|
|
|
data H (w = 1) |
|
|
|
|
|
|
|
|
|
|
|
|
40 |
ADC rl, r2 |
3 |
|
|
Pг ← Pг + Pг + CF |
|
|
41 |
ADC r, mem |
9 + E |
000100 dw |
mod reg r/m |
Pг ← Pг + П + CF |
|
|
42 |
ADC mem, r |
16 + E |
|
|
П ← П + Pг + CF |
|
|
43 |
ADC r, data |
4 |
1 0 0 0 0 0 sw |
mod 0 10 r/m |
Pг ← Pг + Д + CF |
|
|
44 |
ADC mem, data |
17 + E |
data L |
data H (sw = 0) |
П ← П + Д + CF |
|
|
45 |
ADC a, data |
4 |
0 0 01 0 1 0 w |
data L |
А ← А + Д + CF |
|
|
|
|
|
data H (w = 1) |
|
|
|
|
46 |
INC r |
2 |
1 1 1 1 1 1 1 w |
mod 0 0 0 r/m |
Pг ← Pг + 1 |
|
|
|
|
|
48 |
|
|
49
|
47 |
INC mem |
15 + E |
|
|
|
|
П ← П + 1 |
||
|
48 |
INC r |
2 |
0 1 0 0 0 reg |
|
– |
Pг ← Pг (8) + 1 |
|||
|
49 |
SUB r l, r 2 |
3 |
|
|
|
|
Pг ← Pг – P г |
||
|
50 |
SUB r, mem |
9 + E |
0 0 1 0 1 0 dw |
|
mod reg r/m |
Pг ← Pг – |
П |
||
|
51 |
SUB mem, r |
16 + E |
|
|
|
|
П ← П – P г |
||
|
52 |
SUB r, data |
4 |
1 0 0 0 0 0 sw |
mod 1 0 1 r/m |
Pг ← Pг – |
Д |
|||
|
|
|
|
data L |
data (sw + 01) |
|
|
|
||
|
53 |
SUB mem, data |
17 + E |
|
|
|
|
П ← П – |
Д |
|
|
54 |
SUB a, data |
4 |
0 0 1 0 1 1 0 w |
data L |
А ← А – |
Д |
|||
|
|
|
|
data H (w = 1) |
|
|
|
|
|
|
|
55 |
SBB r l, r2 |
3 |
|
|
|
|
Pг ← Pг – P г – CF |
||
|
56 |
SBB r, mem |
9 + E |
0 0 0 1 1 0 dw |
|
mod reg r/m |
Pг ← Pг – П – CF |
|||
|
57 |
SBB mem, r |
16 + E |
|
|
|
|
Pг ← Pг – P г – CF |
||
|
58 |
SBB r, data |
4 |
1 0 0 0 0 0 sw |
mod 0 1 r/m |
Pг ← Pг – Д – CF |
||||
|
|
|
|
data L |
data H (sw = 01) |
|
|
|
||
|
59 |
SBB mem, data |
17 + E |
|
|
|
|
П ← П – |
Д – CF |
|
|
60 |
SBB а, data |
4 |
0 0 0 1 1 1 0 w |
data L |
А ← А – |
Д |
|||
|
|
|
|
data H (w = 1) |
|
|
|
|
|
|
|
61 |
DEC r |
2 |
1 1 1 1 1 1 1 w |
|
mod 0 0 1 r/m |
Pг ← Pг – 1 |
|||
|
62 |
DEC mem |
155 + E |
|
П ← П – 1 |
|
|
|||
|
|
|
|
|
|
|
||||
|
63 |
DEC r |
2 |
0 1 0 0 1 reg |
|
– |
Pг ← Pг (8) – 1 |
|||
|
64 |
NEG r |
3 |
1 1 1 1 0 1 1 w |
|
mod 0 1 1 r/m |
Pг ← 0 – P г |
|||
|
65 |
NEG mem |
16 + E |
|
П ← 0 – П |
|
|
|||
|
|
|
|
|
|
|
||||
|
66 |
CMP r l, r2 |
3 |
|
|
|
|
Pг – P г |
|
|
|
67 |
CMP r, mem |
9 + E |
0 0 1 1 1 0 dw |
|
mod reg r/m |
Pг – П |
|
Результат |
|
|
68 |
CMP mem, r |
16 + E |
|
|
|
|
П – P г |
|
|
|
69 |
CMP r, data |
4 |
1 0 0 0 0 0 sw |
|
mod 1 1 1 r/m |
Pг – Д |
|
определяется |
|
|
|
|
|
|
data L |
|
|
|
по флагам |
|
|
|
|
|
|
|
|
data H (w = 1) |
|
|
|
|
70 |
CMP mem, data |
17 + E |
|
|
П – Д |
|
|
||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
CMP a, data |
4 |
0 0 1 1 1 1 0 w |
data L |
А – Д |
|
|
|
|
|
|
|
|
|
data H (w = 1) |
|
|
|
|
|
|
72 |
MUL src |
71 + E |
1 1 1 1 0 1 1 w |
mod 1 0 0 r/m |
AX ← AL × источник (при |
||||
|
|
|
|
124 + E |
|
|
ω = 0) |
|
|
|
|
|
|
|
|
|
|
DX, AX ← AX × источник |
|||
|
|
|
|
|
|
|
(при ω = 1) |
|
|
|
|
73 |
IMUL src |
90 + E |
1 1 1 1 0 1 1 w |
mod 1 0 0 r/m |
DX, AX ← AX × источник |
||||
|
|
|
|
144 + E |
|
|
(при ω = 1) со знаком |
|
||
|
74 |
DIV src |
90 + E |
1 1 1 1 0 1 1 w |
mod 1 1 0 r/m |
AL ← AX/источник |
|
|||
|
|
|
|
|
|
|
AH ← остаток (при ω = 0) |
|||
|
|
|
|
155 + E |
|
|
AX ← DХ, AX/источник |
|
||
|
|
|
|
|
|
|
DX ← остаток (при ω = 1) |
|||
|
75 |
IDIV src |
112 + E |
1 1 1 1 0 1 1 w |
mod 1 1 1 r/m |
AL ← AX/источник |
|
|||
|
|
|
|
|
|
|
AH ← остаток (при ω = 0) |
|||
|
|
|
|
|
|
|
AX ← DX, AX/источник |
|
||
|
|
|
|
|
|
|
DX ← остаток (при ω = 1) |
|||
50 |
|
|
|
|
|
|
со знаком |
|
|
|
|
76 |
DAA |
4 |
0 0 1 0 0 1 1 1 |
– |
Десятичная |
коррекция |
при |
||
|
|
|
|
|
|
|
сложении упакованных 2–10 |
|||
|
|
|
|
|
|
|
чисел |
|
|
|
|
77 |
DAS |
4 |
0 0 1 0 1 1 1 1 |
– |
Десятичная |
коррекция |
при |
||
|
|
|
|
|
|
|
вычитании |
упакованных |
||
|
|
|
|
|
|
|
2–10 чисел |
|
|
|
|
78 |
AAA |
4 |
0 0 1 1 0 1 1 1 |
– |
Коррекция |
кода |
ASCII |
при |
|
|
|
|
|
|
|
|
сложении |
|
|
|
|
79 |
AAS |
4 |
0 0 1 1 1 1 1 1 |
– |
Коррекция |
кода |
ASCII |
при |
|
|
|
|
|
|
|
|
вычитании |
|
|
|
|
80 |
AAM |
83 |
1 1 0 1 0 1 0 0 |
0 0 0 0 1 0 1 0 |
Коррекция |
кода |
ASCII |
при |
|
|
|
|
|
|
|
|
умножении |
|
|
|
|
81 |
AAD |
60 |
1 1 0 1 0 1 0 1 |
0 0 0 0 1 0 1 0 |
Коррекция |
кода |
ASCII |
при |
|
|
|
|
|
|
|
|
делении |
|
|
|
|
82 |
СBW |
5 |
1 0 0 1 1 0 0 0 |
– |
AH ← знак AL |
|
|
||
|
|
|
|
|
50 |
|
|
|
|
|