Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
01.05.2014
Размер:
212.99 Кб
Скачать

6. Система команд

Все команды подразделяются на 3 группы:

1. Команды пересылки. Их опкоды занимают диапазон 00h – 04h.

2. Команды арифметических и логических операций. Их опкоды занимают диапазон 05h – 12h.

3. Команды передачи управления. Их опкоды занимают диапазон 13h – 18h.

Структура системы команд приведена в таблице ниже:

опкод

мнемоника

семантика

флаги

название

Z

C

O

S

1

00h

NOP

PC := PC+1

na

na

na

na

No OPeration

2

01h

MOV

DST <- #const

na

na

a

na

MOVe operand

DST <- OP1

DST <- &OP1 + OP2

3

02h

IN

[DST] -> OP1

na

na

a

na

INput from port

4

03h

OUT

[DST] <-OP1

na

na

a

na

OUTput to port

5

04h

XCNG

DST <-> OP1

na

na

a

na

eXChaNGe registers

6

05h

ADD

DST <- OP1 + OP2

a

a

a

a

integer ADDition

7

06h

SUB

DST <- OP1 - OP2

a

a

a

a

integer SUBstraction

8

07h

MUL

DST <- OP1 * OP2

a

a

na

a

integer MULtiplication

9

08h

DIV

DST <- OP1 / OP2

a

a

a

a

integer DIVision

10

09h

FADD

DST <- OP1 + OP2

a

a

a

a

Float ADDition

11

0Ah

FSUB

DST <- OP1 - OP2

a

a

a

a

Float SUBstraction

12

0Bh

FMUL

DST <- OP1 * OP2

a

a

na

a

Flaot MULtiplication

13

0Ch

FDIV

DST <- OP1 / OP2

a

a

a

a

Float DIVision

14

0Dh

AND

DST <- OP1 && OP2

a

na

na

na

logical AND

15

0Eh

OR

DST <- OP1 || OP2

a

na

na

na

logical OR

16

0Fh

XOR

DST <- OP1 +2 OP2

a

na

na

na

eXclusive OR

17

10h

NOT

DST <- ! DST

a

na

na

na

logical NOT

18

11h

RR

DST <- DST >> OP1

a

a

na

na

Rotate Right

19

12h

RL

DST <- DST << OP1

a

a

na

na

Rotate Left

20

13h

JMP

PC <- {OP1}

na

na

na

na

unconditional JuMP

21

14h

JC

PC <- {OP1}

na

u

na

na

Jump if Carry set

22

15h

JZ

PC <- {OP1}

u

na

na

na

Jump if Zero set

23

16h

JNZ

PC <- {OP1}

u

na

na

na

Jump if Not Zero set

24

17h

CALL

R0 <- PC;PC <- {OP1}

na

na

na

na

procedure CALL

25

18h

RET

PC <- R0

na

na

na

na

RETurn from procedure

26

19h

IRET

PC <- R0 ; eflags <- R1

na

na

na

na

Interrupt RETurn

27

1Ah

INT

PC <- R0; eflags <- R1; PC <- {OP1}

na

na

na

na

INTerrupt

Пояснения:

команда MOV может использоваться для пересылки данных между регистрами, регистром и памятью, памятью и регистром.

na – Not Affected – команда не изменяет флаги

a – Affected – команда изменяет флаги

u – Used – значение флага используется для принятия решения внутри команды