Intel 8080/Коды команд: различия между версиями
Panther (обсуждение | вклад) (Новая: {{Emuverse}} == Таблица кодов == {| class="fixed" !Код<sub>2</sub> || Код<sub>16</sub> || Данные || Команда || Действие || Флаги || Такт...) |
Panther (обсуждение | вклад) мНет описания правки |
||
Строка 182: | Строка 182: | ||
* 111: NEGATIVE | * 111: NEGATIVE | ||
[[Категория:Intel 8080]] | [[Категория:Intel 8080|Коды команд]] |
Версия от 10:57, 18 октября 2007
Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0. |
Таблица кодов
Код2 | Код16 | Данные | Команда | Действие | Флаги | Такты |
---|---|---|---|---|---|---|
Группа 00 | ||||||
00 000 000 | 00 | NOP | ||||
00 001 000 | 08 | ? | ||||
00 010 000 | 10 | ? | ||||
00 011 000 | 18 | ? | ||||
00 100 000 | 20 | ? (8085: RIM) | 8085: READ INT MASK | |||
00 101 000 | 28 | ? | ||||
00 110 000 | 30 | ? (8085: SIM) | 8085: SET INT MASK | |||
00 111 000 | 38 | ? | ||||
00 RP1 001 | DAD RP | HL <- HL + RP | ||||
00 RP0 001 | DATA16 | LXI RP, DATA16 | RP <- DATA16 | 3 | ||
00 0R0 010 | STAX [R], A | [R] <- A | 2 | |||
00 0R1 010 | LDAX A, [R] | A <- [R] | 2 | |||
00 100 010 | 22 | ADDR16 | SHLD ADDR16 | [ADDR16] <- HL | 5 | |
00 101 010 | 2A | ADDR16 | LHLD ADDR16 | HL <- [ADDR16] | 5 | |
00 110 010 | 32 | ADDR16 | STA ADDR16 | [ADDR16] <- A | 4 | |
00 111 010 | 3A | ADDR16 | LDA ADDR16 | A <- [ADDR16] | 4 | |
00 RP1 011 | DCX RP | RP <- RP-1 | ||||
00 RP0 011 | INX RP | RP <- RP+1 | ||||
00 SSS 100 | INR SSS | SSS <- SSS+1 | ||||
00 SSS 101 | DCR SSS | SSS <- SSS-1 | ||||
00 DDD 110 | DATA8 | MVI DDD, DATA8 | DDD <- DATA8 | 2 | ||
00 000 111 | 07 | RLG | CY+A LEFT | |||
00 001 111 | 0F | RRG | CY+A RIGHT | |||
00 010 111 | 17 | RAL | CY+A CYCLE RIGHT | |||
00 011 111 | 1F | RAR | CY+A CYCLE LEFT | |||
00 100 111 | 27 | DAA | ||||
00 101 111 | 2F | CMA | A <- NOT A | |||
00 110 111 | 37 | STC | CY = 1 | |||
00 111 111 | 3F | CMC | CY <- NOT CY | |||
Группа 01 | ||||||
01 110 110 | 76 | HLT | ||||
01 DDD SSS | MOV DDD, SSS | DDD <- SSS | 1 | |||
Группа 10 | ||||||
10 000 SSS | ADD SSS | A <- A+SSS | ||||
10 001 SSS | ADC SSS | A <- A+SSS+CY | ||||
10 010 SSS | SUB SSS | A <- A-SSS | ||||
10 011 SSS | SBB SSS | A <- A-SSS-CY | ||||
10 100 SSS | ANA SSS | A <- A AND SSS | ||||
10 101 SSS | XRA SSS | A <- A XOR SSS | ||||
10 110 SSS | ORA SSS | A <- A OR SSS | ||||
10 111 SSS | CMP SSS | COMPARE A, SSS | ||||
Группа 11 | ||||||
11 XXX 000 | RETIF | RETURN IF XXX IS TRUE | ||||
11 RP0 001 | POP RP | |||||
11 001 001 | C9 | RET | ||||
11 011 001 | D9 | ? | ||||
11 101 001 | E9 | PCHL | JMP [HL] | |||
11 111 001 | F9 | SPHL | SP <- HL | |||
11 XXX 010 | ADDR16 | JMP IF ADDR16 | JUMP IF XXX IS TRUE | |||
11 000 011 | C3 | ADDR16 | JMP ADDR16 | |||
11 010 011 | D3 | PORT8 | OUT PORT8 | [PORT8] <- A | ||
11 011 011 | DB | PORT8 | IN PORT8 | A <- [PORT8] | ||
11 100 011 | E3 | XTHL | [SP] <- HL | |||
11 101 011 | EB | XCHG | DE <-> HL | |||
11 110 011 | F3 | DI | INT DISABLE | |||
11 111 011 | FB | EI | INT ENABLE | |||
11 XXX 100 | ADDR16 | CALLIF ADDR16 | CALL IF XXX IS TRUE | |||
11 RP0 101 | PUSH RP | |||||
11 001 101 | CD | ADDR16 | CALL ADDR16 | |||
11 011 101 | DD | ? | ||||
11 101 101 | ED | ? | ||||
11 111 101 | FD | ? | ||||
11 000 110 | C6 | DATA8 | ADI DATA8 | A <- A+DATA8 | ||
11 001 110 | CE | DATA8 | ACI DATA8 | A <- A+DATA8+CY | ||
11 010 110 | D6 | DATA8 | SUI DATA8 | A <- A-DATA8 | ||
11 011 110 | DE | DATA8 | SBI DATA8 | A <- A-DATA8-CY | ||
11 100 110 | E6 | DATA8 | ANI DATA8 | A <- A AND DATA8 | ||
11 101 110 | EE | DATA8 | XRI DATA8 | A <- A XOR DATA8 | ||
11 110 110 | F6 | DATA8 | ORI DATA8 | A <- A OR DATA8 | ||
11 111 110 | FE | DATA8 | CPI DATA8 | COMPARE A, DATA8 | ||
11 NNN 111 | RST NNN | INT NNN |
Расшифровка сокращений
- DDD, SSS
- 000=B
- 001=C
- 010=D
- 011=E
- 100=H
- 101=L
- 110=М (т.е. [HL])
- 111=A
- R
- 0=BC
- 1=DE
- RP
- 0=BC
- 1=DE
- 2=HL
- 3=SP или PSW (Status word) для PUSH/POP
- XXX
- 000: NOT ZERO
- 001: ZERO
- 010: NOT CARRY
- 011: CARRY
- 100: NOT PARITY
- 101: PARITY
- 110: POSITIVE
- 111: NEGATIVE