🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#200
Author: Bogdan (bogdro)
Date: Mon, 17 Apr 2006 16:53
67 lines
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
#201
Author: Bogdan (bogdro)
Date: Sat, 22 Apr 2006 16:46
16 lines
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
#202
Author: Daras
Date: Sun, 23 Apr 2006 21:28
22 lines
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
#203
Author: Remek
Date: Tue, 25 Apr 2006 20:34
9 lines
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
#204
Author: Remek
Date: Tue, 25 Apr 2006 20:34
9 lines
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