Når vi snakker om programmeringsspråk, er det første vi tenker på språk som C, C++, Java, Python, osv. Men disse språkene skjuler selve arbeidet, dvs. at det abstraherer mange ting fra brukerne. Men det er et språk som egentlig ligger på grunnleggende konsepter bak programmeringen eller interaksjonen mellom maskinvare.
Hva er Assembly Language?
Forsamlingsspråk er et lavnivåspråk som hjelper til med å kommunisere direkte med maskinvare. Den bruker mnemonics for å representere operasjonene som en prosessor må gjøre. Som er et mellomspråk mellom høynivåspråk som C++ og det binære språket. Den bruker heksadesimale og binære verdier, og den er lesbar av mennesker.
Utvikling av forsamlingsspråk?
Monteringsspråket har utviklet seg hånd i hånd med fremskritt innen maskinvare og de utviklende behovene til programmerere. Her er en nærmere titt på hver generasjon:
Første generasjon (1940-1950):
- Datamaskiner stolte på vakuumrør, og programmeringen var direkte på maskinspråk, ved å bruke binære instruksjoner.
- Monteringsspråk dukket opp som en lesbar abstraksjon, og brukte mnemoniske koder for å representere maskininstruksjoner.
Andre generasjon (1950-1960):
- Transistorbaserte datamaskiner erstattet vakuumrør, og tilbyr forbedret konsistens og dyktighet.
- Monteringsspråk ble mer intrikate for å håndtere de komplekse instruksjonssettene til disse nye maskinene. Samtidig kan programmeringsspråk på høyt nivå som FORTRAN og COBOL forutsatt avansert abstraksjon
Tredje generasjon (1960-1970):
- Integrerte kretser ble standard plass, noe som resulterte i reduserte, men kraftige datamaskiner.
- Monteringsspråk utviklet seg videre, og introduserte funksjoner som makroer og symbolske etiketter, som økte programmererens produktivitet og kodelesbarhet.
Fjerde generasjon (1970–1980):
- Begynnelsen på mikroprosessorer transformerte databehandling, og banet vei for mikrodatasystemer som IBM PC og Apple II.
- Sammenstillingsspråk for mikrodatamaskiner ble redesignet for å forbedre brukertilgjengeligheten, med syntaksutheving og automatisk innrykk, og dermed økt inkluderende for en større gruppe programmerere.
Fifth Generation (1980-i dag):
- Denne epoken er preget av å utføre flere beregningsoppgaver samtidig, denne metoden er kjent som parallell behandlingssystem og veksten av sofistikerte programvaresystemer
- Assembly-språket fortsatte å utvikle seg for å møte kravene til programmerere, med distribusjon av banebrytende feilsøkingsmetoder og verktøy fokusert på å forbedre kodeytelse og produktivitet.for intrikate systemer.
Hvordan fungerer Assembly Language?
Assembly-språk inneholder mnemoniske koder som spesifiserer hva prosessoren skal gjøre. Mnemonkoden som ble skrevet av programmereren ble konvertert til maskinspråk (binært språk) for kjøring. En assembler brukes til å konvertere monteringskode til maskinspråk. Den maskinkoden er lagret i en kjørbar fil for kjøringens skyld.
Den gjør det mulig for programmereren å kommunisere direkte med maskinvaren som registre, minneplasseringer, inn-/utgangsenheter eller noe annet maskinvare komponenter. Noe som kan hjelpe programmereren til å direkte kontrollere maskinvarekomponenter og administrere ressursene på en effektiv måte.
Hvordan utfører man Assembly Language?
- Skriv monteringskode : Åpne et hvilket som helst tekstredigeringsprogram i enheten og skriv mnemoniske koder i den og lagre filen med en riktig forlengelse i henhold til din assembler. Forlengelse kan være .asm , .s , .asm x.
- Sette sammen koden : Konverter koden til maskinspråk ved å bruke en montør .
- Genererer objektfil : Den vil generere en objektfil som tilsvarer koden din. Den vil ha en forlengelse. obj .
- Koble og lage kjørbare filer : Monteringsspråket vårt kan inneholde flere kildekoder. Og vi må koble dem til biblioteker for å gjøre det kjørbart. Vi kan bruke en linker som lk til dette formålet.
- Program som kjører : Etter å ha opprettet en kjørbar fil kan vi kjøre den som vanlig. Det vil avhenge av programvaren hvordan du kjører programmet.
Komponenter av Assembly Language
- Registrerer: Registre er de raske minnestedene som ligger inne i prosessoren. Som hjelper GÅ å utføre aritmetiske operasjoner og midlertidig lagring av data. Eksempel: Axe (akkumulator), Bx, Cx.
- Kommando: En instruksjon i monteringskoden kjent som en kommando informerer montøren om hva den skal gjøre. Instruksjoner for monteringsspråk bruker vanligvis selvbeskrivende forkortelser for å gjøre vokabularet enkelt, som ADD for tillegg og MOV for dataflytting.
- Bruksanvisning: Instruksjoner er de mnemoniske kodene som vi gir til prosessoren for å utføre spesifikke oppgaver som LOAD, ADDITION, MOVE. Eksempel: ADD
- Etiketter: Det er et symbolsk navn/identifikator gitt for å indikere et bestemt sted eller adresse i monteringskoden. Eksempel: FØRST for å indikere start av utførelsesdelen av koden.
- Mnemonic: En mnemonic er et akronym for en monteringsspråkinstruksjon eller et navn gitt til en maskinfunksjon. Hver mnemonikk i montering tilsvarer en spesifikk maskininstruksjon. Legg til er en illustrasjon av en av disse maskinkommandoene. CMP, Mul og Lea er blant ytterligere tilfeller.
- Makro: Makroer er programkodene som kan brukes hvor som helst i programmet ved å kalle det når vi har definert det. Og det er ofte innebygd med montører og kompilatorer. Vi bør definere det ved å bruke et direktiv %makro. Eksempel: %makro ADD_TWO_NUMBERS 2
legg til eax, %1
legg til eax, %2
%endemakro - Operander: Dette er dataene eller verdiene vi får gjennom instruksjoner om å utføre en operasjon på dem. Eksempel: I ADD R1,R2 ; R1 og R2 er operander.
- Opcode: Dette er de mnemoniske kodene som spesifiserer for prosessoren hvilken operasjon som må utføres. Eksempel: ADD betyr tillegg.
Heksadesimalt tallsystem er et tallsystem som brukes til å representere ulike tall ved hjelp av 16 symboler som er fra 0 til 9 sifre og A til F alfabetet og det er et base-16 tallsystem. 0 til 9 i desimal og heksadesimal er det samme.
Desimal til heksadesimal tabell
Desimal | Hex | Desimal | Hex | Desimal | Hex | Desimal | Hex |
---|---|---|---|---|---|---|---|
0 tilkoblinger i java | 0 | 10 | EN | tjue | 14 | 30 | 1E |
1 dharmendra alder | 1 | elleve | B | tjueen | femten | 31 | 1F |
2 | 2 | 12 | C | 22 | 16 | 32 | tjue |
3 | 3 | 1. 3 | D | 23 | 17 | 33 | tjueen |
4 | 4 | 14 | OG | 24 | 18 | 3. 4 | 22 |
5 | 5 | femten | F | 25 java fangst prøve | 19 | 35 | 23 |
6 | 6 | 16 | 10 | 26 | 1A | 36 | 24 |
7 | 7 | 17 | elleve | 27 | 1B | 37 | 25 |
8 | 8 | 18 | 12 | 28 | 1 C | 38 | 26 |
9 'bankmannens algoritme' | 9 | 19 | 1. 3 | 29 | 1D | 39 | 27 |
Heksadesimale tall kan enkelt konverteres til en annen form som binært tallsystem, desimaltallsystem, oktaltallsystem og omvendt. I denne artikkelen fokuserer vi kun på å konvertere heksadesimal til desimal og omvendt.
Desimal til heksadesimal konvertering:
Trinn 1: Ta inn en desimalverdi N.
Trinn 2: Del N med 16 og lagre resten.
Trinn 3: Del igjen kvotienten med 16 oppnå i trinn 2 og lagre resten.
Trinn 3: Gjenta trinn 3 til Quotient blir 0.
trinn 4: Skriv resten i omvendt rekkefølge og dette er den heksadesimale verdien av tallet.
Eksempel: Konverter 450 desimalverdier til heksadesimale.
trinn 1: N = 450.
Trinn 2: 450/16 gir Q = 28, R = 2.
Trinn 3: 28/16 gir Q = 1, R = 12 = C.
Trinn 4: 1/16 gir Q = 0, R = 1.
Trinn 5: heksadesimal på 450 er 1C2.
Heksadesimal til desimal konvertering
For å konvertere heksadesimal til desimal multipliser hvert siffer med 16 i potensen av posisjonen fra høyre og posisjonen til siffer lengst til høyre er 0, og legg til resultatet.
Eksempel: Konverter (A7B) 16 til desimal.
(A7B)16= A × 162+7×161+ B × 160
⇒ (A7B)16= 10 × 256 + 7 × 16 + 11 × 1 (konverter symbolene A og B til deres desimalekvivalenter; A = 10, B = 11)
spill pigeon android⇒ (A7B)16= 2560 + 112 + 11
⇒ (A7B)16= 2683
Derfor er desimalekvivalenten til (A7B)16er (2683)10.
Fordeler med Assembly Language
- Det gir presis kontroll over maskinvaren og dermed økt kodeoptimalisering.
- Den gir direkte tilgang til maskinvarekomponenter som registre, så den muliggjør skreddersydde løsninger for maskinvareproblemer.
- Effektiv ressursutnyttelse på grunn av lavnivåkontroll, optimalisert kode, ressursbevissthet, tilpasning etc.
- Den er ideell for programmering mikrokontrollere , sensorer og andre maskinvarekomponenter.
- Den brukes i sikkerhetsundersøkelser for å finne sikkerhetssårbarheter, omvendt utviklingsprogramvare for systemsikkerhet.
- Det er veldig viktig for å lage operativsystemer , kjerne og enhetskontrollere som krever maskinvareinteraksjon for funksjonaliteten.
Ulemper med Assembly Language
- Kompleks og veldig vanskelig å lære språket spesielt for nybegynnere.
- Den er veldig maskinavhengig. Så det begrenser portabiliteten.
- Det er veldig vanskelig å opprettholde koden, spesielt for store prosjekter.
- Det er veldig tidkrevende siden det er veldig vanskelig å forstå og veldig lang kode.
- Feilsøking er svært utfordrende for programmerere.
Vanlige spørsmål om Assembly Language – Vanlige spørsmål
Hvor brukes assemblerspråk til?
- Utvikling av operativsystem
- Oppretting av enhetsdrivere
- Programmering av innebygde systemer
- Sanntidsapplikasjoner
- Sikkerhetsundersøkelser
Forskjellen mellom forsamlingsspråk og høynivåspråk?
Assembly Language er mnemoniske koder og nært knyttet til CPUs instruksjonssett. I HLL er det abstraksjon.
Hvilken CPU-arkitektur bør jeg lære for monteringsprogrammering?
8085 og 8086 mikroprosessorarkitekturer er veldig langt bedre å forstå konsepter.
Er Assembly Language fortsatt relevant i moderne databehandling?
Ja. Samlingsspråk forblir relevant.