Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Hell World Headachella

tesmu [02.12.2006 14:52:33]

#

Elikkäs hello world esimerkki tekemälläni headache kielellä...

Lähdekoodit ja binääri löytyy osoitteesta http://koodataan.aineissa.com/headache

EDIT: näköjään otsikko meni väärin voisiko joku korjata?

Eri merkkien Ascii desimaalikoodi sekä tapahtuma millä saadaan ne aikaseksi (last kuvaa edellisestä laskutoimituksesta tullutta arvoa)

Dec		Asc		Bf

10		<LF>		A
72		H		(10*7)+2
101		e		(10*10)+1
108		l		+7
108		l		output again
111		o		+3 push to stack
32		< >		(last / 3) - 2
87		W		(last * 2) + F + 8
111		o		return stack
114		r		last + 3
108		l		last - 6
100		d		last - 8
33		!		last / 3
10		<LF>		A

Here is code and some comments.


[			ohjelman alku
A:			muistin [0] arvo asetetaan A:ksi eli 10 desimaalina
@7v@A*2:		nollataan muisti [0] lisätään 7 ax rekisterin arvoksi muisti[0] nollataan taas muisti[0] arvoksi A eli 10 muisti[0] on muisti[0] * ax lisätään muisti [0] 2
@Av@A*+:		p0 = 0; p0 = A; ax = p0; p0 = 0; p0 = A; p0 * ax; p0 + 1; output; voidaan päätellä jo mitä tässä tehdään
7::			p0 + 7; output; output;
3:			p0 + 3; output;
p>3v</>2v<&:		push p0; p = 1; p1 = 3; ax = p1; p = 0; p0 / ax; p = 1; p1 + 2; ax = p1; p = 0; p0 - ax; output; ensimmäisenä työnnetään pinoon muisti [0] arvo
>@2v<*F8:		p = 1; p1 = 0; p1 = 2; ax = p1; p = 0; p0 * ax; p0 + F; p0 + 8; output;
@r:			p0 = 0; pop p0; output;										haetaan pinosta muisti [0]:n
3:			p0 - 3; output;
>4v<&:			p = 1; p1 + 4; ax = p1; p = 0; p0 - ax; output;							muut voidaan jo päätellä
>2v<&:			p = 1; p1 + 2; ax = p1; p = 0; p0 - ax; output;
>@3v</:			p = 1; p1 = 0; p1 = 3; ax = p1; p = 0; p0 / ax; output;
@A:			p0 = 0; p0 = A; output;
]			end;


valmis koodi

[A:@7v@A*2:@Av@A*+:7::3:p>3v</>2v<&:>@2v<*F8:@r:3:>4v<&:>2v<&:>@3v</:@A:] valmis koodi käytettäväksi (huom ainoastaan [koodi ] tiedostoon)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta