Thread View: pl.comp.lang.asm
5 messages
5 total messages
Started by Bogdan (bogdro)
Mon, 17 Apr 2006 16:53
Ciąg Fibonacciego w czasie kompilacji
Author: Bogdan (bogdro)
Date: Mon, 17 Apr 2006 16:53
Date: Mon, 17 Apr 2006 16:53
67 lines
2499 bytes
2499 bytes
Tak się tym kiedyś chwalili programiści C++, że im kompilator
generuje potrzebne liczby ciągu Fibonacciego w czasie kompilacji. Ale
my nie jesteśmy gorsi :) Odkrywając ostatnio możliwości FASMa,
napisałem makro właśnie generujące liczby Fibonacciego w czasie
kompilacji. Oto ono z przykładami użycia (deklaracje oraz w instrukcjach):
macro fibon oper, dst1, dst2, n
{
if n = 1 | n = 2
H = 1
else if n > 0
F = 1
G = 1
H = F + G
if n > 3
repeat n-3
F = G
G = H
H = F + G
end repeat
end if
else
H = 0
end if
if `oper in <"db","dw","dd","dp","dq","dt","rb","rw","rd","rp","rq","rt">
oper H
else
if dst2 eq
oper dst1, H
else
oper dst1, dst2, H
end if
end if
}
fibon db,,, -1
fibon db,,, 1
fibon db,,, 2
fibon db,,, 3
fibon db,,, 4
fibon db,,, 5
fibon db,,, 6
fibon db,,, 7
fibon mov, ax,, 5
fibon shld, edx, eax, 6
(nawiasy ostre miały być w jednej linijce z if). Sprawdzone disasmem:
$ ndisasm ~/Asm/fasm/mac_fibon.bin
00000000 0001 add [bx+di],al
00000002 0102 add [bp+si],ax
00000004 0305 add ax,[di]
00000006 080D or [di],cl
00000008 B80500 mov ax,0x5
0000000B 660FA4C208 shld edx,eax,0x8
To i inne ciekawe makra wrzuciłem tutaj:
http://flatassembler.decard.net/viewtopic.php?t=20
--
Pozdrawiam, Bogdan (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: Ciąg Fibonacciego w czasie kompilacji
Author: Bogdan (bogdro)
Date: Sat, 22 Apr 2006 16:46
Date: Sat, 22 Apr 2006 16:46
16 lines
1618 bytes
1618 bytes
Zrobiłem też plik z tymi makrami (makro 'fibon' jest teraz lepiej napisane) na swojej stronie, jeśli kogoś to interesuje: http://rudy.mif.pg.gda.pl/~bogdro/inne/makra-fasm.txt Jeśli ktoś używa KWrite/Kate, to zrobiłem właśnie nowe pliki z kolorowaniem składni: http://rudy.mif.pg.gda.pl/~bogdro/inne/nasm.xml (ulepszony oryginał) http://rudy.mif.pg.gda.pl/~bogdro/inne/fasm.xml (na podstawie NASMa) -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: Ciąg Fibonacciego w czasie kompilacji
Author: Daras
Date: Sun, 23 Apr 2006 21:28
Date: Sun, 23 Apr 2006 21:28
22 lines
2021 bytes
2021 bytes
Oczywiście ze interesuje :) Pozdrawiam Użytkownik "Bogdan (bogdro)" <bogdan@bogdan.pl> napisał w wiadomości news:e2dmmk$r4o$1@atlantis.news.tpi.pl... > Zrobiłem też plik z tymi makrami (makro 'fibon' jest teraz lepiej > napisane) na swojej stronie, jeśli kogoś to interesuje: > > http://rudy.mif.pg.gda.pl/~bogdro/inne/makra-fasm.txt > > Jeśli ktoś używa KWrite/Kate, to zrobiłem właśnie nowe pliki z > kolorowaniem składni: > > http://rudy.mif.pg.gda.pl/~bogdro/inne/nasm.xml (ulepszony oryginał) > http://rudy.mif.pg.gda.pl/~bogdro/inne/fasm.xml (na podstawie NASMa) > > -- > Pozdrawiam, Bogdan (Linux i FreeDOS) > Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro > Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 > Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: Ciąg Fibonacciego w czasie kompilacji
Author: Remek
Date: Tue, 25 Apr 2006 20:34
Date: Tue, 25 Apr 2006 20:34
9 lines
1097 bytes
1097 bytes
Witam! > Oczywiście ze interesuje :) Przepraszam, że nieśmiało zapytam. Po co tyle cytowania i powiększania objętości dbx'a -- Remek
Re: Ciąg Fibonacciego w czasie kompilacji
Author: Remek
Date: Tue, 25 Apr 2006 20:34
Date: Tue, 25 Apr 2006 20:34
9 lines
1097 bytes
1097 bytes
Witam! > Oczywiście ze interesuje :) Przepraszam, że nieśmiało zapytam. Po co tyle cytowania i powiększania objętości dbx'a -- Remek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads