| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Computer Programmeringssprog >> Content
    Hvad er formålet og funktionaliteten af ​​et forsamlingssprog?

    Formål og funktionalitet af samlingssprog

    Samlingssprog fungerer som et programmeringssprog på lavt niveau Det giver en menneskelig læsbar repræsentation af maskinkodeinstruktioner . Det sidder direkte over maskinkoden (binær) i programmeringssproghierarkiet.

    Formål:

    * bro mellemrummet mellem menneskelige programmerere og maskinkode: Maskinkode er vanskelig for mennesker at forstå og skrive. Samlingssprog bruger mnemonics (korte, symboliske navne) til at repræsentere maskininstruktioner, hvilket gør det lettere at programmere computere direkte på hardware -niveau.

    * Direkte hardwarekontrol: Samlingssprog giver programmerere mulighed for at have meget præcis og granulær kontrol over computerens hardware -ressourcer, såsom CPU -registre, hukommelsesplaceringer og I/O -porte.

    * Optimering: Samlingssprog muliggør finjustering af kode til ydeevne. Programmerere kan optimere specifikke sektioner af kode for hastighed, størrelse eller strømforbrug ved omhyggeligt at vælge de mest effektive maskininstruktioner.

    * Forståelse af computerarkitektur: Læring og brug af samlingssprog giver en dybere forståelse af, hvordan CPU og hukommelse fungerer. Det hjælper programmerere med at forstå, hvordan kode på højt niveau oversættes til maskininstruktioner.

    * programmering på systemniveau: Samlingssprog bruges ofte i programmering på systemniveau, såsom at skrive operativsystemkerner, enhedsdrivere og indlejrede systemkode, hvor direkte hardwarekontrol og ydeevne er kritisk.

    * reverse engineering: Samlingssprog er afgørende i omvendt ingeniørsoftware for at forstå dens funktionalitet, identificere sårbarheder eller ændre dens opførsel.

    Funktionalitet:

    * mnemonics: Samlingssprog bruger mnemonics til at repræsentere maskininstruktioner. For eksempel repræsenterer `mov` instruktionen" flyt ", 'tilføj' repræsenterer" tilføjelse ", 'JMP` repræsenterer" hopp "og så videre.

    * registre: Assembly -sproginstruktioner manipulerer direkte CPU -registre. Registre er små højhastighedsopbevaringssteder inden for CPU'en. Almindelige registre inkluderer akkumulator (f.eks. `Ax`,` eax`, `rax`), basisregister (f.eks.` Bx`, `ebx`,` rbx`), tællerregister (f.eks. (f.eks. `sp`,` ESP ', `rsp`), basepointer (f.eks.` bp`, `ebp`,` rbp`), og instruktionspeker (f.eks. `Ip`,` eip`, `rip`).

    * hukommelsesadgang: Instrationssprogsinstruktioner giver programmerere mulighed for at læse fra og skrive til specifikke hukommelsessteder. Programmerere kan specificere adresser direkte eller bruge registre til at afholde hukommelsesadresser.

    * adresseringstilstande: Forsamlingssprog tilbyder forskellige adresseringstilstande til adgang til data i hukommelsen, såsom:

    * øjeblikkelig adressering: Operanden er en konstant værdi.

    * Direkte adressering: Operanden er en hukommelsesadresse.

    * Registrer adressering: Operanden er et CPU -register.

    * Indirekte adressering: Operanden er et register, der indeholder hukommelsesadressen.

    * Indekseret adressering: Operanden beregnes ved at tilføje en registerværdi (indeks) til en basisadresse.

    * kontrolstrøm: Samlingssprog giver instruktioner til kontrol af strømmen af ​​udførelse, såsom:

    * Jump (JMP): Ubetinget spring til en specificeret adresse.

    * Betingede spring (JE, JNE, JG, JL osv.): Spring til en specificeret adresse baseret på status for CPU -flag (f.eks. Nul flag, bære flag, underskrive flag).

    * ring (ring): Ring til en subroutine (funktion).

    * retur (RET): Vend tilbage fra en subroutine.

    * samler: Samlingssprogkode oversættes til maskinkode af et program kaldet en samler . Samleren læser samlingskoden, oversætter hver mnemonic til sin tilsvarende maskinskodeinstruktion og genererer en objektfil (f.eks. `.O`,` .obj`), der indeholder maskinkoden.

    * linker: Objektfilerne genereret af samleren er forbundet med en linker At oprette en eksekverbar fil (f.eks. `.exe`, '.elf'). Linkeren løser referencer mellem forskellige objektfiler og kombinerer dem til et enkelt, kørbart program.

    * Direktiver/pseudo-ops: Samlingssprog inkluderer typisk direktiver (også kaldet pseudo-ops), der er instruktioner til samleren, ikke faktiske maskininstruktioner. Disse direktiver er vant til:

    * Definer data (f.eks. `Db`,` dw`, `dd` for at definere bytes, ord og dobbeltord).

    * Tildel hukommelse (f.eks. 'Resb', 'RESW', 'RESD' for at reservere hukommelse til bytes, ord og dobbeltord).

    * Definer etiketter (symboliske navne på hukommelsesplaceringer eller kodeadresser).

    * Medtag andre filer.

    * Kontroller samlingsprocessen.

    * makroer: Samlingssprog understøtter makroer, som er kodeskabeloner, der kan udvides af samleren. Makroer giver programmerere mulighed for at definere genanvendelige kodestykker, reducere kodeduplicering og forbedre kode vedligeholdelighed.

    eksempel (Intel x86 forsamling):

    `` `forsamling

    ; Eksempel:Tilføjer to numre og gemmer resultatet i hukommelsen

    sektion .data

    Num1 DW 10; Definer et ord (2 bytes) variabel num1 med værdi 10

    Num2 DW 20; Definer et ordvariabel num2 med værdi 20

    Resultat DW 0; Definer et ord variabelt resultat, initialiseret til 0

    Sektion .Text

    global _start; Indgangspunkt for programmet

    _starte:

    Mov Ax, [num1]; Flyt værdien af ​​Num1 ind i AX -registeret

    Tilføj øks, [num2]; Tilføj værdien af ​​Num2 til AX -registeret

    MOV [resultat], øks; Flyt værdien i AX Registrer dig i resultatet af hukommelsen

    ; Afslut programmet (platformspecifikt, dette er Linux-eksempel)

    Mov Eax, 1; SYS_EXIT SYSCALL NUMMER

    XOR EBX, EBX; Afslutkode 0

    int 0x80; Ring til kerne

    `` `

    Kortfattet:

    Samlingssprog er et kraftfuldt værktøj for programmerere, der har brug for kontrol på lavt niveau over hardware, optimal ydelse eller en dyb forståelse af computerarkitektur. Selvom det kan være mere komplekst og tidskrævende at skrive end sprog på højt niveau, tilbyder det enestående kontrol og potentiale for optimering i specifikke situationer. Dets applikationer findes ofte i programmering af systemniveau, indlejrede systemer og reverse engineering.

    Forrige :

    næste :
      Relaterede artikler
    ·Hvordan man kan montere en Lokal telefonbog Med Jahia 
    ·Sådan fjernes en Open Token 
    ·Sådan ændres Highlight i HTML 
    ·Sådan Kill C + + Syntax 
    ·Hvad er Recursion i programmering 
    ·Sådan Automatiser Visio Med Powershell 
    ·Hvilket systemprogrammering? 
    ·Anfør de Datatyper brugt i både variable 
    ·Hvordan kan pumpen lemma bruges til at bevise, at et sp…
    ·Forskelle mellem Links & rollover-knapper 
      Anbefalede Artikler
    ·Sådan Clean Global Assembly Cache 
    ·Sådan animere et JPanel i Java 
    ·Sådan ændrer adgangskoden til din konto med Applescri…
    ·Sådan ændres skrifttyper i Java 
    ·Hvordan man programmerer et array i Visual Basic 6.0 
    ·Hvad er Statement Dækning 
    ·Sådan Beregn Korrelation på Ti- 84 Plus 
    ·Sådan installeres MySQL 
    ·Sådan ændres Int til String 
    ·Længde String Uden Indbygget Funktion i C + + 
    Copyright © Computer Viden https://www.computerdk.com