Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia durnapedija! Nusišnekėjimų šventovė!
Subskraibink Pipediją ant FB: |
Asembleris
Asembleris, dar vadinamas assembler arba Asm - tokia programavimo kalba būtų, bet išties tai ne viena programavimo kalba, o mažiausiai daugiau, negu kad yra skirtingų procesorių, nes kiekvienas procesorius turi savo asemblerį, kuris visiškai skiriasi nuo kitų procesorių.
Jei jau taip žmogiškai pasakyti, kad normalūs hakeriai suprastų, o visokie lameriai imtų tampytis nuo traukulių, nes jie yra durniai, tai išties kiekvienas procesorius yra ne kas kita, o programavimo kalba, o jei tiksliau - tai tam tikros programavimo kalbos interpretatorius. Būtent taip. Taigi, kiek procesorių - tiek skirtingų programavimo kalbų.
Aišku, procesoriai žmogiškų kalbų nesupranta, o žmonės bitais irgi nešneka, tai todėl atsiranda tokie transliatoriai, kurie tą procesoriaus kalbą leidžia užrašyti žmogui suprantamomis santrumpomis. Tai vat tos santrumpos yra vadinamos asemblerio kalba, o transliatoriai - asembleriais.
Aišku, tam pačiam procesoriui gali būti įvairių asemblerių, kurie kartais skiriasi tiek smarkiai, kad būna visiškai nepanašūs vieni į kitus, tai ir vėl gaunasi naujos kalbos, tiktai kad paveldėjusios iš tų procesorių kai kurias ypatybes, kaip kokie nors adresacijos būdai, registrai, kažkokios ten komandos ir panašiai.
Iš asemblerių kilo garsi ir populiari programavimo kalba Intercall.
Turinys
Hello World su visokiais asembleriais
Štai čia jums duosime visokių pavyzdžių, o ir ne vieną, nes skirtingi asembleriai labai skiriasi, o dar ir atsiranda visokios pačių kompiuterių ir netgi OS ypatybės, taip kad labai jau skiriasi viskas, netgi jei procesorius vienodas būtų. Todėl pamatysite čia, kaip skirtingi asembleriai vieni į kitus visiškai nepanašūs.
Tai ir dar papildomai, visokios firmos skirtingus asemblerius kuria, tai netgi jei viskas vienodai, tai visvien būna skirtingai. Visgi net jei asembleriai ir labai smarkiai skirtingi, tai dažniausiai jie palaiko paties procesoriaus gamintojo sukurtą sintaksę. Išimtis gal bebūtų tik UNIX naudojami asembleriai, kurie kartais naudoja tik ATT sintaksę, nes su ja galima paprasčiau perkeldinėti programas iš vieno asemblerio į kitą.
i8086 TASM asembleris, DOS
Čia vat Turbo asembleris, kuris iš Borland firmos, skirtas visokiems x86 kompiuteriams:
.model tiny .code org 100h main proc near mov ah,09h mov mov dx,offset message int 21h mov ah,4ch mov al,00 int 21h endp message db "Hello World $" end main
i386 GAS asembleris, Linux
Čia vat GAS asembleris, kuris su AT&T sintakse, būdinga visokioms UNIX sistemoms, o programa skirta Linux:
.globl _start _start: movb $4, %al xor %ebx, %ebx inc %ebx movl $hello, %ecx xor %edx, %edx movb $11, %dl int $0x80 xor %eax, %eax inc %eax int $0x80 hello: .ascii "Hello world"
ARM asembleris, Linux
Čia štai jums ARM procesorių asembleris, kuris kažkokiam Linux skirtas. Tai vat taip čia gaunasi:
.global _start _start: MOV R7, #4 MOV R0, #1 MOV R2, #12 LDR R1, =string SWI 0 MOV R7, #1 SWI 0 .data string: .ascii "Hello World\n"