b"\n_START_ARTICLE_\nAsembleris\n_START_PARAGRAPH_\nAsembleris \xe2\x80\x93 programa, transliuojanti asemblerio kalba ra\xc5\xa1yt\xc4\x85 programos tekst\xc4\x85 \xc4\xaf objektin\xc4\xaf (ma\xc5\xa1inos) kod\xc4\x85. Nors asemblerio kalba t\xc4\x97ra mnemoninis procesoriaus instrukcij\xc5\xb3 vaizdavimas, ji da\xc5\xbenai suteikia ir patogi\xc5\xb3 papildom\xc5\xb3 galimybi\xc5\xb3. Pavyzd\xc5\xbeiui, asembleris suteikia galimyb\xc4\x99 pavadinti atminties vietas (adresus) simboliniais vardais, supaprastindamas programavim\xc4\x85, nes programuojant paprastomis mnemonikomis, kiekvien\xc4\x85 kart\xc4\x85 kei\xc4\x8diant programos tekst\xc4\x85, tekt\xc5\xb3 perskai\xc4\x8diuoti atminties adresus._NEWLINE_Asembleri\xc5\xb3 ra\xc5\xa1ymas da\xc5\xbenai yra \xc5\xbeymiai paprastesnis, nei auk\xc5\xa1to lygio kalb\xc5\xb3 kompiliatori\xc5\xb3 ra\xc5\xa1ymas. Pirmieji asembleriai atsirado \xc5\xa1e\xc5\xa1tajame de\xc5\xa1imtmetyje._NEWLINE_Skirtingai, nei \xc4\xafprastos programavimo kalbos, asembleriai neabstrahuoja procesoriaus ar kompiuterio architekt\xc5\xabros, tod\xc4\x97l, pvz., vienam procesoriui skirta programa, para\xc5\xa1yta asembleriu, negali b\xc5\xabti lengvai pritaikyta kitam procesoriui (ar net kompiuteriui, turin\xc4\x8diam t\xc4\x85 pat\xc4\xaf procesori\xc5\xb3, bet kitoki\xc4\x85 architekt\xc5\xabr\xc4\x85). Kita vertus, \xc5\xa1is architekt\xc5\xabros atitikimas leid\xc5\xbeia \xc5\xbeymiai geriau panaudoti kompiuterio ar procesoriaus galimybes, sukurti kompakti\xc5\xa1kesnes ir greitesnes programas._NEWLINE_Modern\xc5\xabs auk\xc5\xa1tesnio lygio asembleriai naudoja papildomas auk\xc5\xa1tesnio lygio kalb\xc5\xb3 abstrakcijas, kaip sud\xc4\x97tingesn\xc4\x97s valdymo strukt\xc5\xabros, funkcij\xc5\xb3 ra\xc5\xa1ymas ir kvietimas, auk\xc5\xa1to lygio abstrakt\xc5\xabs duomen\xc5\xb3 tipai ir pan. Du labiausiai i\xc5\xa1vystyti asembleri\xc5\xb3 atvejai \xe2\x80\x93 tai makroasembleriai, turintys makrokalb\xc4\x85, leid\xc5\xbeian\xc4\x8di\xc4\x85 i\xc5\xa1 apibr\xc4\x97\xc5\xbeti da\xc5\xbeniau naudojamus kodo fragmentus ar net sintaks\xc4\x97s taisykles bei strukt\xc5\xabriniai asembleriai, suteikiantys \xc4\xafprastiems asembleriams strukt\xc5\xabrinio programavimo (proced\xc5\xabros, ciklai, duomen\xc5\xb3 tipai ir kiti abstraktai) galimybes._NEWLINE_Nema\xc5\xbeai auk\xc5\xa1tesnio nei asembleris lygio kalb\xc5\xb3 kompiliatori\xc5\xb3 pirmiausia generuoja asemberio kod\xc4\x85, pavyzd\xc5\xbeiui, GNU C kompiliatoriaus sugeneruot\xc4\x85 asemblerio kod\xc4\x85 (AT&T sintaks\xc4\x97) galima per\xc5\xbei\xc5\xabr\xc4\x97ti komanda_NEWLINE_gcc -S failas -o temp && cat temp\n_START_SECTION_\nPavyzdys\n_START_PARAGRAPH_\nAsembleriu para\xc5\xa1ytos programos (DOS operacinei sistemai), \xc4\xaf ekran\xc4\x85 i\xc5\xa1vedan\xc4\x8dios tekst\xc4\x85 \xe2\x80\x9eSveikas, pasauli!\xe2\x80\x9c, pavyzdys:_NEWLINE_code segment_NEWLINE_  assume cs:code, ds:code_NEWLINE_  org 100h_NEWLINE_ _NEWLINE_start:_NEWLINE_  mov ah, 9_NEWLINE_  mov dx, offset hello_msg_NEWLINE_  int 21h_NEWLINE__NEWLINE_  mov ax, 4c00h_NEWLINE_  int 21h_NEWLINE_  hello_msg DB 'Sveikas, pasauli!', 13, 10, '$'code endsend start"