51
Şcoală universitară de formare iniţială şi continuă a personalului didactic şi a trainerilor din domeniul specializărilor tehnice şi inginereşti - DidaTec SISTEME CU MICROPROCESOARE Curs 2 – Setul de instrucţiuni Şef. Lucr. Dr. Ing. Duka Adrian-Vasile

Sel de Instructiuni microprocesoare

Embed Size (px)

DESCRIPTION

Cateva instructiuni privind microprocesoarele

Citation preview

  • 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!