Delphi – Korišćenje asemblera u objektnom Pascal-u (I deo)

U nekoliko narednih priloga usredsredićemo se na upoznavanje primene asemblera (Assembler Language) unutar Delphi-ja, odnosno objektnog Pascal-a. Pored toga, u prolazu ćemo se pozabaviti i drugim aspektima programiranja. Radi jednostavnosti, u primerima ćemo koristiti Intel-ov podskup asemblerskih instrukcija, pošto on omogućava generalniji pristup, sa samo nekoliko specijalnih izuzetaka. Nadalje, svi dati asemblerski primeri biće smešteni u Pascal okruženje.

Zašto uopšte koristiti asembler? Svi znamo da objektni Pascal proizvodi brz i efikasan programski kod, dodajući ovome Delphi-ijevo okruženje za rapidni razvoj aplikacija, zaista postaje upitno zašto uopšte koristiti asembler. Govoreći iz iskustva, u radu sa Delphi-jem postoji nekoliko situacija kada je preporučljivo koristiti programiranje na „niskom nivou“, a to su:

  • Obrada velike količine podataka
  • Veoma brze grafičke rutine
Kasnije ćemo vam kroz primere plastičnije ilustrovati šta ovo znači.

Šta je zapravo asembler? Nadam se da vam je poznat princip rada centralne procesorske jedinice, u osnovi, radi se o „običnom“ brzom kalkulatoru sa velikom memorijom. Memorija je organizovana u sekvence binarnih cifri, tj. u blokove od osam bita, od kojih svaki formira jedan bajt. Prema tome, svaki bajt može da skladišti integer vrednost u intervalu od 0 do 255, i svaka pozicija bajta u delu memorije određena je jedinstvenom adresom koju centralna procesorska jedinica (CPU) može da promeni ili da iščita njegovu vrednost. CPU poseduje i određeni broj registara (zamislite registre kao globalne varijable) kojima može da manipuliše. Na primer, eax, ebx, ecx i edx su opšti 32-bitni registri, koje ćemo koristiti u sledećim primerima. Iz ovoga možemo zaključiti da je najveći broj koji možemo da smestimo u registar eax 2 na 32 minus 1, ili tačnije 4.294.967.295.

Pratite Krstaricu na www.krstarica.com