Студопедия — П.1.1. Машинные коды команд базового процессора i8086
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

П.1.1. Машинные коды команд базового процессора i8086






В табл. П.1.1_1 использованы следующие обозначения: r – общий регистр; sr – сегментный регистр; m – адрес ячейки памяти, который указывается в мнемокоде в соответствии с используемым способом адресации; Acc – аккумулятор AH или AL; port – адрес 8-pазpядного порта ввода-вывода; type – тип (вектор) прерывания; disp 8/16 – смещение в формате команды (один или два байта); D8/16 – одно или двухбайтная константа; sbr – имя подпрограммы; diff – разница между адресом перехода и содержимым указателя команд IP; label – метка, к которой осуществляется переход; opcode – команда для сопроцессора. Постбайт (второй байт B2 в табл. П.1.1_1.) состоит из трех полей: md – режим, reg – регистр, r/m – регистр/память.

Таблица П.1.1_1

Машинные коды команд базового процессора i8086

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
1. ASCII- коррекция для сложе- ния AAA        
2. ASCII-коррекция для деления        
AAD        
3. ASCII-коррекция для умножения AAM        
4. ASCII-коррекция для вычитания AAS        

 


Продолжение табл. П.1.1_1

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
5. Сложение с учётом переноса        
ADC r, r/m 0001001w md reg r/m (disp8/16) rr+ r/m+ CF
r/m, r 0001000w md reg r/m (disp8/16) r/mr+ r/m+ CF
r/m, d 1000000w md 010r/m (disp8/16)d8/16 r/mr+ r/m+ CF
r16/m16, d8   md 010r/m data L r/mr/m+ d+ CF
acc, d 0001010w data L (data H) accacc +d+ CF
6. Сложение        
ADD r, r/m 0000001w md reg r/m (disp8/16) rr+ r/m
r/m, r 0000000w md reg r/m (disp8/16) r/mr +r/m
r/m, d 1000000w md 000r/m (disp8/16)d8/16 r/mr/m +d
r16/d16, d8   md000r/m data L r/mr/m +d
acc, d 0000010w data L (data H) accacc +d
7. Логическое И        
And r, r/m 0010001w md reg r/m (disp8/16) rr Ù r/m
r/m, r 0010000w md reg r/m (disp8/16) r/mr Ù r/m
r/m, d 1000000w md 100 r/m data L (data H) r/mr/m Ù d
acc, d 0010010w data L (data H) acc acc Ù d
8. Вызов подпрограммы        
Call near sbr   diff L diff H IPIP+ diff
near r16/m16   md 010 r/m (disp8/16) IPIP+ r/m
far sbr   ip-L ip-H, cs-L, cs-H  
far m32   md 011 r/m (disp8/16) CS, IPm32
9. Преобразование байта в слово        
CBW        
10. Сброс флага переноса CLC       CF0
11. Сброс флага направления        
CLD       DF0
12. Сброс флага прерывания        
CLI       IF0
13. Инверсия флага переноса        
CMC       CF =! CF
14. Сравнение        
CMP r, r/m 0011101w md reg r/m (disp8/16) r-r/m
r/m, r 0011100w md reg r/m (disp8/16) r/m-r
r/m, d 1000000w md 111 r/m (disp8/16)d8/16 r/m-d
r16/m16, d8   md 111 r/m data L r/m-d
acc, d 0011110w data L (data H) acc-d
15. Сравнение строк        
CMPS dst, src 1010011w     [ds: si]-[es: di]
16. Преобразование слова в двойное слово CWD        
17. Десятичная коррекция сложе-ния DAA        
18. Десятичная коррекция вычи- тания DAS        

 

Продолжение табл. П.1.1_1

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
19. Декремент        
DEC r/m 1111111w md 001 r/m (disp8/16) r/mr/m-1
r 01001 reg     rr-1
20. Деление чисел без знака        
DIV r/m 1111011w md 110 r/m (disp8/16)  
21. Переключение на сопроцессор EXC OPCODE, r/m 11011xxx md 001 r/m (disp8/16)  
22. Останов HLT        
23. Деление чисел со знаком        
IDIV r/m 1111011w md 111 r/m (disp8/16)  
24. Умножение чисел со знаком        
IMUL r/m 1111011w md 101 r/m (disp8/16)  
25. Ввод из порта        
Прямой IN acc, port 1110010w port8    
Косвенный IN acc, dx 1110110w      
26. Инкремент        
INC r/m 1111111w md 000 r/m (disp8/16) r/mr/m+1
r 01000 reg     rr+1
27. Прерывание заданного типа        
INT type   type    
Прерывание по переполнению INTO        
Прерывание типа 3 (INT3)        
28. Возврат из прерывания        
IRET        
29. Переход, если выше       CFÚ ZF=0
JA label   diff L   IPIP+diff L
30. Переход, если выше или равно JAE ladel     diff L   CF=0 IPIP+diffL L
31. Переход, если ниже       CF=1
JB ladel   diff L   IPIP+diff L
32. Переход, если ниже или равно       CFÚ ZF=1
JBE label   diff L   IPIP+diff L
33. Переход, если есть перенос       CF=1
JC label   diff L   IPIP+diff L
34. Переход, если СX=0        
JCXZ label   diff L   IPIP+diff L
35. Переход, если равно       ZF=1
JE/JZ label   diff L   IPIP+diff L
36. Переход, если больше       (SFÅ OF)Ú ZF=0
JG label   diff L   IPIP+diff L
         
37. Переход, если больше или равно JGE label     diff L   SFÅ OF=0 IPIP+diff L
38. Переход, если меньше       SFÅ OF=1
JL label   diff L   IPIP+diff L

Продолжение табл. П.1.1_1

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
39. Переход, если меньше или =       (SFÅ OF)Ú ZF=1
JLE label   diff L   IPIP+diff L
40. Безусловный переход        
JMP short label   diff L   IPIP+diff L
near label   diff L diff H IPIP+diff 16
near r16/m16   md 100 r/m (disp8/16) IPIP+r/m
far label   ip-l ip-h, cs-l, cs-h  
far m32   md 101 r/m (disp8/16) CS, IPm32
41. Переход, если нет переноса       CF=0
JNC label   diff L   IPIP+diff L
42. Переход, если не равно       ZF=0
JNE/JNZ   diff L   IPIP+diff L
43. Переход, если нет перепол- нения JNO label     diff L   OF=0 IPIP+diff L
44. Переход, если нет паритета       PF=0
JNP label   diff L   IPIP+diff L
45. Переход, если SF=0        
JNS label   diff L   IPIP+diff L
46. Переход, если есть перепол- нение JO label     diff L   OF=1 IPIP+diff L
47. Переход, если есть паритет       PF=1
JP label   diff L   IPIP+diff L
48. Переход, если паритет нечёт- ный JPO label     diff L   PF=0 IPIP+diff L
49. Переход, если SF=1        
JS label   diff L   IPIP + diff L
50. Загрузка младшего байта FL в регистр AH LAHF         AHFL
51. Загрузка указателя адреса        
LDS r16, m32   md reg r/m (disp8/16) r, dsm32
52. Загрузка эффективного адреса        
LEA r16, m   md reg r/m (disp8/16) rEA
53. Загрузка указателя адреса        
LES r16, m32   md reg r/m (disp8/16) r, esm32
54. Загрузка элемента строки        
LODS src 1010110w     acc [ds: si]
55. Зациклить LOOP label   diff L   IPIP+diff L
56. Зациклить, если равно       (cx≠ 0)& (zf=1)
LOOPE/LOOPZ label   diff L   IPIP+diff L
57. Зациклить если не равно       (cx≠ 0)& (zf=0)
LOOPNE/LOOPNZ label   diff L   IPIP+diff L

 


Продолжение табл. П.1.1_1

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
58. Пересылка        
MOV r, r/m 1000101w md reg r/m (disp8/16) rr/m
r/m, r 1000100w md reg r/m (disp8/16) r/mr
r/m, d 1100011w md 000r/m (disp8/16) d8/d16 r/md
r, d 1011w reg data L (data H) rd
acc, m 1010000w disp L disp H accm
m, acc 1010001w disp L disp H macc
sr, r/m   md 0sr r/m (disp 8/16) srr/m
r/m, sr   md 0sr r/m (disp 8/16) r/msr
59. Передача элемента строки        
MOVS dst, src 1010010w     [es: di][ds: si]
60. Умножение чисел без знака        
MUL r/m 1111011w md 100 r/m (disp 8/16)  
61. Изменение знака числа        
NEG r/m 1111011w md 011 r/m (disp 8/16) r/m 0-r/m
62. Пустая операция NOP        
63. Логическое НЕ NOT 1111011w md 010 r/m (disp8/16)  
64. Логическое ИЛИ        
or r, r/m 0000101w md reg r/m (disp8/16) rr Ú r/m
r/m, r 0000100w md reg r/m (disp8/16) r/mr/m Ú r
r/m, d 1000000w md 001 r/m (disp8/16) d8/16 r/mr/rm Ú d
acc, d 0000110w data L (data H) accacc Ú d
65. Вывод в порт        
Прямой Out acc, port 1110011w port 8    
Косвенный Out acc, dx 1110111w      
66. Чтение из стека POP r/m   md 110 r/m (disp8/16)  
r 01011reg      
sr 000sr111      
67.Чтение флагов из стека POPF        
         
68. Запись в стек PUSH r/m   md 110 r/m (disp8/16)  
r 01010 reg      
sr 000 sr 110      
69. Запись регистра флагов в стек        
PUSHF        
70. Циклический сдвиг влево через CF RCL r/m, 1   1101000w   md 010 r/m   (disp8/16)  
r/m, CL 1101001w md 010 r/m (disp8/16)  
71.Циклический сдвиг вправо через CF RCR r/m, 1   1101000w   md 011 r/m   (disp8/16)  
r/m, CL 1101001w md 011 r/m (disp8/16)  

 


Продолжение табл. П.1.1_1

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
72. Возврат из подпрограммы        
RET (near)       ip← (ss: sp)
RET (far)       ip← (ss: sp) cs← (ss: sp+2)
Возврат с прибавлением числа d        
d=2k, где 2к-число параметров RET d (near)   data L data H ip← (ss: sp) sp=sp+d
RET d (far)   data L data H ip← (ss: sp) cs← (ss: sp+2) sp=sp+d
73. Циклический сдвиг влево        
ROL r/m, 1 1101000w md 000 r/m (disp8/16)  
r/m, CL 1101001w md 001 r/m (disp8/16)  
74. Циклический сдвиг вправо        
ROR r/m, 1 1101000w md 001 r/m (disp8/16)  
r/m, CL 1101001w md 001 r/m (disp8/16)  
75. Пересылка АН в регистр флагов SAHF        
76. Арифметический (логический) сдвиг влево        
SAL/SHL r/m, 1 1101000w md 100 r/m (disp8/16)  
r/m, CL 1101001w md 100 r/m (disp8/16)  
77. Арифметический сдвиг впра- во SAR r/m, 1   1101000w   md 111 r/m   (disp8/16)  
r/m, CL 1101001w md 111 r/m (disp8/16)  
78. Вычитание с заёмом        
SBB r, r/m 0001101w md reg r/m (disp8/16) rr-r/m-CF
r/m, r 0001100w md reg r/m (disp8/16) r/mr-r/m-CF
r/m, d 1000000w md 011 r/m (disp8/16) r/mr/m-d-CF
r16/m16, d8   md 011 r/m (disp8/16) r/mr/m-d-CF
acc, d 0001110w data L data H accacc-d-CF
79. Сканировать элемент строки        
SCAS dst 1010111w     acc-[es: di]
80. Логический сдвиг влево SHL r/m, 1 r/m, cl   1101000w 1101001w   md 100 r/m md 100 r/m   (disp 8/16) (disp 8/16)  
81. Логический сдвиг вправо        
SHR r/m, 1 1101000w md 101 r/m (disp8/16)  
r/m, cl 1101001w md 101 r/m (disp8/16)  
82. Установка флага cf STC       CF=1
83.Установка флага направления        
STD       DF=1
84. Установка флага прерывания        
STI       IF=1
85. Сохранение Aсc в строке        
STOS dst 1010101w     [es: di]acc

 

Окончание табл. П.1.1_1

Команда Байты кода команды Содержание операции
В1 В2 В3-В6
86. Вычитание        
SUB r, r/m 0010101w md reg r/m (disp8/16) rr-r/m
r/m, r 0010100w md reg r/m (disp8/16) r/mr-r/m
r/m, d 1000000w md 101 r/m (disp8/16) d8/16 r/mr/m-d
r16/m16, d8   md 101 r/m data L r/mr/m-d
acc, d 0010110w data L (data H) accacc-d
87.Проверка (неразрушающее И)        
TEST r, r/m 1000010w md reg r/m (disp8/16) rÙ r/m
r/m, d 1111011w md 000 r/m (disp8/16) d8/16 r/mÙ d
acc, d 1010100w data L (data H) accÙ d
88. Ожидание WAIT        
89. Обмен XCHG ax, r 10010 reg     ax«r
r, ax 10010 reg     r«ax
r, r/m m, r 1000011w 1000011w md reg r/m md reg r/m (disp 8/16) (disp 8/16) r«r/m m«r
90. Табличная трансляция XLAT        
91. Исключающее ИЛИ        
xor r, r/m 0011001w md reg r/m (disp 8/16) rr Å r/m
r/m, r 0011000w md reg r/m (disp 8/16) r/mr Å r/m
r/m, d 1000000w md 100 r/m (disp 8/16) d8/16 r/mr/m Å d
acc, d 0011010w data L (data H) accacc Å d
Префикс блокировки шины LOCK        
Повторять строковую операцию        
REP/REPE/REPZ        
REPNE/REPNZ        
Префикс замены сегмента SEG 001 sr 110      






Дата добавления: 2014-11-10; просмотров: 784. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

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

Правила наложения мягкой бинтовой повязки 1. Во время наложения повязки больному (раненому) следует придать удобное положение: он должен удобно сидеть или лежать...

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

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия