Programski jezik niskog nivoa

From Wikipedia, the free encyclopedia

Remove ads

Programski jezik niskog nivoa je vrsta programskog jezika koji omogućava direktnu komunikaciju s hardverom računara, uz minimalnu apstrakciju od arhitekture sistema. Ovi jezici su ključni za razvoj operativnih sistema, ugrađenih sistema i upravljačkih programa (drajvera).

Uvod

Jezici niskog nivoa omogućavaju direktan pristup resursima računara, uključujući memoriju, registre i I/O uređaje. Zbog toga se koriste u situacijama gdje su brzina i efikasnost ključni faktori, poput razvoja operativnih sistema i ugradbenih rješenja.

Osnovne karakteristike

  • Bliska povezanost s hardverom – Programi direktno manipulišu memorijom i registarskim operacijama, bez dodatnih slojeva apstrakcije.
  • Minimalna apstrakcija – Programerima je omogućeno nisko-nivo upravljanje resursima, što zahtijeva detaljno razumijevanje arhitekture sistema.
  • Efikasnost i brzina – Kod se prevodi direktno u mašinski kod, čime se izbjegavaju dodatni slojevi interpretacije.
  • Ograničena prenosivost – Programi su često prilagođeni specifičnim arhitekturama procesora.
Remove ads

Vrste programskih jezika niskog nivoa

Mašinski jezik

Mašinski jezik predstavlja niz binarnih instrukcija koje procesor može direktno izvršiti. Svaka instrukcija se zapisuje u binarnom formatu, što ga čini teško čitljivim za programere.

10110000 01100001

Ova instrukcija može značiti "učitaj vrijednost 97 u registar".

Asemblerski jezik

Asemblerski jezik koristi mnemonike umjesto binarnog koda, omogućavajući programerima čitljiviji način pisanja programa. Svaka asembler instrukcija odgovara jednoj mašinskoj instrukciji.

MOV AX, 5
ADD AX, 3

Ovaj kod znači: učitaj vrijednost 5 u registar AX, a zatim dodaj 3.

C jezik (delimično)

Iako C (programski jezik) nije klasičan jezik niskog nivoa, omogućava direktan rad s memorijom pomoću pokazivača i inline asemblera.

#include <stdio.h>

int main() {
    int x = 5;
    int *ptr = &x;
    printf("Vrijednost x: %d\n", *ptr);
    return 0;
}

Napredne tehnike programiranja niskog nivoa

Rad s registrima

Korištenje registara omogućava optimizaciju performansi.

MOV AX, 4
MOV BX, AX
ADD BX, 2

Direktan pristup hardveru

U jezicima niskog nivoa moguće je direktno upravljati I/O uređajima.

MOV AH, 0       ; Servis za čitanje karaktera
INT 16h         ; Interrupt za tastaturu

Interrupti i sistemske operacije

Interrupti omogućavaju procesoru da reaguje na spoljne i unutrašnje događaje.

MOV AH, 0x0E
MOV AL, 'A'
INT 10h

Razlike između x86 i ARM arhitekture

Dva najčešća seta instrukcija u niskonivoznom programiranju su x86 (CISC) i ARM (RISC).

x86 Assembly:

MOV AX, 5
ADD AX, 3

ARM Assembly:

MOV R0, #5
ADD R0, R0, #3

Pisanje bootloadera

Bootloader je prvi program koji se izvršava prilikom pokretanja računara. Piše se u asembleru zbog potrebe za potpunom kontrolom nad hardverom.

BITS 16
ORG 0x7C00

MOV SI, msg
CALL print
JMP $

print:
    MOV AH, 0x0E
next_char:
    LODSB
    CMP AL, 0
    JE done
    INT 0x10
    JMP next_char
done:
    RET

msg: DB 'Hello, World!', 0

TIMES 510 - ($ - $$) DB 0
DW 0xAA55  ; Boot signature
Remove ads

Prednosti i nedostaci

Više informacija Prednosti, Nedostaci ...

Primjena

Jezici niskog nivoa koriste se u:

Zaključak

Programski jezici niskog nivoa omogućavaju visoku kontrolu nad hardverom, ali su složeniji za programiranje. Njihova primjena je ključna u oblastima gdje su brzina i optimizacija presudni faktori, kao što su operativni sistemi, drajveri i ugrađeni sistemi.

Literatura

  • Tanenbaum, A. S. (2016). Structured Computer Organization. Pearson.
  • Patterson, D. A., & Hennessy, J. L. (2017). Computer Organization and Design. Morgan Kaufmann.
  • Stallings, W. (2019). Computer Organization and Architecture. Pearson.

Vanjski linkovi

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads