logo

Vad är Assembly Language?

När vi pratar om programmeringsspråk är det första vi tänker på språk som C, C++, Java, Python, etc. Men de språken döljer det faktiska arbetet, dvs att det abstraherar många saker från användarna. Men det finns ett språk som verkligen ligger på grundläggande koncept bakom programmeringen eller interaktionen mellan datorhårdvara.

Vad är Assembly Language?

assembleringsspråk är ett lågnivåspråk som hjälper till att kommunicera direkt med datorhårdvara. Den använder minnesminnen för att representera de operationer som en processor måste göra. Vilket är ett mellanspråk mellan högnivåspråk som C++ och det binära språket. Den använder hexadecimala och binära värden, och den är läsbar av människor.



Utvecklingen av Assembly Language?

Assembly språk har utvecklats hand i hand med framsteg inom datorhårdvara och utvecklande behov hos programmerare. Här är en närmare titt på varje generation:

Första generationen (1940-1950):

  • Datorer förlitade sig på vakuumrör, och programmeringen var direkt på maskinspråk, med hjälp av binära instruktioner.
  • Sammansättningsspråk uppstod som en läsbar abstraktion, som använde mnemoniska koder för att representera maskininstruktioner.

Andra generationen (1950-1960):



  • Transistorbaserade datorer ersatte vakuumrör, vilket ger förbättrad konsistens och skicklighet.
  • Assembly språk blev mer komplicerade för att hantera de komplexa instruktionsuppsättningarna för dessa nya maskiner. Samtidigt kan programmeringsspråk på hög nivå som FORTRAN och COBOL förutsatt avancerad abstraktion

Tredje generationen (1960-1970):

  • Integrerade kretsar blev standard, vilket resulterade i förminskade men kraftfulla datorer.
  • Assembly-språken utvecklades ytterligare och introducerade funktioner som makron och symboliska etiketter, som ökade programmerarens produktivitet och kodläsbarhet.

Fjärde generationen (1970-1980):

  • Början av mikroprocessorer förändrade datoranvändning och banade väg för mikrodatorsystem som IBM PC och Apple II.
  • Sammansättningsspråk för mikrodatorer designades om för att förbättra användartillgängligheten, med syntaxmarkering och automatisk indragning, vilket ökade inkluderingen för en större grupp programmerare.

Femte generationen (1980-nutid):



  • Denna era kännetecknas av att utföra flera beräkningsuppgifter samtidigt som denna metod är känd som parallellt bearbetningssystem och tillväxten av sofistikerade mjukvarusystem
  • Assembly-språket fortsatte att utvecklas för att möta kraven från programmerare, med införandet av banbrytande felsökningsmetoder och verktyg fokuserade på att förbättra kodprestanda och produktivitet. för invecklade system.

Hur fungerar Assembly Language?

Assembly-språk innehåller mnemoniska koder som anger vad processorn ska göra. Mnemonkoden som skrevs av programmeraren konverterades till maskinspråk (binärt språk) för exekvering. En assembler används för att konvertera assemblerkod till maskinspråk. Den maskinkoden lagras i en körbar fil för exekveringens skull.

Det gör det möjligt för programmeraren att kommunicera direkt med hårdvaran såsom register, minnesplatser, in-/utgångsenheter eller någon annan hårdvara komponenter. Vilket skulle kunna hjälpa programmeraren att direkt styra hårdvarukomponenter och att hantera resurserna på ett effektivt sätt.

Hur kör man Assembly Language?

  • Skriv monteringskod : Öppna valfri textredigerare i enheten och skriv mnemonkoderna i den och spara filen med ett korrekt tillägg enligt din assembler. Förlängning kan vara .asm , .s , .asm x.
  • Montering av koden : Konvertera din kod till maskinspråk med en assemblerare .
  • Genererar objektfil : Det kommer att generera en objektfil som motsvarar din kod. Den kommer att ha en förlängning. obj .
  • Länka och skapa körbara filer : Vårt assemblerspråk kan innehålla flera källkoder. Och vi måste länka dem till bibliotek för att göra det körbart. Vi kan använda en länk som lk för detta ändamål.
  • Program som körs : Efter att ha skapat en körbar fil kan vi köra den som vanligt. Det beror på programvaran hur man kör programmet.

Komponenter i Assembly Language

  • Register: Register är de snabba minnesplatserna inuti processorn. Vilket hjälper att utföra aritmetiska operationer och tillfällig lagring av data. Exempel: Axe (ackumulator), Bx, Cx.
  • Kommando: En instruktion i assemblerkoden känd som ett kommando informerar assemblern om vad som ska göras. Instruktioner för monteringsspråk använder vanligtvis självbeskrivande förkortningar för att göra vokabulären enkel, som ADD för tillägg och MOV för dataförflyttning.
  • Instruktioner: Instruktioner är de mnemoniska koder som vi ger till processorn för att utföra specifika uppgifter som LOAD, ADDITION, MOVE. Exempel: ADD
  • Etiketter: Det är ett symboliskt namn/identifierare som ges för att ange en viss plats eller adress i monteringskoden. Exempel: FÖRST för att indikera start av exekveringsdel av koden.
  • Mnemonik: En mnemonic är en akronym för en assemblerspråksinstruktion eller ett namn som ges till en maskinfunktion. Varje minnesminne i monteringen motsvarar en specifik maskininstruktion. Add är en illustration av ett av dessa maskinkommandon. CMP, Mul och Lea är några ytterligare exempel.
  • Makro: Makron är programkoderna som kan användas var som helst i programmet genom att anropa det när vi väl definierat det. Och det är ofta inbäddat med assemblers och kompilatorer. Vi bör definiera det med ett direktiv %makro. Exempel: %makro ADD_TWO_NUMBERS 2
    lägg till eax, %1
    lägg till eax, %2
    %endmacro
  • Operander: Dessa är de data eller värden som vi får genom instruktioner om att utföra någon operation på den. Exempel: I ADD R1,R2 ; R1 och R2 är operander.
  • Opcode: Dessa är de mnemoniska koder som anger för processorn vilken operation som måste göras. Exempel: ADD betyder tillägg.

Hexadecimalt talsystem är ett talsystem som används för att representera olika tal med hjälp av 16 symboler som är från 0 till 9 siffror och A till F alfabetet och det är ett bas-16 siffersystem. 0 till 9 i decimal och hexadecimal är samma.

Decimal till hexadecimal tabell

Decimal

Hex

Decimal

Hex

Decimal

Hex

Decimal

Hex

0

0

10

A

tjugo

14

30

1E

1

1

elva

B

tjugoett

java virtuell maskin

femton

31

1F

2

2

12

C

22

16

32

tjugo

3

3

13

D

23

17

33

tjugoett

4

4

14

OCH

24

18

3. 4

22

5

5

femton

F

25

19

35

23

6

6

16

10

26

1A

36

24

7

Freddie Mercury född

7

17

elva

27

IB

37

25

8

8

18

12

28

1 C

38

26

9

9

19

13

29

1D

39

27

Hexadecimala tal kan enkelt konverteras till en annan form som binärt talsystem, decimaltalssystem, oktalt talsystem och vice versa. I den här artikeln fokuserar vi bara på att konvertera hexadecimal till decimal och vice versa.

Decimal till hexadecimal konvertering:

Steg 1: Ta ett inmatat decimalvärde N.

Steg 2: Dela N med 16 och lagra resten.

Steg 3: Dela återigen kvoten med 16, erhåll i steg 2 och lagra resten.

Steg 3: upprepa steg 3 tills Quotient blir 0.

steg 4: Skriv resten i omvänd ordning och detta är talets hexadecimala värde.

Exempel: Konvertera 450 decimaler till hexadecimaler.

steg 1: N = 450.

Steg 2: 450/16 ger Q = 28, R = 2.

Steg 3: 28/16 ger Q = 1, R = 12 = C.

Steg 4: 1/16 ger Q = 0, R = 1.

Steg 5: hexadecimal på 450 är 1C2.

Hexadecimal till decimal konvertering

För att konvertera hexadecimal till decimal multiplicerar du varje siffra med 16 i potensen av dess position med början från höger och positionen för siffran längst till höger är 0 och addera sedan resultatet.

Exempel: Konvertera (A7B) 16 till decimal.

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

⇒ (A7B)16= 10 × 256 + 7 × 16 + 11 × 1 (konvertera symbolerna A och B till deras decimalekvivalenter; A = 10, B = 11)

⇒ (A7B)16= 2560 + 112 + 11

⇒ (A7B)16= 2683

Därför är decimalmotsvarigheten till (A7B)16är (2683)10.

Fördelar med Assembly Language

  • Det ger exakt kontroll över hårdvaran och därmed ökad kodoptimering.
  • Det ger direkt åtkomst till hårdvarukomponenter som register, så det möjliggör skräddarsydda lösningar för hårdvaruproblem.
  • Effektivt resursutnyttjande på grund av kontroll på låg nivå, optimerad kod, resursmedvetenhet, anpassning etc.
  • Den är idealisk för programmering mikrokontroller , sensorer och andra hårdvarukomponenter.
  • Det används i säkerhetsundersökningar för att hitta säkerhetssårbarheter, omvänd konstruktionsprogram för systemsäkerhet.
  • Det är mycket viktigt för att göra operativsystem , kärna och enhetskontroller som kräver hårdvaruinteraktion för dess funktionalitet.

Nackdelar med Assembly Language

  • Komplext och väldigt svårt att lära sig språket speciellt för nybörjare.
  • Det är mycket maskinberoende. Så det begränsar portabiliteten.
  • Det är verkligen svårt att behålla koden, särskilt för storskaliga projekt.
  • Det är väldigt tidskrävande eftersom det är väldigt svårt att förstå och väldigt lång kod.
  • Felsökning är mycket utmanande för programmerare.

Vanliga frågor om Assembly Language – Vanliga frågor

Var används assemblerspråket till?

  • Utveckling av operativsystem
  • Skapande av enhetsdrivrutiner
  • Programmering av inbyggda system
  • Realtidsapplikationer
  • Säkerhetsforskning

Skillnad mellan Assembly Language och High Level Language?

Assembly Language är mnemoniska koder och nära relaterat till CPU:s instruktionsuppsättning. I HLL finns abstraktion.

Vilken CPU-arkitektur ska jag lära mig för monteringsprogrammering?

8085 och 8086 mikroprocessorarkitekturer är mycket bättre att förstå koncept.

Är Assembly Language fortfarande relevant i modern datoranvändning?

Ja. Samlingsspråket förblir relevant.