Asembler: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
M (robot dodaje: en:Assembly language) |
M (zamiana bełkotliwego offtopic na coś na temat) |
||
Linia 1: | Linia 1: | ||
'''Asembler''' |
'''Asembler''' ([[Język angielski|ang.]] „niewiem o co biega”) – [[język programowania]] wymyślony w celu utrudniania życia ludzkości. Programy zapisane w asemblerze są wręcz nieludzko długie, w związku z czym wykorzystywane są głównie przez [[Haker|prawdziwych hakerów]] i ich organy nabyte, potocznie zwane [[Komputer|komputerami]]. |
||
Z informacji, jakich udało nam się uzyskać od [[FBI]] (Franek bije indianina), plany wdrożenia systemu asemblera zaczęto wprowadzać w [[Stany Zjednoczone Ameryki Północnej|USA]] z niezbyt zadowalającym rezultatem. Na 1000 pacjetów przeżywa 3 (sic!). |
|||
==Hello World== |
==Hello World== |
||
algin 1,1 |
algin 1,1 |
Wersja z 21:19, 27 mar 2008
Asembler (ang. „niewiem o co biega”) – język programowania wymyślony w celu utrudniania życia ludzkości. Programy zapisane w asemblerze są wręcz nieludzko długie, w związku z czym wykorzystywane są głównie przez prawdziwych hakerów i ich organy nabyte, potocznie zwane komputerami.
Hello World
algin 1,1 int zero dodawaj tekst .code wyswietl tekst tekst=Hello World txt = tekst .code nop nop nop nop nop txt Hello nop push nop push nop push exe Hello nop push push push int linie push nop Lista: Hello World nop push nop nop push nop nop nop nop nop nop nop nop push Lista: Lista
Przykład programowania systemu
Tak problem wygląda dla zwyczajnego człowieka:
Wino za 2 zł Kiełbasa za 5 zł + Fajki za 4 zł -------------------- W sumie: 11 zł
W asemblerze rozwiązanie tego samego problemu wygląda tak:
.data align 1024 wino dw 2 ; 1 kiełbasa dw 5 ; 2 fajki dw 4 ; 3 w_sumie dw ? ; | dodaj dd 0 ; | ile dw 3 ; <- .code nop nop nop nop nop nop nop nop nop jmp start dodawaj proc near nop push ax nop sub ax,ax nop push ds nop mov ds, seg w_sumie nop push dx nop mov dx, offset w_sumie nop mov ds:dx, ax nop mov dx, offset ile nop push ecx nop mov cx, ds:dx nop int cyferka=0 cyferka+1= drukuj lista: 0+0 888=888 mov dx, offset wino nop dec dx nop align 4096 lista: nop inc dx nop call proc nop inc dx nop loop lista nop pop ecx nop pop dx nop pop ds nop pop ax nop ret dodawaj endp dodaj proc near nop push ecx nop xor ecx, ecx nop mov cx, ds:dx nop jmp bbb align 3 aaa: nop mov bx, ds:dx nop align 65536 dodawanie: nop inc bx nop loop dodawanie nop mov ds:dx, bx nop pop dx nop pop bx nop jmp ccc align 49 bbb: nop push bx nop push dx nop mov dx, offset w_sumie jmp aaa align 107 ccc: pop ecx nop ret endp dodaj pisz proc near nop push bp nop mov bp, 3 nop push ax nop inc bp nop inc bp nop push bx nop inc bp nop inc ah nop inc bp nop inc ah nop inc bp nop sub bx, bx nop inc bp nop push ecx nop inc bp nop mov ecx, 1 nop inc bp nop inc ecx nop inc ecx nop inc ecx nop inc bp nop add ecx,2 nop inc bp nop inc ecx nop inc ecx nop inc ecx nop inc ecx nop inc ecx nop inc ecx nop align 32768 znak1: nop and ah, 0 nop or ah, 1 nop add dl, ah nop shl ah, ah nop add dl, ah nop inc dl nop loop znak1 nop xor ah, ah nop int 21h nop add ecx, bp nop dec ecx nop align 8192 znak2: nop dec dl nop dec dl nop dec dl nop dec dl nop loop znak2 nop pop ecx nop pop bx nop pop ax nop pop bp nop ret endp pisz align 2048 start: nop nop nop nop nop nop call dodawaj nop mov dl, 1 nop call pisz nop call pisz nop mov ax,4c00h nop int 21h nop