П.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
|
|
|
|
Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...
|
Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...
|
Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...
|
Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...
|
Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...
Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...
Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...
|
Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ
Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...
Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...
Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры.
2. Исследовались не только человеческая...
|
|