-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
SISTEME CU MICROPROCESOARE
Curs 2 Setul de instruciuni
ef. Lucr. Dr. Ing. Duka Adrian-Vasile
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Cuprins
Obiective
2.1 FORMATUL INSTRUCIUNILOR
2.2 CLASIFICAREA INSTRUCIUNILOR
Concluzii
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Cuprins
Obiective
2.1 FORMATUL INSTRUCIUNILOR
2.2 CLASIFICAREA INSTRUCIUNILOR
Concluzii
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
La finalul acestui capitol cursantul trebuie: s cunoasc
instruciunile disponibile s cunoasc modul n care sunt
codificate
instruciunile n memoria program
s cunoasc rolul parametrilor instruciunilor s utilizeze
instruciunile pentru implementarea
operaiilor necesare n diferite programe
Obiective
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Cuprins
Obiective
2.1 FORMATUL INSTRUCIUNILOR
2.2 CLASIFICAREA INSTRUCIUNILOR
Concluzii
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Setul de instruciuni cuprinde: 75 de instruciuni 71 de
instruciuni pe 16 bii 4 instruciuni pe 32 bii
RISC = Set Redus de Instruciuni
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Instruciunile realizeaz operaii asupra unor date din memorie
O instruciune trebuie s informeze UCP despre: tipul operaiei
realizate locul unde se gsesc datele cu care instruciunea
opereaz.
O instruciune va codifica binar urmtoarele informaii: codul
operaiei unul sau mai multi operanzi
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Sunt definite 4 formate de instruciuni: instruciuni pe octet
instruciuni pe bit instruciuni cu constante (literali) instruciuni
de control
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
Operandul f: reprezint adresa de 8 bii a unui registru din
memorie
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
Operandul d: 1 bit indic destinaia rezultatului operaiei
realizate de instruciune d = 0 rezultatul WREG d = 1 rezultatul
f
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
Operandul a: 1 bit indic modul de acces la registrul f a = 0
registrul f se gsete n Access Bank a = 1 registrul f se gsete
ntr-un Bank specificat prin BSR
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
Formatul:15 10 9 8 7 0
Cod operaie d a f (adresa registrului)
Utilizare: cod_operatie f, d, acod_operatie f, a
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
Exemplu: ADDWF REG1, W, BANKEDCLRF 0x01, ACCESS
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Destinaia rezultatului (d) Zona de
memorie accesat (a)
Instruciuni pe octet:
Excepia:
Utilizare: MOVFF fs,fd
15 12 11 0
Cod operaie fs (adresa registrului surs)15 12 11 0
1 1 1 1 fd (adresa registrului destinaie)
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Bitul din registru (b) Zona de
memorie accesat (a)
Instruciuni pe bit:
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Bitul din registru (b) Zona de
memorie accesat (a)
Instruciuni pe bit:
Operandul f: reprezint adresa de 8 bii a unui registru din
memorie
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Bitul din registru (b) Zona de
memorie accesat (a)
Instruciuni pe bit:
Operandul b: 3 bii poziia bitului afectat de instruciune n
registrul f
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Bitul din registru (b) Zona de
memorie accesat (a)
Instruciuni pe bit:
Operandul a: 1 bit indic modul de acces la registrul f a = 0
registrul f se gsete n Access Bank a = 1 registrul f se gsete
ntr-un Bank specificat prin BSR
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au 3 operanzi: Registrul (f) Bitul din registru (b) Zona de
memorie accesat (a)
Instruciuni pe bit:
Formatul:
Utilizare: cod_operatie f, b, a
15 12 11 9 8 7 0
Cod operaie b (poziie bit) a f (adresa registrului)
Exemplu: BSF REG, 4, ACCESS
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Au un operand: valoarea constantei (k)
Instruciuni cu constante (literali):
15 8 7 0
Cod operaie k (constant)Formatul:
Utilizare: cod_operatie k
Exemplu: MOVLW d23
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Pot utiliza urmtorii operanzi: O adres de salt din memoria
program (n) Utilizarea stivei rapide (s) fr operand
Instruciuni de control:
15 8 7 0
Cod operaie n (adres din memoria program)15 12 11 0
1 1 1 1 n (adres din memoria program)
Formatul instruciunii GOTO:
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Pot utiliza urmtorii operanzi: O adres de salt din memoria
program (n) Utilizarea stivei rapide (s) fr operand
Instruciuni de control:
Utilizare: cod_operatie ncod_operatie n,{s}cod_operatie
scod_operatie
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Formatul instruciunilor
Pot utiliza urmtorii operanzi: O adres de salt din memoria
program (n) Utilizarea stivei rapide (s) fr operand
Instruciuni de control:
Exemplu: GOTO main_loopCALL rutinaRETURN FASTNOP
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Cuprins
Obiective
2.1 FORMATUL INSTRUCIUNILOR
2.2 CLASIFICAREA INSTRUCIUNILOR
Concluzii
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni matematice pe octet:
Exemplu: ADDWF f, d, a
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni matematice pe octet:
Exemplu: ADDWF f, d, a
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni matematice pe octet:
Instruciuni DescriereADDWF f,d,a Adun WREG cu fADDWFC f,d,a Adun
WREG cu f i cu bitul de transportSUBWF f,d,a Scade WREG din fSUBWFB
f,d,a Scade f din WREG cu bitul de mprunutSUBFWB f,d,a Scade WREG
din f cu bitul de mprumutINCF f,d,a Incrementeaz fDECF f,d,a
Decrementeaz fMULWF f,a nmulete f cu WREGNEGF f,a Negare f
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni logice pe octet:
Exemplu: RLCF f, d, a
RLCF REG, W, 0
naintea instruciunii:REG=11100110C=0
Dup instruciune:REG=11100110WREG=11001100C=1
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni logice pe octet:
Exemplu: RLNCF f, d, a
RLNCF REG, W, 0
naintea instruciunii:REG=11100110C=0
Dup instruciune:REG=11100110WREG=11001101C=1
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni logice pe octet:
Instruciuni DescriereANDWF f,d,a I logic ntre WREG i fIORWF
f,d,a SAU logic ntre WREG i fXORWF f,d,a SAU-EXCLUSIV ntre WREG i
fCOMF f,d,a Complement fCLRF f,a Resetare bii din registrul fSETF
f,a Setare bii din registrul fSWAPF f,d,a Interschimbare semioctei
din registrul fRLCF f,d,a Rotire f la stnga cu bit de
transportRLNCF f,d,a Rotire f la stnga fr bit de transportRRCF
f,d,a Rotire f la dreapta cu bit de transportRRNCF f,d,a Rotire f
la dreapta fr bit de transport
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni matematice i logice cu constante:
Exemplu: ANDLW k
ANDLW 0x0F
naintea instruciunii:WREG=11100110
Dup instruciune:WREG=00000110
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni matematice i logice cu constante:
Instruciuni DescriereADDLW k Adun WREG cu literalSUBLW k Scade
WREG din literalMULLW k nmulete WREG cu literalANDLW k I logic ntre
WREG i literalIORLW k SAU logic ntre WREG i literalXORLW k
SAU-EXCLUSIV ntre WREG i literal
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni logice pe bit:
Exemplu: BCF f,b,a
BCF REG, 2, 0
naintea instruciunii:REG=11100110
Dup instruciune:REG=00001000
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni logice pe bit:
Instruciuni DescriereBCF f,b,a Reseteaz bitul b din registrul
fBSF f,b,a Seteaz bitul b din registrul fBTG f,b,a Schimb starea
bitului b din registrul f
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de comparaie pe bit:
Exemplu: BTFSC f,b,a
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de comparaie pe bit:
Instruciuni DescriereBTFSC f,b,a Testeaz bitul b din reg. f,
salt dac este 0BTFSS f,b,a Testeaz bitul b din reg. f, salt dac
este 1
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de comparaie pe octet:
Exemplu: CPFSEQ f,a
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de comparaie pe octet:
Exemplu: DECFSZ f,d,a
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de comparaie pe octet:
Exemplu: implementarea unei bucle for:
REG EQU 0x01MOVLW d100MOVWF REG
Bucla_forCLRF 0x00, 0DECFSZ REG, F, 0GOTO Bucla_for
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de comparaie pe octet:
Instruciuni DescriereCPFSEQ f,a Compar f cu WREG, salt dac
f=WREGCPFSGT f,a Compar f cu WREG, salt dac f>WREGCPFSLT f,a
Compar f cu WREG, salt dac f
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de mutare:
Exemplu: iniializarea unei locaii de memorie
MOVLW 0x55 ; 0x55 WREGMOVWF 0x2A, 0 ; WREG[F02A]
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de mutare:
Instruciuni DescriereMOVWF f,a Mut WREG n fMOVF f,d,a Mut fMOVFF
fs,fd Mut fs(sursa) n fd(destinaie)MOVLW k Mut literal n WREGMOVLB
k Mut literal (4 bii) n BSRLFSR f,k Mut literal (12 bii) n
FSR(f)
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de control:
Exemplu: Salt necondiionat (relativ / absolut)
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de control:Instruciuni Descriere
BC n Salt dac bitul de transport (carry) este 1BN n Salt dac
bitul negativ este 1BOV n Salt dac bitul de depire (overflow) este
1BZ n Salt dac bitul zero este 1BNC n Salt dac bitul de transport
(carry) este 0BNN n Salt dac bitul negativ este 0BNOV n Salt dac
bitul de depire (overflow) este 0BNZ n Salt dac bitul zero este
0BRA n Salt necondiionatGOTO n Salt la adresa / etichet
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Clasificarea instruciunilor
Instruciuni de control:Instruciuni Descriere
PUSH Pune n stiv (Salveaz PC n stiv)POP Scoate din stiv (Reface
PC)CALL n,s Apel de subrutinRETURN s Revenire din subrutinRETLW k
Revenire din subrutin cu literal n WREGRETFIE s Revenire din rutina
de tratare a ntreruperiiNOP Nici o operaie
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Cuprins
Obiective
2.1 FORMATUL INSTRUCIUNILOR
2.2 CLASIFICAREA INSTRUCIUNILOR
Concluzii
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Concluzii
Exemplu:
s se iniializeze registrul de la adresa 0x37 cu valoarea 71s se
incrementeze aceast valoare de 50 de oris se seteze bitul 4 al
rezultatuluidac rezultatul obinut este > 200 s tearg coninutul
registrului
de la adresa 0x37dac rezultatul obinut este < 200 s se seteze
toi biii registrului
de la adresa 0x37
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Concluzii
Exemplu:
REG EQU 0X37CONTOR EQU 0X00MOVLW D71MOVWF REG, 0MOVLW D50MOVWF
CONTOR, 0
Bucla_for:INCF REG, F, 0DECFSZ CONTOR, F, 0GOTO Bucla_forBSF
REG, 4, 0MOVLW D200CPFSGT REG, 0SETF REG, 0CLRF REG, 0
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
Concluzii
n acest curs s-au studiat urmtoarele: Modul de reprezentare al
instruciunilor n memoria program Rolul parametrilor instruciunilor
Clasificarea instruciunilor n funcie de operaiile realizate
Descrierea modului de execuie al instruciunilor Exemple
-
coal universitar de formare iniial i continu a personalului
didactic i a trainerilor din domeniul specializrilor tehnice i
inginereti - DidaTec
V mulumesc pentru atenie!