Limbaje de Asamblare

Curs
8.5/10 (2 voturi)
Domeniu: Calculatoare
Conține 11 fișiere: doc
Pagini : 76 în total
Cuvinte : 21191
Mărime: 898.97KB (arhivat)
Publicat de: Silviana Panait
Puncte necesare: 0

Extras din curs

Introducere. Necesitatea programării în limbaje de asamblare

Modalităţile de programare s-au schimbat imens de la inventarea calculatorului, în primul rând pentru a se acomoda creşterii complexităţii programelor. De exemplu, la început, când au fost inventate calculatoarele, programarea se făcea introducându-se instrucţiuni în maşina de cod binar cu ajutorul panoului frontal al calculatorului. Acest lucru a fost convenabil atât timp cât programele aveau doar câteva sute de instrucţiuni. O dată cu mărirea programelor, au fost inventate limbajele de asamblare, astfel încât programatorii se puteau descurca cu programe mai mari, cu complexitate crescută, folosind reprezentarea simbolică a instrucţiunilor pentru maşină.

Deoarece programele continuau să crească, au fost introduse limbajele de nivel înalt care oferă programatorului mai multe unelte cu care să facă faţă complexităţii. Au apărut apoi limbajele orientate obiect, limbajele specializate pentru rezolvarea unor anumite aplicaţii.

Cu toate acestea limbajele de asamblare se mai utilizează încă şi vor continua să se utilizeze deoarece ele permit înţelegerea la nivel de amănunt a ceea ce se întâmplă în realitate într-un calculator.

De ce "programare in asamblare" ? Argumente favorabile limbajelor de asamblare:

• Viteza: programele în L. A. sunt cele mai rapide

• Spaţiul de stocare: programele în L.A. sunt în general de dimensiuni mici

• Potenţialitate

-Programele în L.A. pot realiza aplicaţii ce se realizează dificil în limbaje de nivel înalt

-Programele care necesită accesul la nivel maşină sunt realizate în L.A. de ex: driverele (device drivers)

• Cunoştinţe de programare:

-Cunoştinţele în programare în limbaj de asamblare ajută la programarea în limbaje de nivel înalt; un programator nu ajunge niciodată la un nivel superior (expert) dacă nu are şi cunoştinţe dobândite prin dezvoltarea de programe în limbaj de asamblare

-Programarea în limbaj de asamblare ajută la o mai bună înţelegere a arhitecturii maşinii şi a modului ei de funcţionare

-un specialist care se respecta stie sa programeze in asamblare; o atenţie sporită se acordă dezvoltării de aplicaţii mixte (în limbaj de nivel înalt şi în asamblare)

• trebuie modificat un program existent, scris in asamblare

Pe lângă aceste evidente avantaje se mai pot enumera şi alte aspecte legate de dezvoltarea de programe pentru echipamente dedicate. Nu toate programele executabile sunt destinate calculatoarelor de uz general. Dezvoltarea continuă a microprocesoarelor a făcut ca ele să fie implicate în funcţionarea celor mai diverse obiecte tehnice, de la obiecte de uz casnic (ca maşinile de spălat) până la echipamente de control industrial. Toate aceste echipamente care au în structura lor microprocesoare funcţionează pe bază de programe care evident nu sunt scrise în Pascal sau C. Majoritatea acestor programe sunt scrise în limbaje de asamblare deoarece în aceste cazuri cel mai mult interesează viteza de execuţie a lor şi volumul mic de memorie. Există şi alte cauze pentru care nu întotdeauna se poate utiliza un limbaj de nivel înalt. Microprocesoarele utilizate în astfel de cazuri nu sunt neapărat specializate, ele sunt specifice cazului concret pentru care se utilizează şi pentru care s-au proiectat şi realizat (ca de exemplu microcontrolerele, automatele programabile). Nu este posibil să se dezvolte medii de programare şi compilatoare C sau Pascal pentru toate microprocesoarele existente.

De ce se evita limbajul de asamblare?

• este prea greu

• este greu de citit si de inteles

• este greu de scris

• este greu de depanat si de intretinut

• programarea este ineficienta

• viteza nu mai constituie o problema la calculatoarele de azi

• memoria nu mai constituie o problema

• compilatoarele actuale genereaza cod eficient

• limbajul de asamblare nu este portabil

Cap. 1 Concepte de baza

1.1 Reprezentarea si codificarea informatiilor

Din punctul de vedere al limbajului de asamblare calculatorul este văzut la nivel hardware: adrese fizice de memorie, registre, întreruperi, etc. Unitatea de bază a informaţiei memorate în calculator este bitul (0 sau 1) care corespunde din punct de vedere hardware unui circuit bistabil. Un circuit bistabil este un circuit electronic care are două stări stabile codificate cu 1 sau 0, capabil să memoreze un bit de informaţie.

Informaţia care se prelucrează într-un sistem de calcul este foarte variată. Astfel, se reprezinta în memorie:

– instructiuni - prin coduri de instructiuni

– date:

• logice: Adevarat/Fals, Inchis/Deschis, Pornit/Oprit

• numerice: intregi, nr. fractionare, nr.pozitive/negative

• alfanumerice: caractere, text

• multimedia: sunet, imagine (audio/video)

– structuri de date

Reprezentarea informatiilor numerice

Reprezentarea informaţiilor numerice se face, după anumite reguli, utilizând sistemul de numeraţie binar. Totuşi, datorită faptului că este destul de greu de lucrat cu acest sistem, în mod direct, în procesul de codificare a informaţiei se mai utilizează şi alte sisteme de numeraţie, derivate din sistemul binar. Sistemele de numeraţie utilizate în informatică sunt binar, octal şi hexazecimal. Deoarece este greu de operat cu numere în binar, pentru exprimarea unei cantităţi binare se utilizează sistemul octal şi hexazecimal. De exemplu numărul 25510 = 111111112 = FF16=3778

În general, un număr X scris într-o bază oarecare b se scrie sub forma:

Xb→ xm xm-1 xm-2 .... x0 . x-1 x-2.... x-n

Unde simbolurile xi respectă următoarele regului:

0<= xi < b, i= -n .. m

xm!= 0, x-n!= 0

Valoarea numărului în baza b se poate calcula, în zecimal, prin dezvoltare după puterile bazei b astfel:

Xb = xm*bm + xm-1*bm-1 + .... x0*b0 + x-1*b-1 + x-2*b-2... x-n*b-n

Caracteristici ale sistemelor de numeraţie utilizate:

– sistemul binar: putine reguli, multe cifre

– sistemul zecimal şi hexahecimal: multe reguli, mai putine cifre

Aceste sisteme de numeraţie sun sisteme de numeraţie poziţionale ponderate, la care valoarea unei cifre depinde de poziţia sa în cadrul numărului.

Exemple:

Fie numărul zecimal 5685. La acest număr, de exemplu cifra 5 apare în două poziţii, însă aportul pe care îl aduce această cifră în cadrul numrărului este diferit. În mod analog, în binar putem avea numărul 101.

Conversii dintr-o baza in alta

Pentru a converti un număr din baza 10 într-o bază oarecare b se converteşte separat partea întreagă şi separat partea fracţionară, astfel:

• conversia părţii întregi: prin divizare succesivă cu noua bază: exemplu din baza 10 în baza 2. Pentru a converti numărul 30 din baza 10 în baza 2 se fac împărţiri succesive la 2 astfel:

30 0

15 1

7 1

3 1

1 1

0

rezultă

3010 = 111102

• conversia părţii fracţionare: prin înmulţire succesivă cu noua bază, conversia nu este însă întotdeauna precisă (univocă). Pentru a converti numărul 0,48 din baza 10 în baza 2 se procedează astfel:

0,48 0

0,96 0

1,83 1

1,66 1

1,32 1

...

Rezultă

0,4810=0,00111...2

Conversia Binar – Hexazecimal – Octal

Datorită faptului că 16 şi 8 sunt puteri a lui 2 (16=22, 8=23) există o legătură între sistemul de numeraţie binar şi cel hexazecimal, respectiv octal care face mai uşoară conversia numerelor între aceste sisteme.

Preview document

Limbaje de Asamblare - Pagina 1
Limbaje de Asamblare - Pagina 2
Limbaje de Asamblare - Pagina 3
Limbaje de Asamblare - Pagina 4
Limbaje de Asamblare - Pagina 5
Limbaje de Asamblare - Pagina 6
Limbaje de Asamblare - Pagina 7
Limbaje de Asamblare - Pagina 8
Limbaje de Asamblare - Pagina 9
Limbaje de Asamblare - Pagina 10
Limbaje de Asamblare - Pagina 11
Limbaje de Asamblare - Pagina 12
Limbaje de Asamblare - Pagina 13
Limbaje de Asamblare - Pagina 14
Limbaje de Asamblare - Pagina 15
Limbaje de Asamblare - Pagina 16
Limbaje de Asamblare - Pagina 17
Limbaje de Asamblare - Pagina 18
Limbaje de Asamblare - Pagina 19
Limbaje de Asamblare - Pagina 20
Limbaje de Asamblare - Pagina 21
Limbaje de Asamblare - Pagina 22
Limbaje de Asamblare - Pagina 23
Limbaje de Asamblare - Pagina 24
Limbaje de Asamblare - Pagina 25
Limbaje de Asamblare - Pagina 26
Limbaje de Asamblare - Pagina 27
Limbaje de Asamblare - Pagina 28
Limbaje de Asamblare - Pagina 29
Limbaje de Asamblare - Pagina 30
Limbaje de Asamblare - Pagina 31
Limbaje de Asamblare - Pagina 32
Limbaje de Asamblare - Pagina 33
Limbaje de Asamblare - Pagina 34
Limbaje de Asamblare - Pagina 35
Limbaje de Asamblare - Pagina 36
Limbaje de Asamblare - Pagina 37
Limbaje de Asamblare - Pagina 38
Limbaje de Asamblare - Pagina 39
Limbaje de Asamblare - Pagina 40
Limbaje de Asamblare - Pagina 41
Limbaje de Asamblare - Pagina 42
Limbaje de Asamblare - Pagina 43
Limbaje de Asamblare - Pagina 44
Limbaje de Asamblare - Pagina 45
Limbaje de Asamblare - Pagina 46
Limbaje de Asamblare - Pagina 47
Limbaje de Asamblare - Pagina 48
Limbaje de Asamblare - Pagina 49
Limbaje de Asamblare - Pagina 50
Limbaje de Asamblare - Pagina 51
Limbaje de Asamblare - Pagina 52
Limbaje de Asamblare - Pagina 53
Limbaje de Asamblare - Pagina 54
Limbaje de Asamblare - Pagina 55
Limbaje de Asamblare - Pagina 56
Limbaje de Asamblare - Pagina 57
Limbaje de Asamblare - Pagina 58
Limbaje de Asamblare - Pagina 59
Limbaje de Asamblare - Pagina 60
Limbaje de Asamblare - Pagina 61
Limbaje de Asamblare - Pagina 62
Limbaje de Asamblare - Pagina 63
Limbaje de Asamblare - Pagina 64
Limbaje de Asamblare - Pagina 65
Limbaje de Asamblare - Pagina 66
Limbaje de Asamblare - Pagina 67
Limbaje de Asamblare - Pagina 68
Limbaje de Asamblare - Pagina 69
Limbaje de Asamblare - Pagina 70
Limbaje de Asamblare - Pagina 71
Limbaje de Asamblare - Pagina 72
Limbaje de Asamblare - Pagina 73
Limbaje de Asamblare - Pagina 74
Limbaje de Asamblare - Pagina 75
Limbaje de Asamblare - Pagina 76
Limbaje de Asamblare - Pagina 77
Limbaje de Asamblare - Pagina 78
Limbaje de Asamblare - Pagina 79
Limbaje de Asamblare - Pagina 80
Limbaje de Asamblare - Pagina 81
Limbaje de Asamblare - Pagina 82
Limbaje de Asamblare - Pagina 83
Limbaje de Asamblare - Pagina 84
Limbaje de Asamblare - Pagina 85
Limbaje de Asamblare - Pagina 86

Conținut arhivă zip

  • curs 10.doc
  • curs 3.doc
  • curs 5.doc
  • curs1.doc
  • curs2.doc
  • curs4.doc
  • curs6.doc
  • curs7.doc
  • curs8.doc
  • curs9.doc
  • probleme-asm.doc

Alții au mai descărcat și

Minimul și Maximul unui Șir de Numere

Pentru a putea afișa minimul si maximul unui șir in limbaj de asamblare, segmentul de cod va fi divizat în două mari părţi: -o parte în care se...

Autocad pentru începători

C1.1.CONCEPTUL DE CAD TERMINOLOGIE - COMPUTER AIDED ENGINEERING -CAE-vizeazăetapeledecercetare,inovaresiconcepţie; - COMPUTER AIDED DRAWING/...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Rețele de Calculatoare

O reţea de calculatoare (computer network) este un ansamblu de calculatoare interconectate prin intermediul unui mediu de comunicaţie (cablu...

Algoritmi

ETAPELE REZOLVARII UNEI PROBLEME ALGORITMUL – reprezintă o succesiune finită şi ordonată de operaţii univoc determinate, efectuate mecanic, care...

Administrare rețele de calculatoare

ELEMENTELE COMPONENTE ALE UNUI SISTEM DE CALCUL Monitorul Este o periferica de iesire/intrare si este caracterizat prin: - Diagonala ecranului...

Bazele programării

Introducere Organizarea datelor - Proces complex care presupune identificarea, clasificarea si descrierea proprietatilor acestora, gruparea...

Te-ar putea interesa și

Arhitectura calculatoarelor - instrucțiuni logice

Introducere Limbajul de asamblare : avantaje si dezavantaje in folosirea lui Desi este unul dintre cele mai vechi limbaje de programare, limbajul...

Programare în Limbaj de Asamblare

1. Structura unui calculator numeric de tip John von Neumann 2. Ce sunt asambloarele? Descrieti etapele procesului de asamblare. Asambloarele...

Arhitectura calculatoarelor

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

Arhitectura calculatoarelor

1. INTRODUCERE OBIECTIVE Principalele obiective ale acestui capitol introductiv sunt urmatoarele: caracterizarea notiunii de informatie,...

Programarea Microcontrollerelor în Limbaj de Asamblare

1. Denumirea lucrarii: Programarea microcontrollerelor in limbaj de asamblare 2. Obiectivele lucrarii - Familiarizarea cu un cross assembler -...

Informatică cu Aplicații în psiho-pedagogie

În loc de introducere Despre calculatoare şi utilizarea acestora s-au scris şi se vor mai scrie încă multe cărţi. Unele pentru începători, altele...

Automate programabile

CAPITOLUL 1 SISTEMELE DE CALCUL ȘI CONTROLUL INDUSTRIAL 1.1. Introducere Foarte puține instalații industriale pot funcționa singure și...

Programare în Limbaj de Asamblare

Bitii din registrul Flag sunt indicatori de stare care se pozitioneaza functie de rezultatul ultimei operatii aritmetice sau logice si se testeaza...

Ai nevoie de altceva?