№ | Name | Содержание | Функция | Флаги | Код | |||||||||||
Z | C | S | O | I | T | U | ||||||||||
Обращение к памяти по чтению и записи | ||||||||||||||||
1. 1 | RDB | Чтение байта | R0<= <R1>+R2 | - | - | - | - | - | - | - | 000000 | |||||
2. | RDHW | Чтение полуслова | R0<= <R1>+R2 | - | - | - | - | - | - | - | 000001 | |||||
3. | RDW | Чтение слова | R0<= <R1>+R2 | - | - | - | - | - | - | - | 000010 | |||||
4. | WRB | Запись байта | <R0>=> <R1>+R2 | - | - | - | - | - | - | - | 000011 | |||||
5. | WRHW | Запись полуслова | <R0>= ><R1>+R2 | - | - | - | - | - | - | - | 000100 | |||||
6. | WRW | Запись слова | <R0>=> <R1>+R2 | - | - | - | - | - | - | - | 000101 | |||||
7. | IN | Чтение из порта | R0<=порт<R1> | - | - | - | - | - | - | - | 000110 | |||||
8. | OUT | Запись в порт | R0=>порт<R1> | - | - | - | - | - | - | - | 000111 | |||||
9. | MOV | Обмен RG<>RG | <R0><=<R1> | - | - | - | - | - | - | - | 001000 | |||||
10. | MOVI | Занос в регистр значения | <R0><= R2 | - | - | - | - | - | - | - | 001001 | |||||
Арифметические операции с ФТ | ||||||||||||||||
11. | ADD | Сложение | <R0><= <R1>+<R2> | + | + | + | + | - | - | - | 001100 | |||||
12. | SUB | Вычитание | <R0><= <R1>-<R2> | + | + | + | + | - | - | - | 001101 | |||||
13. | MUL | Умножение | <R0><= <R1>*<R2> | + | + | + | + | - | - | - | 001110 | |||||
14. | DIV | Деление | <R0><= <R1>/<R2> | + | + | + | + | - | - | - | 001111 | |||||
15. | ADDI
| Сложение с неп оп. | <R0><= <R1>+R2 | + | + | + | + | - | - | - | 010000 | |||||
16. | SUBI | Выч. с неп оп. | <R0><= <R1>-R2 | + | + | + | + | - | - | - | 010001 | |||||
17. | MULI | Умн/ с неп оп. | <R0><= <R1>*R2 | + | + | + | + | - | - | - | 010010 | |||||
18. | DIVI | Деление с неп оп. | <R0><= <R1>/R2 | + | + | + | + | - | - | - | 010011 | |||||
Логические оперции с ФТ | ||||||||||||||||
19. | AND | «И» | <R0><= <R1>&<R2> | + | - | + | - | - | - | - | 010100 | |||||
20. | OR | «ИЛИ» | <R0><= <R1>v<R2> | + | - | + | - | - | - | - | 010101 | |||||
21. | XOR | Искл «ИЛИ» | <R0><= <R1>+<R2> | + | - | + | - | - | - | - | 010110 | |||||
22. | NOT | «НЕ» | <R0><= ~<R1> | + | - | + | - | - | - | - | 010111 | |||||
23. | RCL | Циклический сдвиг влево |
| - | + | - | + | - | - | - | 011000 | |||||
24. | RCR | Циклический сдвиг вправо |
| - | + | - | + | - | - | - | 011001 | |||||
Команды переходов и прерываний | ||||||||||||||||
25. | CLI | Очистить флаг разрешения прерываний |
| 0 | 011010 | |||||||||||
26. | INT | Вызов прерывания | <R7><=PC <R6><=flags | + | + | + | + | + | + | + | 011100 | |||||
27. | IRET | Возврат из прерывания | <PC><=R7 flags<=R6 | - | - | - | - | - | - | - | 011101 | |||||
28. | CALL | Вызов подпрограммы | <R7><=PC PC<=<R1>+R2 | - | - | - | - | - | - | - | 011110 | |||||
29. | RET | Возврат из подпрограммы | <PC><=R7
| - | - | - | - | - | - | - | 011111 | |||||
30. | JMP | Безусловный переход | PC<=<R1>+R2 | - | - | - | - | - | - | - | 100000 | |||||
31. | JZ | Переход по нулю | PC<=<R1>+R2 | + | - | - | - | - | - | - | 100001 | |||||
32. | JNZ | Переход не по нулю | PC<=<R1>+R2 | + | - | - | - | - | - | - | 100010 | |||||
33. | JO | Переход по переполнению | PC<=<R1>+R2 | - | - | - | + | - | - | - | 100011 | |||||
34. | JNO | Переход по не переполнению | PC<=<R1>+R2 | - | - | - | + | - | - | - | 100100 | |||||
35. | JC | Переход по переносу | PC<=<R1>+R2 | - | + | - | - | - | - | - | 100101 | |||||
36. | JNC | Переход не по переносу | PC<=<R1>+R2 | - | + | - | - | - | - | - | 100110 | |||||
37. | JS | Переход переход по меньше нуля | PC<=<R1>+R2 | - | - | + | - | - | - | - | 100111 | |||||
38. | JNS
| Переход переход по не меньше нуля | PC<=<R1>+R2 | - | - | + | - | - | - | - | 101000 | |||||
Специальные операции | ||||||||||||||||
39. | RFL | Чтение флагов | R1<=Flags | - | - | - | - | - | - | - | 101001 | |||||
40. | WFL | Запись флагов | <R1>=>Flags | + | + | + | + | + | + | + | 101010 | |||||
41. | RTLBR | Чтение TLBP | R1<=TLB | - | - | - | - | - | - | - | 101011 | |||||
42. | WTLBR | Запись TLBP | <R1>=>TLB | - | - | - | - | - | - | - | 101100 | |||||
43. | RISR | Чтение TINT | R1<=TINT | - | - | - | - | - | - | - | 101101 | |||||
44. | WISR | Запись TINT | <R1>=>TINT | - | - | - | - | - | - | - | 101110 | |||||
45. | RBVA | Чтение BVA | <R0><=BVA | - | - | - | - | - | - | - | 110011 | |||||
46. | RFE | Возврат в пользователя |
| - | - | - | - | - | - | 0 | 101111 | |||||
47. | SCALL | Переход в супервизора |
| - | - | - | - | - | - | 1 | 110000 | |||||
48. | HALT | Ожидание прерывания |
| - | - | - | - | 1 | - | - | 110001 | |||||
49. | NOP | Нет операции | PC<=<PC>+1 | - | - | - | - | - | - | - | 110010 | |||||
Арифметические операции с ПТ | ||||||||||||||||
50. | FADD | Сложение | <F0><= <F1>+<F2> | + | + | + | + | - | - | - | 111000 | |||||
51. | FSUB | Вычитание | <F0><= <F1>-<F2> | + | + | + | + | - | - | - | 111001 | |||||
52. | FMUL | Умножение | <F0><= <F1>*<F2> | + | + | + | + | - | - | - | 111010 | |||||
53. | FDIV | Деление | <F0><= <F1>/<F2> | + | + | + | + | - | - | - | 111011 | |||||
54. | FMOV | Обмен RG<>RG | F0<=<F1> | - | - | - | - | - | - | - | 111100 | |||||
55. | FRDW | Чтение | <F0><= <R1>+R2 | - | - | - | - | - | - | - | 111101 | |||||
56. | FWRW | Запись | <F0><= <R1>+R2 | - | - | - | - | - | - | - | 111110 | |||||
57. | MFC | Преобр ПТ-ФТ | <R0><= <F1> | + | + | + | + | - | - | - | 111111 | |||||
58. | MCF | Преобр ФТ-ПТ | <R0>=> <F1> | + | - | + | + | - | - | - | 111111 | |||||
1 Обращение к памяти по чтению и записи.
С помощью этих команд можно заносить данные и регистров в память и читать их оттуда.
2 Арифметические и логические операции с ФТ
Позволяют производить известные операции с числами с ФТ, которые хранятся в регистрах или с непосредственными операндами
3 Специальные операции.
Позволяют работать с системными регистрами, заносить туда информацию и считывать ее от туда. Команды с 40 по 46 возможны только в режиме супервизора. В пользовательском режиме они недоступны.
4 Арифметические операции с ПТ
Известные операции аналогичные с ФТ, плюс операции сдвигов влево и вправо.