logo

Què és el llenguatge ensamblador?

Quan parlem de llenguatges de programació, el primer que ens ve al cap són llenguatges com C, C++, Java, Python, etc. Però aquests llenguatges amaguen el funcionament real, és a dir, que abstrauen moltes coses dels usuaris. Però hi ha un llenguatge que realment es troba en conceptes bàsics darrere de la programació o la interacció entre el maquinari informàtic.

Què és el llenguatge ensamblador?

Llenguatge ensamblador és un llenguatge de baix nivell que ajuda a comunicar-se directament amb el maquinari de l'ordinador. Utilitza mnemotècniques per representar les operacions que ha de fer un processador. Que és un llenguatge intermedi entre idiomes d'alt nivell com C++ i el llenguatge binari. Utilitza valors hexadecimals i binaris i és llegible pels humans.



Evolució del llenguatge ensamblador?

El llenguatge ensamblador ha evolucionat de la mà dels avenços en el maquinari informàtic i de les necessitats evolutives dels programadors. Aquí teniu una mirada més propera a cada generació:

Primera generació (1940-1950):

  • Els ordinadors es basaven en tubs de buit i la programació es feia directament en llenguatge màquina, utilitzant instruccions binàries.
  • El llenguatge ensamblador va sorgir com una abstracció llegible, utilitzant codis mnemotècnics per representar instruccions de màquina.

Segona generació (1950-1960):



  • Els ordinadors basats en transistors van substituir els tubs de buit, oferint una consistència i una destresa millorades.
  • Els llenguatges d'assemblador es van fer més complexos per gestionar els complexos conjunts d'instruccions d'aquestes noves màquines. Simultàniament, llenguatges de programació d'alt nivell com FORTRAN i COBOL proporciona abstracció avançada

Tercera generació (1960-1970):

  • Els circuits integrats es van convertir en un lloc estàndard, donant lloc a ordinadors disminuïts però potents.
  • Els llenguatges d'assemblador van evolucionar encara més, introduint funcions com macros i etiquetes simbòliques, que van augmentar la productivitat del programador i la llegibilitat del codi.

Quarta generació (1970-1980):

  • L'inici dels microprocessadors va transformar la informàtica, obrint el camí per a sistemes microinformàtics com l'IBM PC i l'Apple II.
  • Els llenguatges d'assemblatge per a microordinadors es van redissenyar per millorar l'accessibilitat dels usuaris, amb ressaltat de sintaxi i sagnat automàtic, augmentant així la inclusió per a un grup més gran de programadors.

Cinquena generació (1980-present):



  • Aquesta era es caracteritza per executar múltiples tasques computacionals simultàniament, aquest mètode es coneix com sistema de processament paral·lel i el creixement de sistemes de programari sofisticats
  • El llenguatge ensamblador va continuar evolucionant per satisfer les demandes dels programadors, amb el desplegament de mètodes i eines de depuració d'avantguarda centrades a millorar el rendiment i la productivitat del codi per a sistemes complexos.

Com funciona el llenguatge ensamblador?

Els llenguatges assemblador contenen codis mnemotècnics que especifiquen què ha de fer el processador. El codi mnemotècnic escrit pel programador es va convertir en llenguatge màquina (llenguatge binari) per a l'execució. S'utilitza un assemblador per convertir codi ensamblador en llenguatge màquina. Aquest codi màquina s'emmagatzema en un fitxer executable per tal d'executar-lo.

Permet que el programador es comuniqui directament amb el maquinari, com ara registres, ubicacions de memòria, dispositius d'entrada/sortida o qualsevol altre maquinari components. El que podria ajudar el programador a controlar directament els components del maquinari i a gestionar els recursos d'una manera eficient.

Com executar el llenguatge ensamblador?

  • Escriu codi de muntatge : Obriu qualsevol editor de text al dispositiu i escriviu-hi els codis mnemotècnics i deseu el fitxer amb una extensió adequada segons el vostre assemblador. L'extensió pot ser .asm , .s , .asm x.
  • Muntatge del codi : Converteix el teu codi en llenguatge màquina mitjançant un assemblador .
  • Generació d'un fitxer objecte : generarà un fitxer objecte corresponent al vostre codi. Tindrà una extensió. obj .
  • Enllaçar i crear executables : El nostre llenguatge ensamblador pot contenir diversos codis font. I hem d'enllaçar-los a biblioteques perquè sigui executable. Podem utilitzar un enllaç com lk per a aquest propòsit.
  • Programa en execució : Després de crear un fitxer executable, el podem executar com de costum. Dependrà del programari com executar el programa.

Components del llenguatge ensamblador

  • Registres: Els registres són les ubicacions de memòria ràpida situades dins del processador. La qual cosa ajuda VAS per realitzar operacions aritmètiques i emmagatzematge temporal de dades. Exemple: Ax (Acumulador), Bx, Cx.
  • Comandament: Una instrucció en codi assemblador coneguda com a ordre informa l'assemblador què ha de fer. Les instruccions del llenguatge ensamblador solen emprar abreviatures autodescriptives per simplificar el vocabulari, com ADD per a l'addició i MOV per al moviment de dades.
  • Instruccions: Les instruccions són els codis mnemotècnics que donem al processador per realitzar tasques específiques com CARREGAR, AFEGIR, MOURE. Exemple: AFEGIR
  • Etiquetes: És un nom/identificador simbòlic donat per indicar una ubicació o una adreça concreta en el codi de muntatge. Exemple: FIRST per indicar l'inici de la part d'execució del codi.
  • Mnemotècnia: Un mnemotècnic és un acrònim d'una instrucció de llenguatge ensamblador o un nom donat a una funció de màquina. Cada mnemotècnica en muntatge correspon a una instrucció de màquina específica. Add és una il·lustració d'una d'aquestes ordres de màquina. CMP, Mul i Lea es troben entre altres casos.
  • Macro: Les macros són els codis de programa que es poden utilitzar a qualsevol lloc del programa cridant-lo un cop el definim. I sovint està integrat amb assembladors i compiladors. Hauríem de definir-ho utilitzant una directiva %macro. Exemple: %macro ADD_TWO_NUMBERS 2
    afegir eax, %1
    afegir eax, %2
    %endmacro
  • Operands: Aquestes són les dades o valors que se'ns donen a través d'instruccions per fer-hi alguna operació. Exemple: A ADD R1,R2 ; R1 i R2 són operands.
  • Opcode: Aquests són els codis mnemotècnics que especifiquen al processador quina operació s'ha de fer. Exemple: ADD significa Addició.

Sistema de numeració hexadecimal és un sistema de numeració que s'utilitza per representar diversos nombres mitjançant 16 símbols que són de De 0 a 9 dígits i alfabet de A a F i això és un sistema de numeració de base 16. Del 0 al 9 en decimal i l'hexadecimal és el mateix.

Taula decimal a hexadecimal

Decimal

Hex

Decimal

Hex

Decimal

Hex

Decimal

millor hentai

Hex

0

0

10

A

20

14

30

1E

1

1

11

B

21

15

31

1F

2

2

12

C

22

16

32

20

3

3

13

D

23

17

33

21

4

4

14

I

24

18

34

22

5

5

15

F

25

19

35

23

6

6

16

10

26

1A

36

24

7

matriu java per llistar

7

17

11

27

1B

37

25

8

8

18

12

28

1 C

38

26

9

9

19

13

29

1D

39

subcadena java

27

Els nombres hexadecimals es poden convertir fàcilment a una altra forma com ara el sistema de nombres binari, el sistema de nombres decimals, el sistema de nombres octals i viceversa. En aquest article només ens centrem a convertir Hexadecimal a decimal i viceversa.

Conversió decimal a hexadecimal:

Pas 1: agafeu un valor decimal d'entrada N.

Pas 2: divideix N amb 16 i emmagatzema la resta.

Pas 3: torneu a dividir el quocient amb 16 obteniu al pas 2 i emmagatzemeu la resta.

Pas 3: repetiu el pas 3 fins que el quocient sigui 0.

pas 4: escriviu la resta en ordre invers i aquest és el valor hexadecimal del nombre.

Exemple: Converteix 450 valors decimals en hexadecimals.

pas 1: N = 450.

Pas 2: 450/16 dóna Q = 28, R = 2.

Pas 3: 28/16 dóna Q = 1, R = 12 = C.

Pas 4: 1/16 dóna Q = 0, R = 1.

Pas 5: l'hexadecimal de 450 és 1C2.

Conversió d'hexadecimal a decimal

Per convertir Hexadecimal a Decimal multipliqueu cada dígit per 16 a la potència de la seva posició començant per la dreta i la posició del dígit més a la dreta és 0 i després sumeu el resultat.

Exemple: Converteix (A7B) 16 a decimal.

(A7B)16= A × 162+ 7 × 161+ B × 160

⇒ (A7B)16= 10 × 256 + 7 × 16 + 11 × 1 (convertiu els símbols A i B als seus equivalents decimals; A = 10, B = 11)

⇒ (A7B)16= 2560 + 112 + 11

⇒ (A7B)16= 2683

Per tant, l'equivalent decimal de (A7B)16és (2683)10.

Avantatges del llenguatge ensamblador

  • Proporciona un control precís sobre el maquinari i, per tant, una millor optimització del codi.
  • Permet l'accés directe a components de maquinari com els registres, de manera que permet solucions a mida per a problemes de maquinari.
  • Ús eficient dels recursos a causa del control de baix nivell, codi optimitzat, consciència dels recursos, personalització, etc.
  • És ideal per programar microcontroladors , sensors i altres components de maquinari.
  • S'utilitza en investigacions de seguretat per trobar vulnerabilitats de seguretat, programari d'enginyeria inversa per a la seguretat del sistema.
  • És molt essencial per a la confecció sistemes operatius , nucli i controladors de dispositius que requereix la interacció de maquinari per a la seva funcionalitat.

Inconvenients del llenguatge ensamblador

  • Complex i molt difícil d'aprendre l'idioma, especialment per a principiants.
  • És molt dependent de la màquina. Per tant, limita la portabilitat.
  • És molt difícil mantenir el codi, especialment per a projectes a gran escala.
  • Es necessita molt de temps, ja que és molt difícil d'entendre i el codi és molt llarg.
  • Depuració és molt difícil per als programadors.

Preguntes freqüents sobre llenguatge ensamblador - Preguntes freqüents

Per a on s'utilitza el llenguatge ensamblador?

  • Desenvolupament de sistemes operatius
  • Creació del controlador del dispositiu
  • Programació de sistemes encastats
  • Aplicacions en temps real
  • Investigació de seguretat

Diferència entre llenguatge ensamblador i llenguatge d'alt nivell?

El llenguatge ensamblador són codis mnemotècnics i estan estretament relacionats amb el conjunt d'instruccions de la CPU. A HLL hi ha abstracció.

Quina arquitectura de CPU he d'aprendre per a la programació d'assemblatges?

Les arquitectures de microprocessadors 8085 i 8086 són molt millors per entendre els conceptes.

El llenguatge assemblador segueix sent rellevant a la informàtica moderna?

Sí. El llenguatge assembleari segueix sent rellevant.