Programare în limbaj de asamblare 45. Setul de instrucţiuni: instrucţiuni de transfer, aritmetice, de prelucrare la nivel de bit.

Size: px
Start display at page:

Download "Programare în limbaj de asamblare 45. Setul de instrucţiuni: instrucţiuni de transfer, aritmetice, de prelucrare la nivel de bit."

Transcription

1 Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Programare în limbaj de asamblare 45. Setul de instrucţiuni: instrucţiuni de transfer, aritmetice, de prelucrare la nivel de bit.

2 Setul de instrucţiuni Din motive descriptive, setul de instrucţiuni de la procesorul 286 este împărţit în trei subseturi distincte: setul instrucţiunilor de bază; setul extins de instrucţiuni; setul de instrucţiuni de control sistem. Setul de instrucţiuni de bază Aceste instrucţiuni sunt grupate în şase tipuri, şi anume: transfer date; aritmetice; operare pe bit (logice, deplasare, rotire); operare pe şiruri; transfer control program; control procesor. Aproape fiecare instrucţiune poate opera fie pe octet, fie pe cuvânt (sau dublu cuvânt, la 386/486). Operanzii instrucţiunilor pot fi interschimbabili, cu excepţia datelor imediate care pot fi numai sursă, nu şi destinaţie. Variabilele din memorie pot fi operate direct în memorie, fără să fie mutate în registre. Setul de instrucţiuni poate fi considerat ca având două niveluri: nivel de asamblare şi nivel maşină. Pentru programatorul în limbaj de asamblare, procesorul apare ca având circa o sută de instrucţiuni. O instrucţiune în limbaj de asamblare (de ex. MOV) corespunde, de fapt, la mai multe forme de instrucţiuni maşină (pt. MOV sunt circa 30 de tipuri, în funcţie de tipul operandului: octet/cuvânt, registru/memorie, dată imediată etc.). La nivel maşină există circa trei sute de instrucţiuni. Instrucţiunile nivelului de asamblare simplifică viziunea programatorului asupra setului de instrucţiuni: programatorul scrie instrucţiunea (de ex. INC, de incrementare a unui operand 8/16 biţi, registru sau locaţie de memorie), asamblorul examinează operandul şi determină instrucţiunea nivel maşină ce trebuie generată. Instrucţiuni de transfer date La rândul lor, aceste instrucţiuni sunt împărţite în patru clase: instrucţiuni de transfer cu scop general ( clasice ); instrucţiuni specifice acumulatorului; instrucţiuni de transfer adrese obiect; instrucţiuni de transfer registru indicatori. Aceste instrucţiuni nu modifică indicatorii de condiţii, decât cu unele excepţii care vor fi menţionate corespunzător. Instrucţiuni de transfer cu scop general MOV <dest>,<sursa> Transferă un octet/cuvânt (sau dublu cuvânt) de la sursă la destinaţie, fără a modifica nici un indicator din registrul respectiv. În funcţie de sursă şi destinaţie, poate avea formele:

3 MOV MOV MOV <reg>,<reg> <reg_16>,<reg_seg> <reg_seg>,<reg_16> Exemple de instrucţiuni: mov ax,bx mov al,ch mov ax,cs mov ds,ax Registrul segment (reg_seg) CS nu poate fi destinaţie şi nici nu se pot transfera date direct între două registre segment. MOV <reg>,<mem> MOV <mem>,<reg> Exemple de instrucţiuni: mov vector[bx][si],ax ; vector este de tip word mov sp,varf_stiva mov bl,byte ptr vector[bp][di] Nu se pot transfera date direct între două locaţii de memorie. MOV MOV <reg_seg>,<mem_16> <mem_16>,<reg_seg> Exemple: mov mov ds,adr_baza_seg [bx].salv_seg,cs Realizează transferul între o locaţie de memorie de 16 biţi şi un registru segment; CS nu poate fi destinaţie. MOV MOV <reg>,<data_imed> <mem>,<data_imed> Exemple: mov mov mov mov ax,0 cl,4 byte ptr [si],2ch alfa[bp][si],100 Această instrucţiune nu se poate executa utilizând registrele segment.

4 Instrucţiuni de conversie (extensie de semn) Aceste instrucţiuni realizează extensia de semn a acumulatorului (AL, AX, EAX) în extensia sa (AH, DX sau EAX, EDX). Nu se modifică nici un indicator. Aceste instrucţiuni pot fi folosite pentru a furniza un deîmpărţit de lungime dublă înainte de a efectua o împărţire cu semn. CBW (Convert Byte to Word) Realizează extensia de semn a lui AL în registrul AH. CWDE (Convert Word to Double word Extended) Realizează extensia de semn a lui AX în registrul EAX. CWD (Convert Word to Double word) Realizează extensia de semn a lui AX în registrul DX. CDQ (Convert Double word to Quad word) Realizează extensia de semn a lui EAX în registrul EDX. La 386/486 mai există instrucţiunile de transfer cu extensia bitului de semn sau cu extensie de zerouri: MOVSX <dest>,<sursa> (MOVe with Sign extension) Realizează transferul operandului sursă la destinaţie, cu extensia bitului de semn, în octeţii superiori. Destinaţia poate fi un registru de 16/32 biţi, iar sursa poate fi un registru sau o locaţie de memorie de 8/16 biţi. Deci, se poate face transferul cu extensia bitului de semn a unui: octet la un cuvânt sau dublu cuvânt: MOVSX MOVSX reg_16,reg/mem_8 reg_32,reg/mem_8 cuvânt la un dublu cuvânt: MOVSX reg_32,reg/mem_16 Nu este afectat nici un indicator. MOVZX <dest>,<sursa> (MOVe with Zero extension) Transferă sursa (8/16 biţi) la o destinaţie (16/32 biţi) şi extinde cu zerouri, la stânga, în octeţii superiori, pentru a completa destinaţia la dimensiunea sa. Deci se poate face transferul cu extensia de zerouri a unui:

5 octet la un cuvânt sau dublu cuvânt: MOVZX MOVZX reg_16,reg/mem_8 reg_32,reg/mem_8 cuvânt la un dublu cuvânt: MOVZX reg_32,reg/mem_16 Nu este afectat nici un indicator. Instrucţiuni de interschimbare a datelor XCHG <dest>,<sursa> (exchange) Instrucţiunea schimbă, între ele, conţinuturile celor doi operanzi, astfel încât fiecare dintre ei este atât sursă, cât şi destinaţie. Instrucţiunea poate fi de forma: XCHG XCHG XCHG <reg>,<reg> <reg>,<mem> <mem>,<reg> dar nu poate opera cu registre segment. Instrucţiuni de transfer cu stiva Stiva este organizată pe cuvinte, iar la 386/486 ea poate fi referită pe dublu cuvânt. Stiva este folosită pentru salvarea/refacerea adresei de revenire pentru apel, respectiv revenire din apel de procedură sau pentru întreruperi, respectiv revenire din întreruperi, când se salvează/reface pe lângă adresa de revenire a programului întrerupt şi registrul indicatori; administrarea stivei pentru astfel de operaţii este realizată, în mod automat, de către procesor; salvarea/refacerea conţinutului unor resurse (registre, memorie etc.) la intrarea într-o procedură, respectiv la ieşirea din aceasta; pentru transferul parametrilor de intrare/ieşire între o procedură şi programul apelant, precum şi pentru alocarea dinamică de memorie (adică pe durata execuţiei programului) pentru variabilele locale unei proceduri. PUSH <sursa> depune in varful stivei <sursa>. (SP) (SP) 2 ((SP)+1:(SP)) (sursa) Operandul sursă poate fi un registru general sau o locaţie de memorie de 16 biţi, respectiv un registru segment. Exemple:

6 push push push si cs beta[bx][si] Începând cu procesorul 80386, instrucţiunea PUSH (E)SP depune în stivă valoarea registrului (E)SP, aşa cum era aceasta înaintea execuţiei instrucţiunii (deci fără a fi decrementată). Aceasta diferă de procesoarele anterioare (8086/186/286), unde instrucţiunea PUSH SP depune în stivă noua valoare a registrului SP (decrementată cu 2). POP <dest> extrage din varful stivei si duce la dest. (dest) ((SP)+1:(SP)) (SP) (SP) + 2 Exemple: pop bx pop ds ; cs nu poate fi destinatie pop beta[bp][di] Încărcarea registrului CS prin intermediul stivei se poate face numai la execuţia unei instrucţiuni de revenire dintr-o procedură, în context far, sau la revenirea dintr-o întrerupere. Informaţiile din stivă vor fi extrase în ordinea inversă celei în care au fost introduse: ; salvam registrele: ax, bx, cx push ax push bx push cx ; refacem aceleasi registre cu aceleasi valori: pop cx pop bx pop ax Accesul la informaţia din stivă se poate face fără descărcarea stivei, utilizând adresarea bazată astfel: ; memorare informatii in stiva: mov bp,sp ; memorare varful stivei push ax ; se va depune la adresa [bp-2] push bx ; [bp-4] push cx ; [bp-6] ; accesul la informatii se poate face, cu BP, in orice ordine mov ax,[bp-2] mov bx,[bp-4] mov cx,[bp-6] ; descarcarea stivei se poate face modificand valoarea lui SP add sp,6

7 Dacă dorim să nu modificăm valoarea lui BP, va trebui să-l salvăm şi pe acesta în stivă, ceea ce se întâmplă în mod frecvent astfel: ; depunerea de parametri in stiva, inainte de apelul procedurii: push ax push bx push cx ; preluarea parametrilor din stiva, in cadrul procedurii: ; (s-a facut abstractie, in acest exemplu, de salvarea din stiva ; a adresei de revenire si de parametrii transmisi prin stiva) push bp mov bp,sp mov ax,[bp+6] mov bx,[bp+4] mov cx,[bp+2] ; descarcarea stivei si refacerea registrului BP salvat: pop bp add sp,6 Instrucţiuni de transfer specifice acumulatorului Aceste instrucţiuni permit transferul de date între registrul acumulator (AL, AX sau EAX) şi portul de I/O din spaţiul de I/O, specificat ca operand. Specificarea portului se poate face direct în instrucţiune, pe 8 biţi, iar pentru adrese mai mari se foloseşte adresarea indirectă prin DX. IN <acc>,<port> OUT <port>,<acc> Exemple: in al,port_oct out port_oct,al in ax,port_cuv out port_cuv,ax in eax,port_dcuv out port_dcuv,eax in al,dx out dx,al in ax,dx out dx,ax in eax,dx out dx,eax Toate operaţiile de intrare/ieşire, indiferent de perifericul utilizat, presupun folosirea acestor instrucţiuni pentru a realiza transferul informaţiei. În principiu, fiecărui periferic îi sunt asociate porturi pentru: citirea stării dispozitivului; transmiterea comenzii către periferic; realizarea transferului propriu-zis. Se pot realiza şi transferuri de I/O pe şiruri (blocuri): INS <dest>,dx OUTS DX,<sursa>

8 (INput from port to String ; OUTput String to port) Aceste instrucţiuni transferă date la sau de la un port de I/O specificat de DX de la sursă sau la destinaţie. Operandul de memorie, dacă este sursă, este referit de DS:(E)SI, iar dacă este destinaţie este referit de ES:(E)DI; selecţia între registrele de 16 sau 32 de biţi (ESI sau SI, respectiv EDI sau DI) se execută în funcţie de atributul de dimensiune de adresă. După realizarea transferului unui element, registrele index sunt automat actualizate, pentru a face referire la următoarea adresă; dacă direcţia de parcurgere DF=0, atunci vor fi incrementate, iar dacă DF=1, vor fi decrementate. Pasul de actualizare va fi 1, 2 sau 4, după cum se citeşte/scrie un octet, cuvânt sau dublu cuvânt. De fapt, în funcţie de tipul transferului (octet, cuvânt sau dublu cuvânt), se vor genera instrucţiunile corespunzătoare: INSB / INSW / INSD OUTSB / OUTSW / OUTSD Aceste instrucţiuni pot fi precedate de prefixul de repetare REP, pentru a realiza transferuri pe blocuri de date. Dimensiunea blocului de date de transferat se va încărca în registrul (E)CX, care va contoriza numărul de octeţi, cuvinte sau cuvinte duble transferate. Efectul acestui prefix este descris ulterior, la paragraful pentru instrucţiunile pe şiruri. XLAT instructiune de transfer dintr-o tabela de octeti sau de transfer de octet, de la un cod la altul: (AL) ((BX) + (AL)) Conţinutul acumulatorului este înlocuit de un octet dintr-o tabelă. Adresa de început a tabelei se află, în prealabil, în BX. Conţinutul registrului AL este considerat ca adresă relativă în această tabelă de conversie (translaţie). Valoarea corespunzătoare din tabelă (de tip octet) este mutată în AL. Referirea la o adresă în instrucţiunea XLAT, este necesară pentru a permite asamblorului să determine registrul segment care va fi utilizat la execuţia instrucţiunii (registrul BX conţine numai adresa relativă în cadrul segmentului din care face parte tabela de conversie): XLAT [adr_tabela], XLAT [[rs:] adr_tabela] sau XLATB Ultima formă poate fi utilizată fără operand, dacă tabela se află deja în segmentul curent referit de DS. Instrucţiuni de transfer adrese LEA <dest_reg>,<sursa_mem> (Load Effective Address) Transferă în registrul destinaţie de 16 biţi specificat de instrucţiune adresa relativă, în segment, a operandului sursă, care trebuie să fie un operand din memorie. Registrul destinaţie nu poate fi un registru segment. Această instrucţiune poate fi folosită pentru încărcarea registrelor BX, SI sau DI, care trebuie să conţină adrese de operanzi pentru instrucţiunea XLAT şi pentru instrucţiunile pe şiruri. De exemplu instrucţiunea: lea bx, adr_tab

9 este echivalentă cu: mov bx, offset adr_tab dar instrucţiunea: lea si, adr_tab[bx][di] nu are un echivalent direct, care să utilizeze o singură instrucţiune, ci o secvenţă de instrucţiuni: mov add add si, offset adr_tab si, bx si, di La procesoarele 386/486 destinaţia şi/sau sursa pot fi şi de 32 biţi. Dacă destinaţia şi sursa au aceeaşi dimensiune (16 sau 32 biţi) efectul este cel descris anterior. Pot apărea, însă, situaţiile: LEA <reg_16>,<mem_32>, se vor încărca în registrul destinaţie de 16 biţi numai ultimii 16 biţi ai sursei de 32 de biţi din memorie; LEA <reg_32>,<mem_16>, se va face extensia de semn a sursei de 16 biţi, din memorie, la dimensiunea registrului destinaţie, de 32 de biţi. LDS <dest_reg_16>,<sursa_mem_32> (Load pointer using DS) LES <dest_reg_16>,<sursa_mem_32> (Load pointer using ES) Instrucţiuni de transfer indicatori LAHF (AH) (Load AH from Flags) (SF, ZF, *, AF, *, PF, *, CF) Copiază în AH indicatorii SF, ZF, AF, PF, CF, în formatul în care aceştia se găsesc în registrul indicatori (biţii 7 0). Această instrucţiune a apărut la 8086, pentru a asigura compatibilitatea cu procesorul anterior Nu modifică nici un indicator. SAHF (Store AH into Flags) (SF, ZF, *, AF, *, PF, *, CF) (AH) Transferă biţii corespunzători din AH în registrul indicatori (biţii 7 0). Modifică doar aceşti indicatori; ceilalţi nu sunt modificaţi. PUSHF (PUSH Flags) (SP) (SP) 2 ((SP)+1:(SP)) Indicatori (flags)

10 Transferă indicatorii în cuvântul din noul vârf al stivei. La 386/486, instrucţiunea PUSHFD pune în stivă registrul indicatori de 32 de biţi (EFLAGS). Indicatorii nu sunt modificaţi. POPF Indicatori ((SP)+1:(SP)) (SP) (SP) + 2 Transferă cuvântul din vârful stivei (la care face referire SP) în registrul indicatori, modificându-le valorile anterioare. În mod asemănător, la 386 există instrucţiunea POPFD, care transferă din vârful stivei un cuvânt dublu în registrul EFLAGS. Instrucţiuni aritmetice Formatul datelor aritmetice Operaţiile aritmetice pot fi efectuate pe patru tipuri de numere: binare: fără semn; zecimale: cu semn; neîmpachetate; împachetate; (ambele fără semn). Numerele binare pot fi de 8 sau 16 biţi, iar la 386 şi de 32 de biţi. Numerele zecimale sunt memorate în octeţi: două cifre pe un octet, la formatul zecimal împachetat; o cifră pe un octet, la formatul zecimal neîmpachetat (prima tetradă conţine zero, iar cea de-a doua conţine o cifră de la 0 la 9). Procesorul consideră, întotdeauna, că operanzii specificaţi în instrucţiunile aritmetice conţin date ce reprezintă numere valide pentru tipul instrucţiunii ce trebuie executată. Date incorecte vor conduce la rezultate neprevăzute. Numerele binare fără semn se pot găsi în intervalele: [0..255], cele de tip octet, [ ], cele de tip cuvânt, şi [ ], cele de tip cuvânt dublu. Pentru aceste date sunt definite instrucţiunile de adunare, scădere, înmulţire şi împărţire. Numerele binare cu semn sunt reprezentate în cod complementar (complement faţă de 2) şi pot avea valorile: [ ], cele de tip octet, [ ], cele de tip cuvânt, şi [ ], cele de tip dublu cuvânt. Sunt definite operaţiile de înmulţire şi împărţire, specifice acestui tip de date, iar operaţiile de adunare şi scădere sunt realizate cu instrucţiunile pentru numere binare fără semn. Dacă pentru numere fără semn depăşirea este detectată de indicatorul CF, pentru numere cu semn aceasta este detectată de indicatorul OF. Pentru determinarea depăşirii, în astfel de cazuri se pot utiliza instrucţiunile de salt condiţionat, pentru CF sau OF, după operaţia respectivă.

11 Numerele în format zecimal neîmpachetat pot reprezenta valori în intervalul 0 9, pe un octet fără semn. Operaţiile aritmetice cu numere în format zecimal neîmpachetat se realizează în două etape. Operaţiile de adunare, scădere şi înmulţire, de la numere binare fără semn, furnizează un rezultat intermediar în AL, care apoi este ajustat la o valoare corectă, de număr în format zecimal neîmpachetat. Împărţirea se face în mod asemănător, cu excepţia ajustării care este realizată prima, asupra operandului numărător, în registrul AL, şi apoi se realizează împărţirea binară fără semn; dacă rezultatul nu este corect, mai poate urma o a treia etapă de ajustare finală. Reprezentarea în format zecimal neîmpachetat este asemănătoare cu aceea a caracterelor numerice 0 9 în codul ASCII, cu diferenţa că tetrada mai semnificativă din codul ASCII are valoarea 3H, în loc de 0H. Din acest motiv, formatul zecimal neîmpachetat mai este denumit format ASCII. Se pot realiza operaţii direct pe caracterele numerice ASCII, astfel: se pune pe 0 prima tetradă a numărului ASCII; se efectuează operaţia respectivă şi corecţia necesară, care lasă această tetradă pe 0H; se pune prima tetradă a numărului pe 3H şi se obţine direct codul ASCII al cifrei respective. Numerele în format zecimal împachetat sunt memorate fără semn într-un octet care conţine câte o cifră zecimală în fiecare jumătate de octet (tetradă sau patru biţi). Prima cifră este cea mai semnificativă, şi întrucât fiecare tetradă poate conţine o cifră de la 0 la 9, rezultă că valoarea unui astfel de număr este cuprinsă în intervalul Operaţiile de adunare şi scădere se realizează în două etape, la fel ca la numerele în format zecimal neîmpachetat: se utilizează instrucţiunea binară fără semn respectivă (+, -), care va furniza un rezultat intermediar în AL; se realizează corecţia rezultatului din AL la o valoare corectă în format zecimal împachetat. Nu există instrucţiuni de ajustare pentru operaţiile de înmulţire sau împărţire cu astfel de numere. După o astfel de instrucţiune, indicatorii pot fi: modificaţi, conform rezultatului; nemodificaţi, deci vor rămâne la valoarea avută anterior acestei instrucţiuni; nedefiniţi, adică sunt modificaţi de instrucţiunea respectivă, dar nu reflectă starea rezultatului. Instrucţiunile de adunare/scădere ADD <dest>,<sursa> ADC <dest>,<sursa> INC <dest> AAA (ADDition) (dest) (dest) + (sursa) Modifica: OF, SF, ZF, AF, PF, CF (ADdition with Carry flag) (dest) (dest) + (sursa) + (CF) Modifica: OF, SF, ZF, AF, PF, CF (INCrement) (dest) (dest) + 1 Modifica: OF, SF, ZF, AF, PF Nu afecteaza: CF ; (ASCII Adjust for Addition) înlocuieşte conţinutul registrul AL, obţinut prin adunarea a două numere în format zecimal

12 neîmpachetat, cu un număr în format zecimal neîmpachetat corect, astfel: if ((AL) & 0FH) > 9 or (AF)=1 then (AL) (AL) + 6; (AH) (AH) + 1; (AF) 1 (CF) 1 (AL) (AL) & 0FH else (CF) 0 (AF) 0 Modifica: AF, CF; Nedefiniti: OF, SF, ZF, PF. Simbolul &, utilizat în descrierea instrucţiunilor, reprezintă operaţia ŞI logic la nivel de bit. Corecţia aceasta este necesară deoarece procesorul efectuează calculele în binar, iar un transport de la bitul 3 la bitul 4 înseamnă de fapt modificarea valorii de la 8 la 16, valoare interpretată de utilizator ca fiind 10, deoarece numărul este citit în zecimal; din acest motiv, trebuie să se adune valoarea 6, pentru a obţine valoarea zecimală corectă. DAA (Decimal Adjust for Addition) înlocuieşte conţinutul registrului AL, obţinut prin adunarea a două numere în format zecimal împachetat, cu un număr zecimal împachetat, astfel: if ((AL) & 0FH) > 9 or (AF)=1 then (AL) (AL) + 6; (AF) 1 else (AF) 0; if ((AL) > 9FH) or (CF)=1 then (AL) (AL) + 60H; (CF) 1 else (CF) 0; Modifica: SF, ZF, AF, PF, CF Nedefinit: OF. Se realizează o corecţie asemănătoare ca la instrucţiunea precedentă, cu deosebirea că această corecţie se face pentru ambele tetrade, întrucât numărul este zecimal împachetat. Începând de la procesorul 486 şi următoarele, se mai poate executa şi instrucţiunea: XADD <dest>,<sursa> (exchange and ADD) care schimbă sursa cu destinaţia, asemănător instrucţiunii XCHG, dar realizează şi suma celor doi operanzi, ca la instrucţiunea ADD; deci, practic, combină cele două instrucţiuni într-

13 una singură astfel: adună sursa cu destinaţia şi depune suma la destinaţie, dar copiază şi valoarea iniţială a destinaţiei, pe care o depune la sursă. Operandul destinaţie poate fi reg/mem, iar cel sursă reg. SUB <dest>,<sursa> (SUBtraction) (dest) (dest) (sursa) Modifica: OF, SF, ZF, AF, PF, CF SBB <dest>,<sursa> (SuBtraction with Borrow) (dest) (dest) (sursa) (CF) Modifica: OF, SF, ZF, AF, PF, CF DEC <dest> (DECrement) (dest) (dest) 1 Modifica: OF, SF, ZF, AF, PF Nu afecteaza: CF ; NEG <dest> determină complementul faţă de doi al operandului destinaţie şi-l returnează destinaţiei: (dest) compl 2 (dest) { (dest) 0 (dest) } Modifica: OF, SF, ZF, AF, PF, CF Dacă operandul este zero, el rămâne neschimbat şi CF=0. Pentru toate celelalte numere CF=1. Dacă se complementează cel mai mic număr negativ (de ex sau ), operandul nu se va modifica, dar OF=1. CMP <dest>,<sursa> poziţionează toţi indicatorii pentru operaţia: (dest) (sursa) fără însă a modifica operandul destinaţie şi nici pe cel sursă. De obicei, după o astfel de instrucţiune urmează o instrucţiune de salt condiţionat. CMPXCHG <dest>,<sursa> (CoMPare and exchange) Operandul destinaţie poate fi reg/mem, iar cel sursă reg. Instrucţiunea este disponibilă începând de la procesorul 486. Spre deosebire de instrucţiunea cmp, instrucţiunea cmpxchg modifică doar indicatorul ZF. Instrucţiunea utilizează, de asemenea, registrul acumulator, alegând în mod automat, în funcţie de dimensiunea operanzilor, unul din registrele al, ax sau eax. Instrucţiunea compară acumulatorul cu primul operand şi actualizează ZF. Dacă acumulatorul este egal cu primul operand, ZF=1 şi copiază cel de-al doilea operand în primul. În caz contrar, ZF=0 şi se copiază primul operand în acumulator. Procesoarele Pentium permit compararea şi interschimbarea pe 64 de biţi cu ajutorul instrucţiunii cmpxchg8b, care are sintaxa:

14 cmpbxchg8b ax, mem_64 Instrucţiunea compară valoarea din memorie de 64 de biţi la care face referire mem_64 cu valoarea de 64 de biţi din edx:eax. În cazul în care cele două valori sunt egale, se memorează valoarea din edx:eax în memorie la mem_64 şi se setează ZF=1, altfel se încarcă perechea de registre (edx:eax) cu valoarea din memorie (mem_64) şi ZF=0. AAS (ASCII Adjust for Subtraction) înlocuieşte conţinutul registrului AL, obţinut prin scăderea a două numere în format zecimal neîmpachetat, cu un număr corect în format zecimal neîmpachetat, astfel: if ((AL) & 0FH) > 9 or (AF)=1 then (AL) (AL) 6; (AH) (AH) 1; (AF) 1 (CF) 1 (AL) (AL) & 0FH else (CF) 0 (AF) 0 Modifica: AF, CF; Nedefiniti: OF, SF, ZF, PF. Corecţia aceasta este necesară deoarece procesorul efectuează calculele în binar şi un împrumut de la bitul 4 la bitul 3 înseamnă de fapt un împrumut de valoare 16, dar această valoare este considerată de utilizator ca fiind 10, deoarece numărul este interpretat în zecimal; din acest motiv trebuie să se scadă valoarea 6, pentru a corespunde valorii zecimale reale. DAS (Decimal Adjust for Subtraction) înlocuieşte conţinutul registrului AL, obţinut prin scăderea a două numere în format zecimal împachetat, cu un număr în format zecimal împachetat, astfel: if ((AL) & 0FH) > 9 or (AF)=1 then (AL) (AL) 6; (AF) 1 else (AF) 0; if ((AL) > 9FH) or (CF)=1 then (AL) (AL) 60H; (CF) 1 else (CF) 0; Modifica: SF, ZF, AF, PF, CF

15 Nedefinit: OF. Exemple de utilizare a acestor instrucţiuni: 1) Programul adună două numere fără semn, reprezentate pe mai multe cuvinte (octeţi), iar rezultatul se va depune peste primul număr. add_data segment numar_1 dw 0a8adh, 7fe2h, 0a876h,0 lung_nr1 equ ($ numar_1)/2 numar_2 dw 0cdefh, 52deh, 378ah, 0 add_data ends multibyte_add segment assume cs: multibyte_add, ds: add_data start: mov ax,add_data ; initializarea reg. DS mov ds,ax ; cu adresa de segment mov cx,lung_nr1 ; contor lungime numar mov si,0 ; initializare index elemente clc ; (CF)=0, transportul initial bucla: mov ax,numar_2[si] adc numar_1[si],ax inc si ; actualizare index element inc si loop bucla mov ax,4c00h ; revenire in DOS int 21h multibyte_add ends end start 2) Complementarea unui număr reprezentat pe mai multe cuvinte. Se porneşte chiar de la definiţia complementului faţă de 2: complement faţă de 2 pentru număr = 2 n număr; unde numar este reprezentat pe n-1 biţi. mov cx,lung_numar ; contor numar cuvinte clc ; initializare transport cu 0 mov si, -2 ; initializare index compl: inc si ; actualizare index cuvant prim/ urmator inc si mov ax,0 ; echivalentul lui 2n, se face scaderea sbb ax,numar [si] ; cu propagarea imprumutului si ; pozitionare OF/ depasire, la ultimul mov numar[si],ax ; cuvant, se depune rezultatul, si se loop compl ; pastreaza ultimul OF ; testare depasire (OF), ce are loc doar pentru ; valoarea minima negativa ( h)

16 Dacă numărul iniţial are valoarea minimă negativă ( H), după complementare valoarea va fi aceeaşi, deci rămâne nemodificată, ca şi în cazul instrucţiunii de complementare (NEG). Instrucţiunile de înmulţire/împărţire MUL <sursa> ; MUL <acumulator>,<sursa> la 386/486 Realizează înmulţirea fără semn a operandului sursă cu acumulatorul (AL, AX sau EAX). Dacă sursa este de tip octet atunci este înmulţită cu registrul AL şi rezultatul de lungime dublă este returnat în AX. Dacă operandul sursă este de tip cuvânt, atunci este înmulţit cu registrul AX, iar rezultatul este returnat în perechea de registre (DX, AX). Dacă sursa este de 32 biţi, atunci: (sursa_32) (EAX) (EDX, EAX). Operanzii sunt consideraţi fără semn. Dacă jumătatea superioară a rezultatului (AH, DX sau EDX în funcţie de tipul operanzilor) este diferită de zero, ceea ce înseamnă depăşirea formatului iniţial al numerelor, atunci OF=CF=1; în caz contrar, OF=CF=0. Deci, dacă după înmulţirea numerelor rezultă OF=CF=1, atunci jumătatea superioară a rezultatului (AH, DX sau EDX) conţine cifre semnificative ale rezultatului (depăşeşte dimensiunea iniţială a operanzilor). Ceilalţi indicatori sunt nedefiniţi (SF, ZF, AF, PF). Exemplu de înmulţire a unui octet cu un cuvânt: mov al,op1_octet ; inmultitorul de tip octet mov ah,0 ; se extinde inmultitorul la cuvant, fara semn mul op2_cuv ; se realizeaza inmultirea IMUL <sursa> ; IMUL <acumulator>,<sursa> la 386/486 Realizează înmulţirea cu semn a operandului sursă cu acumulatorul (AL, AX sau EAX) şi depune rezultatul de lungime dublă în AX (DX, AX) sau (EDX, EAX), în funcţie de tipul sursei. Operaţia se realizează în mod asemănător ca la înmulţirea fără semn. Dacă jumătatea superioară a rezultatului (AH, DX, EDX) nu reprezintă extensia de semn a jumătăţii inferioare (AL, AX, EAX), atunci OF=CF=1; în caz contrar, OF=CF=0. Deci, dacă după înmulţirea numerelor se obţine OF=CF=1, atunci jumătatea superioară a rezultatului conţine cifre semnificative ale rezultatului (depăşeşte dimensiunea iniţială a operanzilor). La 386/486, pe lângă aceste instrucţiuni se pot realiza înmulţiri care pot avea ca destinaţie şi alte registre, nu numai cele prestabilite (AX, DX:AX sau EDX:EAX). Acestea pot avea doi sau trei operanzi: IMUL r_16, r/m_16 IMUL r_32, r/m_32 IMUL r_16, data_8 IMUL r_32, data_8 IMUL r_16, data_16 IMUL r_32, data_32 IMUL r_16, r/m_16, data_8 IMUL r_32, r/m_32, data_8 IMUL r_16, r/m_16, data_16 IMUL r_32, r/m_32, data_32 Instrucţiunile cu doi operanzi au ca operand destinaţie un registru general de 16/32 biţi, iar operandul sursă poate fi un registru, un operand din memorie, o dată imediată de 8 biţi sau o dată imediată, de aceeaşi dimensiune cu registrul destinaţie.

17 Instrucţiunile cu trei operanzi au ca operand destinaţie un registru general de 16/32 biţi şi doi operanzi sursă: unul este un registru sau operand memorie, de aceeaşi dimensiune cu destinaţia, iar cel de-al doilea poate fi o dată imediată de 8 biţi sau de aceeaşi dimensiune cu ceilalţi doi operanzi. Pentru aceste instrucţiuni, care au ca destinaţie un alt registru general decât acumulatorul, rezultatul este trunchiat la dimensiunea registrului destinaţie. Dacă rezultatul nu depăşeşte dimensiunea destinaţiei, deci nu este necesară trunchierea lui la dimensiunea destinaţiei, atunci OF=CF=0; în caz contrar, OF=CF=1. Deci, practic, indiferent de tipul înmulţirii şi de numărul de operanzi, dacă apare o depăşire a dimensiunii iniţiale a destinaţiei cei doi indicatori vor fi poziţionaţi pe 1. Exemplu de înmulţire cu semn a unui octet cu un cuvânt: mov al,op1_octet ; inmultitorul de tip octet cbw ; se extinde semnul inmultitorului la cuvant imul op2_cuv ; se realizeaza inmultirea AAM (Ascii Adjust for Multiply) (AH) (AL)/0AH (AL) (AL) mod 0AH Modifica: SF, ZF, PF; Nedefiniti: OF, AF, CF Corectează rezultatul unei înmulţiri anterioare a doi operanzi zecimali neîmpachetaţi. În urma înmulţirii, utilizând instrucţiunea MUL, a doi operanzi de tip zecimal împachetat, se obţine produsul în (AH,AL), unde (AH) = 0, iar (AL) <> 0. Pentru ca rezultatul returnat de această instrucţiune să fie corect trebuie ca (AL) < 100, condiţie care este îndeplinită dacă valoarea sa se obţine prin înmulţirea a două numere de tip zecimal neîmpachetat (valoarea maximă este 9, deci 9 9 =81< 100). DIV < sursa > sau DIV < acc >,< sursa > la 386. temp) (numarator) if (temp) / (numitor) > MAX then (cat), (rest) nedefiniti (SP) (SP) 2; intrerupere ((SP)+1:(SP)) indicatori; pe (tf), (if) 0; nivelul (SP) (SP) 2; 0 ((SP)+1:(SP)) (CS); (CS) (2) (SP) (SP) 2; ((SP)+1:(SP)) (IP); (IP) (0) else (cat) (temp) / (numitor) (rest) (temp) mod (numitor)

18 MAX = FFH/octet, FFFFH/cuvant, FFFFFFFFH/dublu cuvant. Indicatori: toţi sunt nedefiniţi. Această instrucţiune realizează împărţirea întreagă, fără semn, a acumulatorului (AL, AX, EAX) şi a extensiei sale (AH, DX, EDX) prin operandul sursă. Operandul deîmpărţit este de lungime dublă (AX, DX:AX, EDX:EAX) faţă de operandul împărţitor (octet, cuvânt sau dublu cuvânt). În cazul în care câtul depăşeşte capacitatea destinaţiei (>MAX) sau la împărţirea prin zero se generează întrerupere pe nivelul 0. În urma împărţirii întregi, restul şi câtul se obţin în funcţie de tipul operanzilor, astfel: rest cât tip împărţire AH DX EDX AL AX EAX pentru împărţire la octet pentru împărţire la cuvânt pentru împărţire la dublu cuvânt IDIV < sursa > sau IDIV < acc >,< sursa > la 386/486. Această instrucţiune realizează împărţirea întreagă, cu semn, a acumulatorului (AL, AX, EAX) şi a extensiei sale (AH, DX, EDX) prin operandul sursă. Operandul deîmpărţit este de lungime dublă (AX, DX:AX, EDX:EAX) faţă de operandul împărţitor (octet, cuvânt sau dublu cuvânt). În cazul în care câtul depăşeşte capacitatea destinaţiei (este mai mare decât MAX sau mai mic decât -MAX-1) sau la împărţirea prin zero se generează întrerupere pe nivelul 0, întocmai ca la împărţirea fără semn. Constanta MAX are valorile 7FH, 7FFFH şi 7FFFFFFFH pentru câturi pozitive de tip octet, cuvânt şi dublu cuvânt, respectiv 80H, 8000H, H pentru câturi negative de tip octet, cuvânt şi dublu cuvânt. La fel ca la împărţirea fără semn, la împărţirea întreagă toţi indicatorii sunt nedefiniţi, iar restul şi câtul împărţirii se obţin în aceleaşi perechi de registre (AH,AL ; DX,AX ; EDX,EAX). În rest, descrierea instrucţiunii IDIV este aceeaşi ca la împărţirea fără semn (DIV), doar cu modificarea corespunzătoare a liniei: if (temp) / (numitor) > MAX or (temp) / (numitor) > -MAX 1 then... AAD (ASCII Adjust for Division) (AL) (AH) * 0AH + (AL) (AH) 0 Indicatori: modifică SF, ZF, PF, iar ceilalţi sunt nedefiniţi: OF, CF, AF. Modifică numărătorul din AL înaintea împărţirii a doi operanzi corecţi de tip zecimal neîmpachetat, astfel încât deîmpărţitul să reprezinte corect valoarea respectivă în binar, deoarece instrucţiunea realizează împărţirea în binar. AH trebuie să fie zero pentru următoarea instrucţiune DIV, în vederea furnizării unui rezultat corect. Câtul, în urma operaţiei de împărţire, este returnat în AL, iar restul în AH. Pentru a transforma rezultatul într-un număr corect de tip zecimal neîmpachetat (ASCII), în cazul în care câtul este mai mare de 9, trebuie utilizată, după împărţire, instrucţiunea de corecţie AAM, bineînţeles după ce s-a salvat restul din AH.

19 Instrucţiuni de prelucrare la nivel de bit În setul de instrucţiuni există trei grupuri de instrucţiuni pentru manipularea biţilor, pentru date de tip octet, cuvânt sau dublu cuvânt, şi anume: instrucţiuni logice (NOT, AND, OR, XOR, TEST etc.); instrucţiuni de deplasare (SHL, SAL, SHR, SAR etc.); instrucţiuni de rotire (ROL, ROR, RCL, RCR); Toate aceste operaţii se efectuează bit cu bit. Instrucţiuni logice Aceste instrucţiuni modifică indicatorii astfel: OF şi CF 0; AF nedefinit; SF, ZF, PF sunt poziţionaţi conform rezultatului instrucţiunii respective şi pot fi testaţi de instrucţiunile de salt condiţionat. Excepţie: instrucţiunea NOT nu modifică nici un indicator. NOT <dest> Inversează toţi biţii operandului sursă (complement faţă de 1). Nu afectează nici un indicator. AND <dest>, <sursa> (dest) OR <dest>, <sursa> (dest) XOR <dest>, <sursa> (dest) TEST <dest>, <sursa> (dest) and (sursa) (dest) or (sursa) (dest) xor (sursa) Poziţionează indicatorii pentru operaţia (dest) and (sursa), fără a modifica nici un operand. Dacă instrucţiunea TEST este urmată de o instrucţiune de salt JNZ, saltul va avea loc dacă există cel puţin doi biţi egali cu 1 pe aceleaşi poziţii în cei doi operanzi ai instrucţiunii. Operanzii pot fi întocmai ca la instrucţiunile de transfer, adică reg/mem pentru destinaţie şi reg/mem sau dată pentru sursă. Tot în această categorie pot fi incluse şi instrucţiunile, specifice procesoarelor 386/486, de testare / modificare de bit, cele de scanare pe bit, precum şi instrucţiunile de setare condiţionată.

20 Instrucţiuni de testare şi modificare a unui bit Aceste instrucţiuni operează pe un singur bit, specificat în instrucţiune prin deplasamentul său (în cel de-al doilea operand, care poate fi o dată de 8 biţi sau un registru de 16/32 biţi) faţă de bitul cel mai puţin semnificativ al operandului destinaţie (registru sau locaţie de memorie de 16/32 biţi). Bitul respectiv este transferat în CF şi apoi modificat conform instrucţiunii respective (ceilalţi indicatori rămân nemodificaţi). BT <dest>, <pozitie> (Bit Test) (CF) Bit (dest, pozitie) BTS <dest>, <pozitie> (Bit Test and Set) (CF) Bit (dest, pozitie), Bit (dest, pozitie) 1 BTR <dest>, <pozitie> (Bit Test and Reset) (CF) Bit (dest, pozitie), Bit (dest, pozitie) 0 BTC <dest>, <pozitie> (Bit Test and Complement) (CF) Bit (dest, pozitie), Bit (dest, pozitie) Not (Bit (dest, pozitie)) Instrucţiuni de scanare pe bit Aceste instrucţiuni permit scanarea directă a biţilor din cel de-al doilea operand (de tip cuvânt sau dublu cuvânt), începând cu bitul mai puţin semnificativ (forward) sau invers, începând cu bitul cel mai semnificativ (reverse), pentru a determina primul bit egal cu 1. Dacă toţi biţii sunt zero, atunci ZF=1; în caz contrar ZF=0, şi registrul destinaţie va reţine indexul primului bit 1 din operandul sursă (registru sau memorie de aceeaşi dimensiune cu registrul destinaţie). Se modifică numai indicatorul ZF. scanare directă: BSF <dest>, <sursa> (Bit Scan Forward) scanare inversă: BSR <dest>, <sursa> (Bit Scan Reverse) Instrucţiuni de setare condiţionată Instrucţiunile din această categorie permit poziţionarea unui octet pe zero sau unu, în funcţie de una din cele 16 condiţii definite de indicatori. Operandul destinaţie, de tip octet, poate fi un registru sau o locaţie de memorie. Aceste instrucţiuni sunt folosite pentru implementarea expresiilor booleene din limbajele de nivel înalt. Forma generală a instrucţiunii este: SETcond <dest> (SET byte on condition) if cond then (dest) 1 else (dest) 0

21 Aceste instrucţiuni nu modifică nici un indicator. Cele 16 instrucţiuni referitoare la condiţiile respective sunt următoarele: SETE / SETZ Condiţia ZF = 1 SETNE / SETNZ Condiţia ZF = 0 SETL / SETNGE Condiţia SF <> OF, valori cu semn SETLE / SETNG Cond. SF <> OF sau ZF = 1, valori cu semn SETNL / SETGE Condiţia SF = OF, valori cu semn SETNLE / SETG Cond. SF = OF şi ZF = 0, valori cu semn SETB / SETNAE / SETC Cond. CF = 1, valori fără semn SETBE / SETNA Cond. CF = 1 sau ZF = 1,fără semn SETNB / SETAE / SETNC Cond. CF = 0, valori fără semn SETNBE / SETA Cond. CF = 0 şi ZF = 0,fără semn SETO / SETNO Cond. OF = 1 / respectiv OF = 0 SETP / SETPE Cond. PF = 1, adică paritate pară SETNP / SETPO Cond. PF = 0, adică paritate impară SETS / SETNS Cond. SF = 1 / respectiv SF = 0 Instrucţiuni de deplasare Deplasările pot fi aritmetice sau logice. Se poate deplasa operandul destinaţie cu până la 31 de biţi, corespunzător operandului contor codificat în instrucţiune (sunt luaţi în considerare numai ultimii 5 biţi ai acestuia). Contorul poate fi specificat ca o constantă imediată în instrucţiune, dacă are valoarea 1, sau ca registrul CL, dacă este diferit de 1; în acest fel, contorul de deplasări poate fi o variabilă furnizată în momentul execuţiei. Începând de la procesoarele 286 (386/486/Pentium) contorul, chiar dacă este diferit de 1, poate fi specificat în instrucţiune ca dată imediată. Deplasările aritmetice pot fi utilizate pentru a înmulţi sau împărţi numere binare prin puteri ale lui 2. Deplasările logice pot fi utilizate pentru a izola biţi în octeţi sau cuvinte. Indicatorii sunt modificaţi astfel: OF = este nedefinit într-o deplasare pe mai mulţi biţi; = este poziţionat corespunzător, dacă se efectuează o deplasare de un bit (1 dacă se modifică bitul de semn în urma deplasării, altfel este 0); CF = ultimul bit deplasat în afara operandului destinaţie; AF = nedefinit; SF, ZF, PF = modificaţi conform rezultatului. SHL / SAL <dest>, <contor> (SHift logical Left / Shift Arithmetic Left) Poziţiile eliberate din dreapta operandului se completează cu zerouri, indiferent de tipul deplasării; deci, între cele două mnemonici nu există nici o deosebire. Bitul cel mai semnificativ se deplasează în CF. În cazul în care contorul de deplasări este 1 şi dacă după deplasarea aritmetică (SAL), (CF) <> primul bit al rezultatului, deci s-a schimbat semnul rezultatului, atunci (OF) = 1 (depăşire domeniu de reprezentare); în caz contrar, (OF) = 0. Exemple:

22 shl ah, 1 ; deplasari de 1 bit, care va ajunge sal beta[bx][di], 1 ; in CF mov cl, 5 ; deplasari de mai multi biti, de ex. 5 sal dx, cl ; ultimul bit deplasat este in CF shl beta[bp][si], cl SHR <dest>, <contor> (SHift logical Right) Fiind o deplasare logică, poziţiile eliberate prin deplasare din stânga se vor completa cu zerouri. Bitul cel mai puţin semnificativ se va deplasa în CF. La o deplasare de 1 bit, dacă se modifică bitul de semn atunci (OF)=1; în caz contrar (OF)=0. SAR <dest>, <contor> (Shift Arithmetic Right) Bitul cel mai semnificativ îşi păstrează vechea valoare, dar este şi deplasat spre dreapta (extensie de semn), ceea ce înseamnă că nu poate să apară depăşire (schimbarea de semn a rezultatului) şi (OF)=0 la o deplasare de 1 bit. Bitul cel mai puţin semnificativ se va deplasa în CF. Trebuie menţionat că SAR nu furnizează acelaşi rezultat ca instrucţiunea IDIV pentru aceeaşi operanzi, dacă deîmpărţitul este negativ, şi biţi egali cu 1 sunt deplasaţi (SAR) în afara operandului. De exemplu, -5 deplasat la dreapta (SAR) cu un bit va furniza rezultatul -3, în timp ce împărţirea întreagă (IDIV) va furniza valoarea -2: (-5) = ( ) ( ) = (-3) Diferenţa dintre cele două instrucţiuni este că IDIV trunchiază toate câturile către zero, în timp ce SAR trunchiază numerele pozitive către zero, iar pe cele negative către infinit negativ. La 386/486 pot fi realizate instrucţiuni de deplasare dublă, pe cuvânt sau dublu cuvânt, furnizând din doi operanzi de intrare (cuvânt sau dublu cuvânt) un rezultat de ieşire de aceeaşi lungime (cuvânt sau dublu cuvânt). Operandul destinaţie poate fi registru sau memorie, iar sursa poate fi un registru general. Rezultatul înlocuieşte operandul destinaţie, iar contorul numărului de biţi deplasaţi este specificat de registrul CL sau ca o valoare imediată de 8 biţi; el poate avea valoarea maximă 31 (deci este considerat modulo 32). Indicatorii sunt poziţionaţi la fel ca la deplasările multibit. Aceste instrucţiuni furnizează operaţiile de bază necesare pentru implementarea operaţiilor de deplasare pe şiruri lungi de biţi (64 sau mai mult) nealiniaţi. SHLD CF <dest>, <sursa>, <contor> (SHift Left Double) Destinaţie Sursă

23 SHRD <dest>, <sursa>, <contor> (SHift Right Double) Destinaţie CF Sursă De notat că registrul sursă nu se modifică, deci el rămâne la valoarea avută anterior deplasării; poziţiile eliberate, pe durata deplasării, prin deplasarea biţilor se vor pune pe zero. Instrucţiunea este utilă atunci când se împachetează date din mai multe surse diferite. Instrucţiuni de rotire În cazul rotaţiilor, biţii deplasaţi în afara operandului nu sunt pierduţi, ca în cazul deplasărilor, ci sunt rotiţi înapoi către celălalt capăt al operandului. Numărul de rotiri este dat de un contor care poate fi constanta 1 sau registrul CL, dacă numărul de rotiri este diferit de 1. Ca şi la deplasări contorul din CL este interpretat modulo 32, adică sunt luaţi în considerare ultimii 5 biţi ai acestuia. Începând de la procesoarele 286 (deci şi la următoarele: contorul, chiar dacă este diferit de 1, poate fi specificat în instrucţiune ca dată imediată. Indicatorul CF poate acţiona ca o extensie a operandului, la două dintre instrucţiunile de rotire, permiţând unui bit să fie izolat în CF şi apoi testat de instrucţiuni JC sau JNC. Rotaţiile modifică numai CF şi OF: CF = ultimul bit rotit în afara operandului; OF = nedefinit pentru rotaţii multibit; = 1 sau 0, pentru rotaţie doar de 1 bit, după cum s-a modificat sau nu bitul de semn al operandului. ROL <dest>, <contor> (ROtate Left) CF B n B 0 ROR <dest>, <contor> (ROtate Right) CF B n B 0 RCL <dest>, <contor> (Rotate through Carry Left) CF B n B 0 RCR <dest>, <contor> (ROtate through Carry Right) CF B n B 0

24 Exemple utilizând aceste instrucţiuni: 5) Tipărirea conţinutului registrului DX, în format octal: tip_car proc far ; procedura afiseaza caracterul al carui cod ASCII ; il primeste in registrul AL push dx ; se salveaza registrul de lucru DX mov dl, al ; se apeleaza functia 2 din DOS care mov ah, 2 ; afiseaza caracterul al carui cod int 21h ; ASCII se transmite in registrul DL pop dx ; se reface registrul salvat ret tip_car endp tip_octal proc far ; tipareste in octal valoarea fara semn transmisa in DX push cx ; se salveaza registrele de lucru push ax ; prima cifra de afisat este doar de 1 bit rol dx, 1 ; care este rotit pe ultimul bit mov al, dl ; si dusa in registrul AL and al, 1 ; se sterg ceilalti biti add al, 30h ; este convertita la codul ASCII call tip_car ; si se afiseaza ; urmatoarele 5 cifre sunt de cate 3 biti mov cx, 5 ; contor numar de cifre de afisat octal1: push cx ; se salveaza contorul in stiva mov cl, 3 ; contor numar de rotiri la stanga rol dx, cl ; cifra este rotita pe ultimii 3 biti mov al, dl ; si adusa in AL and al, 7 ; sunt stersi ceilalti biti add al, 30h ; si convertita la codul ASCII call tip_car ; afisarea cifrei pop cx ; se citeste valoarea contorului de cifre loop octal1 pop ax ; se refac registrele salvate in stiva pop ret tip_octal cx endp 6) Împachetarea unor date din mai multe surse diferite utilizând instrucţiunea de deplasare pe dublu cuvânt shld. De exemplu, să asamblăm într-un singur cuvânt 4 tetrade diferite, aflate

25 în memorie la locaţii succesive (începând de la adresa tetrada) aliniate la stânga în cuvintele respective şi memorate începând cu tetrada cea mai semnificativă. mov si, 0 ; index tetrada mov cx, 4 ; contor numar de tetrade, de asamblat in cuvant reia_depl: mov ax[si] ; tetrada si shld bx, ax, 4 ; deplasare tetrada in BX inc si ; actualizare index loop reia_depl ; in final in BX se va afla cuvantul asamblat ; (cele 4 tetrade)

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin Structura și Organizarea Calculatoarelor Titular: BĂRBULESCU Lucian-Florentin Chapter 3 ADUNAREA ȘI SCĂDEREA NUMERELOR BINARE CU SEMN CONȚINUT Adunarea FXP în cod direct Sumator FXP în cod direct Scăderea

More information

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare).

Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Programare în limbaj de asamblare 16. Formatul instrucţiunilor (codificare, moduri de adresare). Formatul instrucţiunilor

More information

Metrici LPR interfatare cu Barix Barionet 50 -

Metrici LPR interfatare cu Barix Barionet 50 - Metrici LPR interfatare cu Barix Barionet 50 - Barionet 50 este un lan controller produs de Barix, care poate fi folosit in combinatie cu Metrici LPR, pentru a deschide bariera atunci cand un numar de

More information

Subiecte Clasa a VI-a

Subiecte Clasa a VI-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

More information

Sisteme de numeraţie Reprezentarea informaţiei numerice în calculatoare Terminologia folosită în legătură cu erorile de calcul Reprezentarea

Sisteme de numeraţie Reprezentarea informaţiei numerice în calculatoare Terminologia folosită în legătură cu erorile de calcul Reprezentarea - Curs8 - Sisteme de numeraţie Reprezentarea informaţiei numerice în calculatoare Terminologia folosită în legătură cu erorile de calcul Reprezentarea numerelor reale Standardul IEEE 754 pentru reprezentarea

More information

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE.

ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE. LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. ARHITECTURA SISTEMELOR DE CALCUL ŞI SISTEME DE OPERARE LUCRĂRILE DE LABORATOR Nr. 6, 7 şi 8 REPREZENTAREA INFORMAŢIILOR NUMERICE ÎNTREGI ŞI REALE. I. SCOPUL LUCRĂRILOR Lucrările prezintă reprezentarea

More information

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice "Îmbunătăţirea proceselor şi activităţilor educaţionale în cadrul programelor de licenţă şi masterat în domeniul

More information

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER

3.2 Arhitectura setului de instrucţiuni ISA. Copyright Paul GASNER 3.2 Arhitectura setului de instrucţiuni ISA Copyright Paul GASNER Programarea CPU Programele scrise în limbaje de nivel înalt trebuie compilate pentru a obţine un program executabil Din punctul de vedere

More information

Versionare - GIT ALIN ZAMFIROIU

Versionare - GIT ALIN ZAMFIROIU Versionare - GIT ALIN ZAMFIROIU Controlul versiunilor - necesitate Caracterul colaborativ al proiectelor; Backup pentru codul scris Istoricul modificarilor Terminologie și concepte VCS Version Control

More information

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document

More information

Procesarea Imaginilor

Procesarea Imaginilor Procesarea Imaginilor Curs 11 Extragerea informańiei 3D prin stereoviziune Principiile Stereoviziunii Pentru observarea lumii reale avem nevoie de informańie 3D Într-o imagine avem doar două dimensiuni

More information

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N Pentru a putea vizualiza imaginile unei camere web IP conectată într-un router ZTE H218N sau H298N, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

Seminar 3 ASC MIR Operatii pe biti Operatii cu siruri

Seminar 3 ASC MIR Operatii pe biti Operatii cu siruri Seminar 3 ASC MIR Operatii pe biti Operatii cu siruri 1. Operatii logice pe biti Sintaxa Efect AND dest, sursă dest = dest AND sursă - operanzii sursă şi destinaţie trebuie să aibă ambii aceeaşi dimensiune

More information

UNITATEA CENTRALĂ DE PRELUCRARE CPU12

UNITATEA CENTRALĂ DE PRELUCRARE CPU12 CAPITOLUL 2 UNITATEA CENTRALĂ DE PRELUCRARE CPU12 2.1. INTRODUCERE Unitatea centrală de prelucrare CPU12 este componentă a unui microcontroler din familia HCS12X. Principalele componente ale microcontrolerului

More information

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie

CURS 2. Reprezentarea numerelor intregi si reale. Sistem de numeraţie Sistem de numeraţie CURS 2 Reprezentarea numerelor intregi si reale F.Boian, Bazele matematice ale calculatoarelor, UBB Cluj-Napoca, 2002 How computers see numbers and letters http://faculty.etsu.edu/lutter/courses/phys4007/p4007append_f.pdf

More information

Modalitǎţi de clasificare a datelor cantitative

Modalitǎţi de clasificare a datelor cantitative Modalitǎţi de clasificare a datelor cantitative Modul de stabilire a claselor determinarea pragurilor minime şi maxime ale fiecǎrei clase - determinǎ modul în care sunt atribuite valorile fiecǎrei clase

More information

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4 Metode merice - Lucrarea de laborator 4 Lucrarea de laborator nr. 4 I. Scopul lucrării Elemente de programare în MAPLE II. III. Conţinutul lucrării 1. Atribuirea. Decizia. Structuri repetitive. 2. Proceduri

More information

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962) ARBORI AVL (denumiti dupa Adelson-Velskii si Landis, 1962) Georgy Maximovich Adelson-Velsky (Russian: Гео ргий Макси мович Адельсо н- Ве льский; name is sometimes transliterated as Georgii Adelson-Velskii)

More information

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple Memoria cache Memoria virtuală 1 Memorii RAM: datele sunt identificate cu ajutorul unor adrese unice Memorii asociative:

More information

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban Reflexia şi refracţia luminii. Aplicaţii. Sumar 1. Indicele de refracţie al unui mediu 2. Reflexia şi refracţia luminii. Legi. 3. Reflexia totală 4. Oglinda plană 5. Reflexia şi refracţia luminii în natură

More information

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. 9. Memoria Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. Primul nivel conține memorie de program cache (L1P) și memorie de date cache (L1D). Al doilea

More information

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) Semnale şi sisteme Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) http://shannon.etc.upt.ro/teaching/ssist/ 1 OBIECTIVELE CURSULUI Disciplina îşi propune să familiarizeze

More information

Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii

Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii Mulțumim anticipat tuturor acelora care vor transmite critici/observații/sugestii ilincamircea@yahoo.com TEMA III.1 v1 : ORGANIZAREA DATELOR UNUI PROGRAM C/C++ ÎN MO postat 02.11.2016 (sinteză) Coținutul

More information

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm Preparatory Problems 1Se dau punctele coliniare A, B, C, D în această ordine aî AB 4 cm, AC cm, BD 15cm a) calculați lungimile segmentelor BC, CD, AD b) determinați distanța dintre mijloacele segmentelor

More information

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; } Arbori Arborii, ca şi listele, sunt structuri dinamice. Elementele structurale ale unui arbore sunt noduri şi arce orientate care unesc nodurile. Deci, în fond, un arbore este un graf orientat degenerat.

More information

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows Ghid identificare versiune AWP, instalare AWP 4.5.4 şi verificare importare certificat în Store-ul de Windows Data: 28.11.14 Versiune: V1.1 Nume fişiser: Ghid identificare versiune AWP, instalare AWP 4-5-4

More information

GHID DE TERMENI MEDIA

GHID DE TERMENI MEDIA GHID DE TERMENI MEDIA Definitii si explicatii 1. Target Group si Universe Target Group - grupul demografic care a fost identificat ca fiind grupul cheie de consumatori ai unui brand. Toate activitatile

More information

Mecanismul de decontare a cererilor de plata

Mecanismul de decontare a cererilor de plata Mecanismul de decontare a cererilor de plata Autoritatea de Management pentru Programul Operaţional Sectorial Creşterea Competitivităţii Economice (POS CCE) Ministerul Fondurilor Europene - Iunie - iulie

More information

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive. . egimul de curent continuu de funcţionare al sistemelor electronice În acest regim de funcţionare, valorile mărimilor electrice ale sistemului electronic sunt constante în timp. Aşadar, funcţionarea sistemului

More information

INTEROGĂRI ÎN SQL SERVER

INTEROGĂRI ÎN SQL SERVER INTEROGĂRI ÎN SQL SERVER Principala operaţie efectuată într-o bază de date este operaţia de extragere a datelor, care se realizează cu ajutorul unei clauze SELECT. SELECT Clauza SELECT are o sintaxă foarte

More information

Auditul financiar la IMM-uri: de la limitare la oportunitate

Auditul financiar la IMM-uri: de la limitare la oportunitate Auditul financiar la IMM-uri: de la limitare la oportunitate 3 noiembrie 2017 Clemente Kiss KPMG in Romania Agenda Ce este un audit la un IMM? Comparatie: audit/revizuire/compilare Diferente: audit/revizuire/compilare

More information

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC Anul II Nr. 7 aprilie 2013 ISSN 2285 6560 Referent ştiinţific Lector univ. dr. Claudiu Ionuţ Popîrlan Facultatea de Ştiinţe Exacte Universitatea din

More information

UNIVERSITATEA DIN BACĂU FACULTATEA DE INGINERIE DAN ROTAR MICROPROCESOARE

UNIVERSITATEA DIN BACĂU FACULTATEA DE INGINERIE DAN ROTAR MICROPROCESOARE UNIVERSITATEA DIN BACĂU FACULTATEA DE INGINERIE DAN ROTAR MICROPROCESOARE Note de curs EDITURA ALMA MATER BACĂU 2007 CUPRINS pag. CAPITOLUL 1 PROGRAMAREA ÎN LIMBAJ DE ASAMBLARE 6 1.1. Introducere 6 1.2.

More information

CERERI SELECT PE O TABELA

CERERI SELECT PE O TABELA SQL - 1 CERERI SELECT PE O TABELA 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325

More information

.. REGISTRE Registrele sunt circuite logice secvenţiale care primesc, stochează şi transferă informaţii sub formă binară. Un registru este format din mai multe celule bistabile de tip RS, JK sau D şi permite

More information

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii www.pwc.com/ro Aspecte controversate în Procedura Insolvenţei şi posibile soluţii 1 Perioada de observaţie - Vânzarea de stocuri aduse în garanţie, în cursul normal al activității - Tratamentul leasingului

More information

6. Bucle. 6.1 Instrucţiunea while

6. Bucle. 6.1 Instrucţiunea while 6. Bucle În capitolul trecut am văzut cum putem selecta diferite instrucţiuni pentru execuţie folosind instrucţiunea if. O buclă este o structură de control care provoacă executarea unei instrucţiuni sau

More information

Reţele Neuronale Artificiale în MATLAB

Reţele Neuronale Artificiale în MATLAB Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox.

More information

X-Fit S Manual de utilizare

X-Fit S Manual de utilizare X-Fit S Manual de utilizare Compatibilitate Acest produs este compatibil doar cu dispozitivele ce au următoarele specificații: ios: Versiune 7.0 sau mai nouă, Bluetooth 4.0 Android: Versiune 4.3 sau mai

More information

Olimpiad«Estonia, 2003

Olimpiad«Estonia, 2003 Problema s«pt«m nii 128 a) Dintr-o tabl«p«trat«(2n + 1) (2n + 1) se ndep«rteaz«p«tr«telul din centru. Pentru ce valori ale lui n se poate pava suprafata r«mas«cu dale L precum cele din figura de mai jos?

More information

Update firmware aparat foto

Update firmware aparat foto Update firmware aparat foto Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încredere că puteţi realiza acest update cu succes, acesta

More information

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci.

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci. O condiţie necesară şi suficientă ca un număr să fie număr Fibonacci Autor: prof. Staicu Ovidiu Ninel Colegiul Economic Petre S. Aurelian Slatina, jud. Olt 1. Introducere Propuse de Leonardo Pisa în 1202,

More information

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila MS POWER POINT s.l.dr.ing.ciprian-bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Pornire PowerPoint Pentru accesarea programului PowerPoint se parcurg următorii paşi: Clic pe butonul de

More information

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET CAIETUL DE SARCINI Organizare evenimente VS/2014/0442 Euro network supporting innovation for green jobs GREENET Str. Dem. I. Dobrescu, nr. 2-4, Sector 1, CAIET DE SARCINI Obiectul licitaţiei: Kick off,

More information

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL PCSPIM UAL DPE. Fig.1. Structura unui sistem de calcul

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL PCSPIM UAL DPE. Fig.1. Structura unui sistem de calcul SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL PCSPIM I. Sisteme de calcul 1. Arhitectura generală a unui sistem de calcul DPI UCC MEM Canale I/E DPI/E, MEM externe UAL DPE UCP UC Fig.1. Structura

More information

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Nume şi Apelativ prenume Adresa Număr telefon  Tip cont Dobânda Monetar iniţial final Enunt si descriere aplicatie. Se presupune ca o organizatie (firma, banca, etc.) trebuie sa trimita scrisori prin posta unui numar (n=500, 900,...) foarte mare de clienti pe care sa -i informeze cu diverse

More information

4. Asignarea adreselor IP

4. Asignarea adreselor IP 4. Asignarea adreselor IP Scopul acestei lucrări este să familiarizeze studenţii cu noțiunea de adresă IP, clase de adrese IP, mască de reţea, adresă IP de rețea, adresă IP de broadcast, metode de alocare

More information

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII

MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII MODELUL UNUI COMUTATOR STATIC DE SURSE DE ENERGIE ELECTRICĂ FĂRĂ ÎNTRERUPEREA ALIMENTĂRII SARCINII Adrian Mugur SIMIONESCU MODEL OF A STATIC SWITCH FOR ELECTRICAL SOURCES WITHOUT INTERRUPTIONS IN LOAD

More information

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL QTSPIM UAL DPE. Fig.1. Structura unui sistem de calcul

SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL QTSPIM UAL DPE. Fig.1. Structura unui sistem de calcul SISTEME DE CALCUL. LIMBAJ DE ASAMBLARE. SIMULATORUL QTSPIM I. Sisteme de calcul 1. Arhitectura generală a unui sistem de calcul DPI UCC MEM Canale I/E DPI/E, MEM externe UAL DPE UCP UC Fig.1. Structura

More information

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: 9, La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - (ex: "9", "125", 1573" - se va scrie fara ghilimele) Parola: -

More information

The First TST for the JBMO Satu Mare, April 6, 2018

The First TST for the JBMO Satu Mare, April 6, 2018 The First TST for the JBMO Satu Mare, April 6, 08 Problem. Prove that the equation x +y +z = x+y +z + has no rational solutions. Solution. The equation can be written equivalently (x ) + (y ) + (z ) =

More information

ISBN-13:

ISBN-13: Regresii liniare 2.Liniarizarea expresiilor neliniare (Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISBN-13:978-0-07-340110-2 ) Există cazuri în care aproximarea

More information

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT

KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT KAJOT V.RO BLACK PLANET JOC DE NOROC CU RISC LIMITAT România CONTINE URMATOARELE JOCURI: AFRICAN WILD DIAMONDS CHERRY KISS WILD LADY JOKER BAR REELS OF RA RETRO WHEELS ROUTE 81 SIMPLY GOLD XXL SIMPLY 6

More information

PROIECTAREA ALGORITMILOR

PROIECTAREA ALGORITMILOR Universitatea Constantin Brâncuşi Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu 3 PROIECTAREA ALGORITMILOR Lect. univ. dr. Adrian Runceanu 1 Curs 3 Alocarea dinamică de

More information

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB Grafuri bipartite Lecție de probă, informatică clasa a XI-a Mihai Bărbulescu b12mihai@gmail.com Facultatea de Automatică și Calculatoare, UPB Colegiul Național de Informatică Tudor Vianu București 27 februarie

More information

Sisteme de operare 19. Gestiunea memoriei

Sisteme de operare 19. Gestiunea memoriei Platformăde e-learning și curriculăe-content pentru Sisteme de operare 19. Gestiunea memoriei Ierarhia memoriei 2 Memoria principală De obicei RAM (Random Access Memory) Menținerea mai multor procese Ce

More information

Propuneri pentru teme de licență

Propuneri pentru teme de licență Propuneri pentru teme de licență Departament Automatizări Eaton România Instalație de pompare cu rotire în funcție de timpul de funcționare Tablou electric cu 1 pompă pilot + 3 pompe mari, cu rotirea lor

More information

Proiectarea şi Verificarea cu HDL a Circuitelor Digitale

Proiectarea şi Verificarea cu HDL a Circuitelor Digitale Proiectarea şi Verificarea cu HDL a Circuitelor Digitale Danuţ Burdia Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei Universitatea Tehnică Gh. Asachi din Iaşi 1 Cuprins I. Introducere.

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

Laborator 07. Procesorul MIPS versiune pe 16 biți, cu un ciclu de ceas pe instrucțiune

Laborator 07. Procesorul MIPS versiune pe 16 biți, cu un ciclu de ceas pe instrucțiune Laborator 07 Procesorul MIPS versiune pe 16 biți, cu un ciclu de ceas pe instrucțiune Unitatea de Instruction Execute EX / Unitatea de Memorie MEM / Unitatea Write-Back WB 0. Resurse minimale necesare!

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

Principalele blocuri interne ale microprocesorului 8085 sunt prezentate în Figura 1: Comandă întreruperi și I/O seriale. Bistabile condiții (5 biți)

Principalele blocuri interne ale microprocesorului 8085 sunt prezentate în Figura 1: Comandă întreruperi și I/O seriale. Bistabile condiții (5 biți) L6. ARHITECTURA MICROPROCESORULUI 8085. MODUL DE EXECUȚIE A INSTRUCȚIUNILOR. APLICAȚII DE VIZUALIZARE/EDITARE A CONȚINUTULUI UNOR REGISTRE ȘI LOCAȚII DE MEMORIE PE PLACA DE DEZVOLTARE. 1. Obiective Prin

More information

Documentaţie Tehnică

Documentaţie Tehnică Documentaţie Tehnică Verificare TVA API Ultima actualizare: 27 Aprilie 2018 www.verificaretva.ro 021-310.67.91 / 92 info@verificaretva.ro Cuprins 1. Cum funcţionează?... 3 2. Fluxul de date... 3 3. Metoda

More information

CERERI SELECT PE MAI MULTE TABELE

CERERI SELECT PE MAI MULTE TABELE SQL - 2 CERERI SELECT PE MAI MULTE TABELE 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890

More information

1.1.ERORI ABSOLUTE ŞI ERORI RELATIVE

1.1.ERORI ABSOLUTE ŞI ERORI RELATIVE Lucrarea 1 ERORI SCOPUL LUCRĂRII În prima parte a lucrării se prezintă conceptele fundamentale ale reprezentării numerelor reale, utile în toate problemele de metode numerice. Într-un fel sau altul tehnicile

More information

ASAMBLOARELE SI PROCESUL DE ASAMBLARE

ASAMBLOARELE SI PROCESUL DE ASAMBLARE ASAMBLOARELE SI PROCESUL DE ASAMBLARE Plan: 1.Nivelul limbajului de asamblare ( Viulet Tiberiu, 442A ) definitia asamblorului limbaj de asamblare folosirea limbajului de asamblare formatul instructiunilor

More information

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router

2. Setări configurare acces la o cameră web conectată într-un echipament HG8121H cu funcție activă de router Pentru a putea vizualiza imaginile unei camere web IP conectată într-un echipament Huawei HG8121H, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

INTERPRETOARE DE COMENZI

INTERPRETOARE DE COMENZI Rularea lui determin afişarea mesajului hello world la consola 3.2. Facilităţi ale interpretoarelor de comenzi 3.1. Introducere Capitolul 3 INTERPRETOARE DE COMENZI Interpretorul de comenzi este un program

More information

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig.

Proceduri stocate. Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig. Proceduri stocate Crearea procedurilor stocate. Varianta 1 În Management Studio se dă clic pe New Query ca în imaginea de mai jos: Fig. 1 Odată cu deschiderea editorului SQL, apare și bara de instrumente

More information

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales MANAGEMENTUL CALITĂȚII - MC Proiect 5 Procedura documentată pentru procesul ales CUPRINS Procedura documentată Generalități Exemple de proceduri documentate Alegerea procesului pentru realizarea procedurii

More information

ALGORITMI DE GESTIUNE A PAGINILOR DE MEMORIE

ALGORITMI DE GESTIUNE A PAGINILOR DE MEMORIE ALGORITMI DE GESTIUNE A PAGINILOR DE MEMORIE Ceausu Nicolae Bogdan Aparitia erorii de pagina Operatia de inlocuire a paginilor este necesara atunci cand apare o asa-numita eroare de pagina (in engleza

More information

Metoda BACKTRACKING. prof. Jiduc Gabriel

Metoda BACKTRACKING. prof. Jiduc Gabriel Metoda BACKTRACKING prof. Jiduc Gabriel Un algoritm backtracking este un algoritm de căutare sistematică și exhausivă a tuturor soluțiilor posibile, dintre care se poate alege apoi soluția optimă. Problemele

More information

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe Candlesticks 14 Martie 2013 Lector : Alexandru Preda, CFTe Istorie Munehisa Homma - (1724-1803) Ojima Rice Market in Osaka 1710 devine si piata futures Parintele candlesticks Samurai In 1755 a scris The

More information

Lucrarea 5. Portul paralel standard

Lucrarea 5. Portul paralel standard Lucrarea 5 Portul paralel standard 1. Scopul lucrării Lucrarea prezintă portul paralel standard al calculatoarelor compatibile IBM PC şi urmăreşte familiarizarea cu diferite soluţii de conectare ale unor

More information

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell

Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell Tema 1 - Transferuri de date DMA intr-o arhitectura de tip Cell Termen de trimitere a temei: Luni, 31 martie 2008, ora 23:55 1. Specificatii functionale O arhitectura de tip Cell consta din urmatoarele

More information

- Compararea eficienţei metodelor care rezolvă o aceeaşi clasă de probleme

- Compararea eficienţei metodelor care rezolvă o aceeaşi clasă de probleme 1 CURS 1 INTRODUCERE ÎN CALCULUL ŞTIINŢIFIC ------------------------------------------------------------------------------------------------------------ 1. Analiza numerică şi calculul ştiinţific.. Reprezentarea

More information

Constructii sintetizabile in verilog

Constructii sintetizabile in verilog Constructii sintetizabile in verilog Introducere Programele verilog se împart în două categorii: cod pentru simulare și cod sintetizabil. Codul scris pentru simulare (testul) nu este sintetizabil. Codul

More information

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip Mods euro truck simulator 2 harta romaniei by elyxir Mods euro truck simulator 2 harta romaniei by elyxir.zip 26/07/2015 Download mods euro truck simulator 2 harta Harta Romaniei pentru Euro Truck Simulator

More information

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL

Capitolul 4 SUBCERERI. F. Radulescu. Curs: Baze de date - Limbajul SQL Capitolul 4 SUBCERERI 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325 VASILE 2

More information

Platformă de e learning și curriculă e content pentru învățământul superior tehnic

Platformă de e learning și curriculă e content pentru învățământul superior tehnic Platformă de e learning și curriculă e content pentru învățământul superior tehnic Testarea Sistemelor 17. Testarea funcţională fără modele ale defectelor Testarea funcțională Metodele de generare a testelor

More information

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog Laborator 1 Programare declarativă O paradigmă de programare în care controlul fluxului de execuție este lăsat la latitudinea implementării limbajului, spre deosebire de programarea imperativă în care

More information

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE.

Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. Baze de date-anul 2 Laborator 4 SQL Funcţii grup şi clauzele GROUP BY, HAVING. Operatorii ROLLUP şi CUBE. I. [Funcţii grup şi clauza GROUP BY] Clauza GROUP BY este utilizată pentru a diviza liniile unui

More information

EN teava vopsita cu capete canelate tip VICTAULIC

EN teava vopsita cu capete canelate tip VICTAULIC ArcelorMittal Tubular Products Iasi SA EN 10217-1 teava vopsita cu capete canelate tip VICTAULIC Page 1 ( 4 ) 1. Scop Documentul specifica cerintele tehnice de livrare pentru tevi EN 10217-1 cu capete

More information

Lucrarea nr. 2. Automatizarea vopsirii unei piese

Lucrarea nr. 2. Automatizarea vopsirii unei piese Lucrarea nr. 2. Automatizarea vopsirii unei piese 1. Introducere 1.1. Conectarea intrărilor şi ieşirilor unui automat programabil Cataloagele firmelor constructoare de AP indică modul specific de legare

More information

6. Excepţii şi aserţiuni. 6. Excepţii şi aserţiuni

6. Excepţii şi aserţiuni. 6. Excepţii şi aserţiuni 6. Excepţii şi aserţiuni 1 6. Excepţii şi aserţiuni Tipuri excepţii Clauza throws Generarea excepţiilor Clauzele try, catch şi finally Recomandări pentru utilizarea excepţiilor Aserţiuni 2 Introducere

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiect nr. 154/323 cod SMIS 4428 cofinanțat de prin Fondul European de Dezvoltare Regională Investiții pentru viitorul

More information

Curs 1 17 Februarie Adrian Iftene

Curs 1 17 Februarie Adrian Iftene Curs 1 17 Februarie 2011 Adrian Iftene adiftene@info.uaic.ro 1 Limbajele calculatorului Compilate Interpretate Scripting P-cod Orientate pe aspect Orientate spre date 2 Cum lucrează? Orice program trebuie

More information

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M ) FLEXIMARK FCC din oțel inoxidabil este un sistem de marcare personalizată în relief pentru cabluri și componente, pentru medii dure, fiind rezistent la acizi și la coroziune. Informații Included in FLEXIMARK

More information

Evoluția pieței de capital din România. 09 iunie 2018

Evoluția pieței de capital din România. 09 iunie 2018 Evoluția pieței de capital din România 09 iunie 2018 Realizări recente Realizări recente IPO-uri realizate în 2017 și 2018 IPO în valoare de EUR 312.2 mn IPO pe Piața Principală, derulat în perioada 24

More information

SISTEME CU CIRCUITE INTEGRATE DIGITALE (EA II) ELECTRONICĂ DIGITALĂ (CAL I) Prof.univ.dr.ing. Oniga Ștefan

SISTEME CU CIRCUITE INTEGRATE DIGITALE (EA II) ELECTRONICĂ DIGITALĂ (CAL I) Prof.univ.dr.ing. Oniga Ștefan SISTEME CU CIRCUITE INTEGRATE DIGITALE (EA II) ELECTRONICĂ DIGITALĂ (CAL I) Prof.univ.dr.ing. Oniga Ștefan Convertoare numeric analogice şi analog numerice Semnalele din lumea reală, preponderent analogice,

More information

Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări

Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări Dezvoltarea unei ontologii de domeniu (Support Vector Machine versus Bayes Naive) Referat

More information

R O M Â N I A CURTEA CONSTITUŢIONALĂ

R O M Â N I A CURTEA CONSTITUŢIONALĂ R O M Â N I A CURTEA CONSTITUŢIONALĂ Palatul Parlamentului Calea 13 Septembrie nr. 2, Intrarea B1, Sectorul 5, 050725 Bucureşti, România Telefon: (+40-21) 312 34 84; 335 62 09 Fax: (+40-21) 312 43 59;

More information

Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice

Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Tipuri și nivele de paralelism Clasificarea arhitecturilor paralele Arhitecturi vectoriale Arhitecturi SIMD Arhitecturi sistolice Arhitecturi cu fire de execuție multiple 1 Arhitecturi cu memorie partajată

More information

Lucrarea nr. 1. Automatizarea unui reactor de etilare

Lucrarea nr. 1. Automatizarea unui reactor de etilare Lucrarea nr. 1. Automatizarea unui reactor de etilare 1. Introducere 1.1. Conectarea intrărilor şi ieşirilor unui automat programabil Cataloagele firmelor constructoare de AP indică modul specific de legare

More information

Posibilitati de realizare a transferurilor de date

Posibilitati de realizare a transferurilor de date Revista Informatica Economica, nr. 1 (17)/2001 1 Posibilitati de realizare a transferurilor de date Lect. Emanuela-Mariana CHICHEA Facultatea de Stiinte Economice, Universitatea din Craiova Transferul

More information

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A. Excel Advanced Curriculum Școala Informală de IT Tel: +4.0744.679.530 Web: www.scoalainformala.ro / www.informalschool.com E-mail: info@scoalainformala.ro Cuprins 1. Funcții Excel pentru avansați 2. Alte

More information

CURS 1 INTRODUCERE ÎN CALCULUL TIINȚIFIC

CURS 1 INTRODUCERE ÎN CALCULUL TIINȚIFIC CURS INTRODUCERE ÎN CALCULUL TIINȚIFIC ------------------------------------------------------------------------------------------------------------. Analiza numerică şi calculul ştiinţific. 2. Reprezentarea

More information

Arbori sistolici binari

Arbori sistolici binari 1 Universitatea Tehnică Gh. Asachi Iaşi Facultatea de Automatică şi Calculatoare Şcoala de Studii Doctorale Arbori sistolici binari O. Brudaru aprilie 2006 Raport tehnic nr. 4/2006 Universitatea Tehnică

More information

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE

DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului produselor pentru construcții UE 305/2011/UE S.C. SWING TRADE S.R.L. Sediu social: Sovata, str. Principala, nr. 72, judetul Mures C.U.I. RO 9866443 Nr.Reg.Com.: J 26/690/1997 Capital social: 460,200 lei DECLARAȚIE DE PERFORMANȚĂ Nr. 101 conform Regulamentului

More information

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca PROCEDURA PRIVIND DECONTURILE 1. Scpul: Descrie structura si mdul de elabrare si prezentare a prcedurii privind dcumentele care trebuie intcmite si cursul acestra, atunci cind persana efectueaza un decnt.

More information