Asembler: Różnice pomiędzy wersjami
Z Nonsensopedii, polskiej encyklopedii humoru
(Dodałem kolorowanie składni asemblera.) |
|||
Linia 8: | Linia 8: | ||
{| |
{| |
||
|| |
|| |
||
<span style='color:#00f'><span style='color:#f00'>ss</span></span> stos |
|||
TITLE hello-w |
|||
<span style='color:#00f'>align</span> 1,1 |
|||
ss stos |
|||
<span style='color:#00f'>int</span> zero |
|||
algin 1,1 |
|||
<span style='color:#00f'>add</span> tekst |
|||
int zero |
|||
<span style='color:#08f'>.code</span> |
|||
add tekst |
|||
<span style='color:#00f'>text</span> tekst |
|||
.code |
|||
text tekst |
|||
wyswietl: |
wyswietl: |
||
pop stos,viewer |
<span style='color:#00f'>pop</span> stos,viewer |
||
view tekst |
<span style='color:#00f'>view</span> tekst |
||
goto przypisz |
<span style='color:#00f'>goto</span> przypisz |
||
goto wyswietl |
<span style='color:#00f'>goto</span> wyswietl |
||
<span style='color:#08f'>.data</span> |
|||
.data |
|||
kielich=kradnij(kielich) |
kielich=kradnij(kielich) |
||
kieliszek=kielich(zdrobienie,for (wino or winko)) |
kieliszek=kielich(zdrobienie,for (wino or winko)) |
||
Linia 29: | Linia 28: | ||
szklaneczka=zdrobnienie(szklanka)) |
szklaneczka=zdrobnienie(szklanka)) |
||
tekst=[[Hello World]] |
tekst=[[Hello World]] |
||
txt = tekst |
<span style='color:#00f'>txt</span> = tekst |
||
<span style='color:#08f'>.code</span> |
|||
.code |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
txt Hello |
<span style='color:#00f'>txt</span> Hello |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>dx</span> |
|||
push dx |
|||
<span style='color:#00f'>mov</span> tekst,<span style='color:#f00'>dx</span> |
|||
mov tekst,dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
open piwo |
<span style='color:#00f'>open</span> piwo |
||
wlej kufel,piwo |
<span style='color:#00f'>wlej</span> kufel,piwo |
||
pij kufel |
<span style='color:#00f'>pij</span> kufel |
||
<span style='color:#00f'>push</span> <span style='color:#f00'>ax</span> |
|||
push ax |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>ax</span>,<span style='color:#f00'>bx</span> |
|||
add ax,bx |
|||
<span style='color:#00f'>int</span> 21h |
|||
int 21h |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>int</span> 10h |
|||
int 10h |
|||
newlist lista,dx |
<span style='color:#00f'>newlist</span> lista,<span style='color:#f00'>dx</span> |
||
open wódka |
<span style='color:#00f'>open</span> wódka |
||
wlej wódka,szklaneczka |
<span style='color:#00f'>wlej</span> wódka,szklaneczka |
||
pij szklaneczka |
<span style='color:#00f'>pij</span> szklaneczka |
||
add szklaneczka,bx |
<span style='color:#00f'>add</span> szklaneczka,<span style='color:#f00'>bx</span> |
||
<span style='color:#00f'>add</span> <span style='color:#f00'>bx</span>,<span style='color:#f00'>ax</span> |
|||
add bx,ax |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>dx</span>,<span style='color:#f00'>ax</span> |
|||
add dx,ax |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>dx</span> |
|||
push dx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>bx</span> |
|||
pop bx |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>cx</span> |
|||
push cx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>bx</span>,<span style='color:#f00'>ax</span> |
|||
mov bx,ax |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>ax</span>,<span style='color:#f00'>cx</span> |
|||
add ax,cx |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>ax</span>,<span style='color:#f00'>dx</span> |
|||
add ax,dx |
|||
<span style='color:#00f'>int</span> 21h |
|||
int 21h |
|||
open bimber |
<span style='color:#00f'>open</span> bimber |
||
wlej bimber,beczka |
<span style='color:#00f'>wlej</span> bimber,beczka |
||
pij beczka |
<span style='color:#00f'>pij</span> beczka |
||
<span style='color:#00f'>add</span> <span style='color:#f00'>ax</span>,<span style='color:#f00'>cx</span> |
|||
add ax,cx |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>cx</span>,<span style='color:#f00'>dx</span> |
|||
add cx,dx |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>dx</span>,<span style='color:#f00'>cx</span> |
|||
add dx,cx |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>ax</span>,<span style='color:#f00'>dx</span> |
|||
add ax,dx |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>dx</span>,<span style='color:#f00'>cx</span> |
|||
mov dx,cx |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>cx</span> |
|||
push cx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>cs</span> |
|||
pop cs |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ds</span> |
|||
pop ds |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ds</span> |
|||
pop ds |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>es</span> |
|||
pop es |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ds</span> |
|||
pop ds |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>es</span> |
|||
pop es |
|||
open wino |
<span style='color:#00f'>open</span> wino |
||
wlej wino,kieliszek |
<span style='color:#00f'>wlej</span> wino,kieliszek |
||
pij kieliszek |
<span style='color:#00f'>pij</span> kieliszek |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
exec Hello |
<span style='color:#00f'>exec</span> Hello |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
int linie |
<span style='color:#00f'>int</span> linie |
||
<span style='color:#00f'>push</span> |
|||
push |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
Lista: |
Lista: |
||
(1)=:=Hello |
(1)=:=Hello |
||
(2)=:=World |
(2)=:=World |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> |
|||
push |
|||
create LIST,Lista2 |
<span style='color:#00f'>create</span> LIST,Lista2 |
||
<span style='color:#00f'>a<span style='color:#00f'>int</span></span> i |
|||
aint i |
|||
char znak |
<span style='color:#00f'>char</span> znak |
||
Przypisz: |
Przypisz: |
||
i=znak(number) |
i=znak(number) |
||
znak-i |
znak-i |
||
add Lista2(i),znak |
<span style='color:#00f'>add</span> Lista2(i),znak |
||
push znak |
<span style='color:#00f'>push</span> znak |
||
goto przypisz |
<span style='color:#00f'>goto</span> przypisz |
||
<span style='color:#00f'>end</span> |
|||
end |
|||
Lista: Lista |
Lista: Lista |
||
|} |
|} |
||
Linia 140: | Linia 139: | ||
W asemblerze rozwiązanie tego samego problemu wygląda tak: |
W asemblerze rozwiązanie tego samego problemu wygląda tak: |
||
<span style='color:#00f'>align</span> 1024 |
|||
.data |
|||
align 1024 |
|||
wino dw 2 ; 1 |
wino dw 2 ; 1 |
||
kiełbasa dw 5 ; 2 |
kiełbasa dw 5 ; 2 |
||
Linia 148: | Linia 146: | ||
dodaj dd 0 ; | |
dodaj dd 0 ; | |
||
ile dw 3 ; <- |
ile dw 3 ; <- |
||
<span style='color:#08f'>.code</span> |
|||
.code |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
jmp start |
<span style='color:#00f'>jmp</span> start |
||
dodawaj proc near |
dodawaj proc near |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>ax</span> |
|||
push ax |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>sub</span> <span style='color:#f00'>ax</span>,<span style='color:#f00'>ax</span> |
|||
sub ax,ax |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>ds</span> |
|||
push ds |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
mov ds, seg w_sumie |
<span style='color:#00f'>mov</span> <span style='color:#f00'>ds</span>, seg w_sumie |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>dx</span> |
|||
push dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
mov dx, offset w_sumie |
<span style='color:#00f'>mov</span> <span style='color:#f00'>dx</span>, <span style='color:#08f'>offset</span> w_sumie |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>ds</span>:<span style='color:#f00'>dx</span>, <span style='color:#f00'>ax</span> |
|||
mov ds:dx, ax |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>dx</span>, <span style='color:#08f'>offset</span> ile |
|||
mov dx, offset ile |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>ecx</span> |
|||
push ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>cx</span>, <span style='color:#f00'>ds</span>:<span style='color:#f00'>dx</span> |
|||
mov cx, ds:dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
int cyferka=0 |
<span style='color:#00f'>int</span> cyferka=0 |
||
cyferka+1= |
cyferka+1= |
||
drukuj |
<span style='color:#00f'>drukuj</span> |
||
lista: |
lista: |
||
0+0 |
0+0 |
||
888=888 |
888=888 |
||
<span style='color:#00f'>mov</span> <span style='color:#f00'>dx</span>, <span style='color:#08f'>offset</span> wino |
|||
mov dx, offset wino |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>dec</span> <span style='color:#f00'>dx</span> |
|||
dec dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
align 4096 |
<span style='color:#00f'>align</span> 4096 |
||
lista: |
lista: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>dx</span> |
|||
inc dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
call proc |
call proc |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>dx</span> |
|||
inc dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
loop lista |
<span style='color:#00f'>loop</span> lista |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ecx</span> |
|||
pop ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ds</span> |
|||
pop ds |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ax</span> |
|||
pop ax |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>ret</span> |
|||
ret |
|||
dodawaj |
dodawaj <span style='color:#00f'>end</span>p |
||
dodaj proc near |
dodaj proc near |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>ecx</span> |
|||
push ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>xor</span> <span style='color:#f00'>ecx</span>, <span style='color:#f00'>ecx</span> |
|||
xor ecx, ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>cx</span>, <span style='color:#f00'>ds</span>:<span style='color:#f00'>dx</span> |
|||
mov cx, ds:dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
jmp bbb |
<span style='color:#00f'>jmp</span> bbb |
||
align 3 |
<span style='color:#00f'>align</span> 3 |
||
aaa: |
aaa: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>bx</span>, <span style='color:#f00'>ds</span>:<span style='color:#f00'>dx</span> |
|||
mov bx, ds:dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
align 65536 |
<span style='color:#00f'>align</span> 65536 |
||
dodawanie: |
dodawanie: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bx</span> |
|||
inc bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
loop dodawanie |
<span style='color:#00f'>loop</span> dodawanie |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>ds</span>:<span style='color:#f00'>dx</span>, <span style='color:#f00'>bx</span> |
|||
mov ds:dx, bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>dx</span> |
|||
pop dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>bx</span> |
|||
pop bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
jmp ccc |
<span style='color:#00f'>jmp</span> ccc |
||
align 49 |
<span style='color:#00f'>align</span> 49 |
||
bbb: |
bbb: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>bx</span> |
|||
push bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>dx</span> |
|||
push dx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
mov dx, offset w_sumie |
<span style='color:#00f'>mov</span> <span style='color:#f00'>dx</span>, <span style='color:#08f'>offset</span> w_sumie |
||
jmp aaa |
<span style='color:#00f'>jmp</span> aaa |
||
align 107 |
<span style='color:#00f'>align</span> 107 |
||
ccc: |
ccc: |
||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ecx</span> |
|||
pop ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>ret</span> |
|||
ret |
|||
endp dodaj |
<span style='color:#00f'>endp</span> dodaj |
||
pisz proc near |
pisz proc near |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>bp</span> |
|||
push bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>bp</span>, 3 |
|||
mov bp, 3 |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>ax</span> |
|||
push ax |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>bx</span> |
|||
push bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ah</span> |
|||
inc ah |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ah</span> |
|||
inc ah |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>sub</span> <span style='color:#f00'>bx</span>, <span style='color:#f00'>bx</span> |
|||
sub bx, bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>push</span> <span style='color:#f00'>ecx</span> |
|||
push ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>ecx</span>, 1 |
|||
mov ecx, 1 |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>ecx</span>,2 |
|||
add ecx,2 |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>bp</span> |
|||
inc bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>ecx</span> |
|||
inc ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
align 32768 |
<span style='color:#00f'>align</span> 32768 |
||
znak1: |
znak1: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>and</span> <span style='color:#f00'>ah</span>, 0 |
|||
and ah, 0 |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
or ah, 1 |
or <span style='color:#f00'>ah</span>, 1 |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>dl</span>, <span style='color:#f00'>ah</span> |
|||
add dl, ah |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
shl <span style='color:#f00'>ah</span>, <span style='color:#f00'>ah</span> |
|||
shl ah, ah |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>dl</span>, <span style='color:#f00'>ah</span> |
|||
add dl, ah |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>inc</span> <span style='color:#f00'>dl</span> |
|||
inc dl |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
loop znak1 |
<span style='color:#00f'>loop</span> znak1 |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>xor</span> <span style='color:#f00'>ah</span>, <span style='color:#f00'>ah</span> |
|||
xor ah, ah |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
int 21h |
<span style='color:#00f'>int</span> 21h |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>add</span> <span style='color:#f00'>ecx</span>, <span style='color:#f00'>bp</span> |
|||
add ecx, bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>dec</span> <span style='color:#f00'>ecx</span> |
|||
dec ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
align 8192 |
<span style='color:#00f'>align</span> 8192 |
||
znak2: |
znak2: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>dec</span> <span style='color:#f00'>dl</span> |
|||
dec dl |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>dec</span> <span style='color:#f00'>dl</span> |
|||
dec dl |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>dec</span> <span style='color:#f00'>dl</span> |
|||
dec dl |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>dec</span> <span style='color:#f00'>dl</span> |
|||
dec dl |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
loop znak2 |
<span style='color:#00f'>loop</span> znak2 |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ecx</span> |
|||
pop ecx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>bx</span> |
|||
pop bx |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>ax</span> |
|||
pop ax |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>pop</span> <span style='color:#f00'>bp</span> |
|||
pop bp |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>ret</span> |
|||
ret |
|||
endp pisz |
<span style='color:#00f'>endp</span> pisz |
||
align 2048 |
<span style='color:#00f'>align</span> 2048 |
||
start: |
start: |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
call dodawaj |
call dodawaj |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>dl</span>, 1 |
|||
mov dl, 1 |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
call pisz |
call pisz |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
call pisz |
call pisz |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
<span style='color:#00f'>mov</span> <span style='color:#f00'>ax</span>,4c00h |
|||
mov ax,4c00h |
|||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
int 21h |
<span style='color:#00f'>int</span> 21h |
||
<span style='color:#00f'>nop</span> |
|||
nop |
|||
[[en:Assembly language]] |
[[en:Assembly language]] |
Wersja z 18:30, 25 sty 2014
Uwaga! Jest po północy! Programisto! Czy wiesz gdzie wskazuje teraz Twój wskaźnik? |
Ten artykuł jest częścią cyklu naukowego języki komputerowe. |
Języki programowania: |
Inne języki komputerowe: |
|
edytuj ten szablon |
Szablon:Twielgachna rodzina języków programowania wymyślonych w celu utrudniania życia ludzkości. Programy zapisane w asemblerach 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
ss stos align 1,1 int zero add tekst .code text tekst wyswietl: pop stos,viewer view tekst goto przypisz goto wyswietl .data kielich=kradnij(kielich) kieliszek=kielich(zdrobienie,for (wino or winko)) kufel=kubek(szklany,duży,for (piwo(jasne or ciemne) or piwko(jasne or ciemne))) beka=znaczenie(2(kradnij(beka,drewniana)),1(beknij(głośno))) beczka=beka(zdrobnienie,znaczenie(2)) szklanka=kradnij(szklanka)) szklaneczka=zdrobnienie(szklanka)) tekst=Hello World txt = tekst .code nop nop nop nop nop txt Hello nop push dx mov tekst,dx nop push open piwo wlej kufel,piwo pij kufel push ax add ax,bx int 21h pop dx int 10h newlist lista,dx open wódka wlej wódka,szklaneczka pij szklaneczka add szklaneczka,bx add bx,ax add dx,ax push dx pop bx push cx pop dx pop dx pop dx mov bx,ax add ax,cx add ax,dx int 21h open bimber wlej bimber,beczka pij beczka add ax,cx add cx,dx add dx,cx add ax,dx mov dx,cx push cx pop dx pop dx pop dx pop cs pop ds pop ds pop es pop ds pop es open wino wlej wino,kieliszek pij kieliszek nop push exec Hello nop push push push int linie push nop Lista: (1)=:=Hello (2)=:=World nop push nop nop push nop nop nop nop nop nop nop nop push create LIST,Lista2 aint i char znak Przypisz: i=znak(number) znak-i add Lista2(i),znak push znak goto przypisz end 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:
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