You are on page 1of 4

1.

Codificarea setului de instructiuni


a)Instructiuni cu doi operanzi
Opcode(4)
MAS(2)
RS(4)
MD(2)
RD(4)
0
0
0
0mod adr srcoperand sursa(src) mod adr d operand dest(dest)
0
0
0
1mod adr srcoperand sursa(src) mod adr d operand dest(dest)
0
0
1
0mod adr srcoperand sursa(src) mod adr d operand dest(dest)
0
0
1
1mod adr srcoperand sursa(src) mod adr d operand dest(dest)
0
1
0
0mod adr srcoperand sursa(src) mod adr d operand dest(dest)
0
1
0
1mod adr srcoperand sursa(src) mod adr d operand dest(dest)
0
1
1
0mod adr srcoperand sursa(src) mod adr d operand dest(dest)
b)Instructiuni cu un operand
Opcode(10)
MD(2)
RD(4)
1
0
0
0
0
0
0
0
0
0 mod adr d operand dest(dest)
1
0
0
0
0
0
1
0
0
0 mod adr d operand dest(dest)
1
0
0
0
0
1
0
0
0
0 mod adr d operand dest(dest)
1
0
0
0
0
1
1
0
0
0 mod adr d operand dest(dest)
1
0
0
0
1
0
0
0
0
0 mod adr d operand dest(dest)
1
0
0
0
1
0
1
0
0
0 mod adr d operand dest(dest)
1
0
0
0
1
1
0
0
0
0 mod adr d operand dest(dest)
1
0
0
0
1
1
1
0
0
0 mod adr d operand dest(dest)
1
0
0
1
0
0
0
0
0
0 mod adr d operand dest(dest)
1
0
0
1
0
0
0
0
0
0 mod adr d operand dest(dest)
1
0
0
1
0
0
1
0
0
0 mod adr d operand dest(dest)
1
0
0
1
0
0
1
0
0
0 mod adr d operand dest(dest)
1
0
0
1
1
1
0
0
0
0 mod adr d operand dest(dest)
1
0
0
1
1
1
0
0
0
0 mod adr d operand dest(dest)
1
0
0
1
1
1
1
0
0
0 mod adr d operand dest(dest)
1
0
0
1
1
1
1
0
0
0 mod adr d operand dest(dest)
c)Instructiuni de salt(relativ la PC)
Opcode(8)
OFFSET(8)
1
0
1
0
0
0
0
0
offset relativ la PC
1
0
1
0
0
0
1
0
offset relativ la PC
1
0
1
0
0
1
0
0
offset relativ la PC
1
0
1
0
0
1
1
0
offset relativ la PC
1
0
1
0
1
0
0
0
offset relativ la PC
1
0
1
0
1
0
1
0
offset relativ la PC
1
0
1
0
1
1
0
0
offset relativ la PC
1
0
1
0
1
1
1
0
offset relativ la PC
1
0
1
1
0
0
0
0
offset relativ la PC
d)Instructiuni diverse
Opcode(16)
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0

1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
1
1

1
1
1
1
1
1
1
0
0

0
0
0
1
1
1
1
0
0

0
1
1
0
0
1
1
0
0

1
0
1
0
1
0
1
0
1

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0

2.Codificarea setului de registre


Avem 16 registre:
IR[9:6]
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

sau
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

IR[3:0] Registru
0
0
0
0
1
1
1
0
2
1
1
3
0
0
4
0
1
5
1
0
6
1
1
7
0
0
8
0
1
9
1
0
10
1
1
11
0
0
12
0
1
13
1
0
14
1
1
15

3.Codificarea modurilor de adresare


Dispunem de 4 moduri de adresare:
Mod de adresare
Adresare imediata(AM)
Adresare directa(AD)
Adresare indirecta(AI)
Adresare indexata(AX)

Codif
0
0
0
1
1
0
1
1

ctiuni
nzi
Operatie executata
MOV dest,src(dest<-src)
ADD dest,src(dest<-dest+src)
SUB dest,src(dest<-dest-src)
CMP dest,src(dest<-src)set flag
AND dest,src(dest<-dest AND src)
OR dest,src(dest<-dest OR src)
XOR dest,src(dest<-dest XOR src)

nd
Operatie executata
CLR dest(dest<-0)
NEG dest(dest<- -dest)
INC dest(dest<-dest+1)
DEC dest(dest<-dest-1)
DEC dest(dest<-dest-1)
ASL dest(deplasare aritmetica la stanga)
ASR dest(deplasare aritmetica la dreapta)
LSR dest(deplasare logica la dreapta)
ROL dest(rotire la stanga)
ROR dest(rotire la dreapta)
RLC dest(rotire la stanga cu carry)
RRC dest(rotire la dreapta cu carry)
JMP adr(salt la adresa data de operand)
CALL adr(apel procedura,adresa data de operand)
PUSH Ri(salvare registru in stiva)
POP Ri(restaurare registru din stiva)

a PC)
BR (salt relativ neconditionat)
BNE(salt relativ daca flagul Z=0)
BEQ(salt relativ daca flagul Z=1)
BPL(salt relativ daca flagul S=0)
BMI(salt relativ daca flagul S=1)
BCS(salt relativ daca flagul C=1)
BCC(salt relativ daca flagul C=0)
BVC(salt relativ daca flagul V=0)
BVS(salt relativ daca flagul V=1)
CLC(Clear Carry)
CLV(Clear Overflow)
CLZ(Clear Zero)
CLS(Clear Sign)
CCC(Clear Condition Code)
SEC(Set Carry)
SEV(Set Overflow)
SEZ(Set Zero)
SES(Set Sign)
SCC(Set Condition Code)

stre

resare
esare:

NOP
RET
RETI
HALT
WAIT
PUSH PC
POP PC
PUSH FLAG
POP FLAG

You might also like