Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
Struktūrinis asembleris
Struktūrinis asembleris - tai toksai smarkiai pagerintas asembleris, kur dalis komandų yra pakeista į įprastus aukšto lygio kalbų raktinius žodžius, kurie, savo ruožtu, gali būti vienareikšmiškai transliuojami į asemblerio komandas.
Kaip pvz., vietoje to, kad būtų rašoma seka:
mov cx, 10
mov bx, 0
start:
cmp cx, bx
jz end
inc bx
; some actual code
jmp start
end:
Imama ir parašoma tokia seka:
for (cx=10; cx <> bx; inc bx) {
/* some actual code */
}
Kai struktūrinis asembleris gauna tokį kodą, jis ciklo apibrėžimus, įskaitant ir pradžią, ir pabaigą, ištransliuoja kaip tik į tą variantą, koksai numatytas įprasto asemblerio atveju. Žodžiu, visas tas "for cx, bx" tipo kodas bus paverstas į "mov cx, mov bx" tipo kodą.
Iš šito, kaip matome, nereikia užsipisinėt, rašant ir rašant pasikartojančius ciklų ar dar kažko ten apibrėžimus, nes juos galima užrašyti praktiškai labai panašiai, kaip ir normalia aukšto lygio programavimo kalba. Ir kartu jie bus gerai ištransliuoti į kokybišką ir greitą asemblerio kodą. Užtat ten, kur yra jau koks nors protingas kodas, tai ir toliau rašoma asembleriu.
Vienas iš pirmų pilnaverčių struktūrinių asemblerių buvo Z-8000 procesoriams skirtas, tai jis paskui buvo gerokai reklamuojamas, kaip didelis privalumas, pardavinėjamas už pinigus, tačiau branmgi kaina tapo viena iš priežasčių, dėl kurių tas procesorius paskui neišplito. Nes tipo programuot per brangu. Ale tas asembleris buvo geras, pastatytas ant Pascal sintaksės, tad visai lengvas mokytis.
Gana artima struktūriniams asembleriams, tačiau visgi aukštesnio lygio buvo ir C kalba. Šiosios esmė buvo, kad viskas, kas tik kalboje deklaruojama, gali būti visiškai vienareikšmiškai ir be jokių išvedžiojimų ir visiškai tiesiogiai transliuojama tiesiai į asemblerį taip, kad gautųsi tiesioginiai asemblerio sekų analogai. Tokia transliacija leido kurti ir perkeliamas programas (nes visgi ne asembleriu rašyta), ir kartu gauti labai greitai veikiantį kodą, kuris gali lygintis su asemblerio kodu.
Vėliau vietoje struktūrinių asemblerių išplito makroasembleriai, kurie galėdavo daryti tą patį, tiktai su dar didesnėmis galimybėmis. Ale paradoksas, bet makroasemblerius pamėgo dar mažiau programuotojų, negu kad struktūrinius asemblerius.