Arhitectura calculatoarelor - instrucțiuni logice

Proiect
8/10 (1 vot)
Domeniu: Calculatoare
Conține 31 fișiere: docx, exe, txt, settings, csproj, sln, suo, user, resources, pdb
Pagini : 26 în total
Cuvinte : 3589
Mărime: 149.59KB (arhivat)
Publicat de: Alin Grecu
Puncte necesare: 7
UNIVERSITATEA PETROL-GAZE DIN PLOIEŞTI FACULTATEA INGINERIE MECANICĂ ŞI ELECTRICĂ SPECIALIZAREA AUTOMATICĂ ŞI INFORMATICĂ APLICATĂ

Cuprins

  1. Introducere 3
  2. Capitolul I Notiuni de baza ale limbajului de asamblare 4-8
  3. Capitolul II Intructiunile logice NOT,AND, OR, XOR şi TEST 9-12
  4. Capitolul III Implemantarea instructiunilor logice intr-o aplicatie Visual C Sharp 13-20
  5. ANEXE (Cod sursă program, scheme, grafice). . . . . 21-25
  6. BIBLIOGRAFIE 26

Extras din proiect

Introducere

Limbajul de asamblare : avantaje si dezavantaje in folosirea lui

Desi este unul dintre cele mai vechi limbaje de programare, limbajul de asamblare este incorporat si in cele mai noi compilatoare cum ar fi Visual C++ si Delphi. Codul de asamblare este foarte apropiat de codul executabil al programelor, asamblorul avand rolul de a codifica instructiunile din limbaj de asamblare in cod masina.

In prezent, limbajul de asamblare este din ce in ce mai putin folosit in scrierea programelor, deoarece compilatoarele de ultima generatie au functiile cele mai folosite de programatori deja scrise si optimizate in limbaj de asamblare (gen memmove, memset / fillchar, etc.) incluse in unit-uri si biblioteci. Bineinteles, daca se doreste atingerea unor timpi de executie foarte mici, folosirea limbajului de asamblare este preferabila (cand avem algoritmul de complexitate optima).

Avantaje ale limbajului de asamblare

• Viteza foarte mare de executie a programelor (unele programe scrise si optimizate in asamblare au viteza de executie pana la 5-10 de ori mai mare decat cele scrise in C sau Pascal);

• Marimea codului executabil este foarte mica;

• Ajuta utilizatorul sa inteleaga mai bine cum functioneaza microprocesorul si sa scrie programe eficiente si in High Level Languages.

Dezavantaje ale limbajului de asamblare

• nu este portabil; un program scris pentru calculatoare IBM PC nu va rula pe un Apple Macintosh (difera unele instructiuni);

• un program in asamblare este mai greu de scris si ia mai mult timp decat un program scris in Pascal sau C;

• un program scris in asamblare este mai greu de depanat;

Majoritatea compilatoarelor din prezent permit programatorului sa scrie anumite parti de cod sau subprograme in asamblare, astfel incat programatorul sa poata scrie in asamblare doar partea din program care se executa de cele mai multe ori, programul ruland astfel mult mai rapid. Sunt si compilatoare dedicate exclusiv limbajului de asamblare, cum ar fi TASM - Turbo Assembler (il gasiti in directorul BP/Bin), MASM - Microsoft Assembler, etc.

Capitol 1

Notiuni de baza ale limbajului de asamblare

Registrii

Limbajul de asamblare este foarte apropiat de codul executabil, deci pentru ca programatorul sa fie capabil sa scrie codul in asamblare trebuie sa cunoasca modul in care functioneaza microprocesorul si modul in care acesta executa instructiunile.

Toate operatiile aritmetice/logice/acces la memorie se fac prin intermediul registrilor. Registrii microprocesorului sunt asemanatori variabilelor (pot fi initializati cu anumite valori, se pot efectua operatii asupra lor, pot fi accesati (cititi/modificati)).

Registrii microprocesorului sunt clasificati in mai multe categorii :

• registri de uz general : eax, ebx, ecx, edx si subregistrii lor;

• registri segment : cs (code segment), ds (data segment), es (extra segment), ss (stack segment) - sunt folositi pentru adresarea memoriei in cazul modelului de memorie segmentat

• registrii index : esi, edi (source index, destination index);

• registri speciali : ebp, esp, ip;

Registrii de uz general sunt folositi in executia operatiilor aritmetice si logice. Registrii de segment si cei index sunt folositi in adresarea memoriei, iar cei speciali sunt folositi de microprocesor si S.O. pentru rularea programelor.

Registrii de uz general

Acestia sunt :

• eax - numit si "accumulator" - acesta este cel mai folosit in executarea operatiilor aritmetice (adunare, scadere, inmultire, impartire);

• ebx - numit si "base" - acesta registru este folosit pentru adresarea indirecta a memoriei;

• ecx - numit si "count" - acest registru este folosit mai ales in cadrul "buclelor" (in instructiunile repetitive : for/ while do/ do while/ repeat until);

• edx - numit si "data" - retine anumite variabile, si este folosit impreuna cu eax in executarea operatiei "div", impartire intreaga (avand rolul de a retine restul impartirii).

Dupa cum ati observat, fiecare registru general are o functie specifica, insa oricare din ei pot fi folositi si la operatii aritmetice/logice, adresare memorie sau ca si variabile.

Registrii precedati de prefixul "e" sunt pe 32 de biti, deci pot fi tratati ca si variabile unsigned long/signed long (doubleword). Acestia pot fi folositi si ca registri pe 16 biti (word) sau pe 8 biti (byte) prin intermediul "subregistrilor" : ax, bx, cx, dx (reprezinta word-ul nesemnificativ = cel din dreapta)., ah, bh, ch, dh (byte-ul cel mai semnificativ al ax, bx, cx, dx), al, bl, cl, dl(registrii pe 8 biti).

Preview document

Arhitectura calculatoarelor - instrucțiuni logice - Pagina 1
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 2
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 3
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 4
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 5
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 6
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 7
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 8
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 9
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 10
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 11
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 12
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 13
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 14
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 15
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 16
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 17
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 18
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 19
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 20
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 21
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 22
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 23
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 24
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 25
Arhitectura calculatoarelor - instrucțiuni logice - Pagina 26

Conținut arhivă zip

  • WindowsFormsApplication2
    • WindowsFormsApplication2
      • bin
        • Debug
          • WindowsFormsApplication1.vshost.exe
          • WindowsFormsApplication1.vshost.exe.manifest
          • WindowsFormsApplication2.exe
          • WindowsFormsApplication2.pdb
          • WindowsFormsApplication2.vshost.exe
          • WindowsFormsApplication2.vshost.exe.manifest
      • obj
        • x86
          • Debug
            • DesignTimeResolveAssemblyReferences.cache
            • DesignTimeResolveAssemblyReferencesInput.cache
            • GenerateResource.read.1.tlog
            • GenerateResource.write.1.tlog
            • ResolveAssemblyReference.cache
            • WindowsFormsApplication1.Form1.resources
            • WindowsFormsApplication1.Properties.Resources.resources
            • WindowsFormsApplication2.csproj.FileListAbsolute.txt
            • WindowsFormsApplication2.exe
            • WindowsFormsApplication2.pdb
      • Properties
        • AssemblyInfo.cs
        • Resources.Designer.cs
        • Resources.resx
        • Settings.Designer.cs
        • Settings.settings
      • Form1.cs
      • Form1.Designer.cs
      • Form1.resx
      • Program.cs
      • WindowsFormsApplication2.csproj
      • WindowsFormsApplication2.csproj.user
    • WindowsFormsApplication2.sln
    • WindowsFormsApplication2.suo
  • Arhitectura Calculatoarelor - Instructiuni Logice.docx
  • WindowsFormsApplication2.exe

Te-ar putea interesa și

Proiectarea și Crearea unui Web Server

INTRODUCERE În prezent produsele soft se implementează foarte rapid, din cauza dezvoltării enorme a tehnologiilor informaţionale, acumulării...

Introducere în Lumea Calculatoarelor

I. INTRODUCERE IN LUMEA CALCULATOARELOR 1.1. Informatica Informatica reprezintă un domeniu complex - rezultat prin integrarea unor elemente din...

Arhitectura microprocesorului pe 16 biți

Microprocesorul reprezinta unitatea centrala de procesare (UCP) a unui calculator, componenta ultracompacta si de o importanta majora; alegerea...

Grile rezolvate automatică

1. Procesorul reprezinta: a) unitatea de prelucrare aritmetica si logica b) unitatea de realizare a prelucrarilor aritmetice c) reuniunea...

Arhitectura calculatoarelor

1.1. Sistemul de calcul 1.1.1. Definiţii Sistemul de calcul (SC, System Computer sau calculator) este reprezentat de o structură destinată...

Arhitectura calculatoarelor

ARHITECTURA CALCULATOARELOR 2003/2004 CURSUL 1 CAPITOLUL 1: Stocarea datelor 1.1 Stocarea bitilor Calculatoarele utilizate în prezent...

Arhitectura sistemelor de calcul

1.1. SCHEMA DE BAZĂ A UNUI CALCULATOR Orice calculator are în componenţă patru mari unităţi fundamentale: -Unitatea centrală (UC). -Unitatea de...

Structuri și Arhitecturi de Calculatoare Numerice

1. STRUCTURI SI ARHITECTURI DE CALCULATOARE NUMERICE 1.1. Limbaje si masini virtuale Calculatorul numeric (CN) reprezinta un sistem fizic...

Ai nevoie de altceva?