🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2076

Re: random w makrach MASMa

#2076
From: Bogdan (bogdro)
Date: Wed, 20 Jan 2010 17:57
54 lines
2548 bytes
W dniu 20.01.2010 13:22, Bartosz Wójcik pisze:
> Witam,
> 
> Mam taki maly dylemat, chce w poziomu makra miec dostep do jakichs
> pseudolosowych wartosci:
> 
> test MACRO arg:req
> 
>  rand = ???   ; <-- jak tu wrzucic jakas losowa wartosc
> 
>  IF rand EQ 0
> 
>  ELSEIF rand EQ 1
> 
>  ENDIF
> 
> ENDM
> 
> Nie wiem czy to jest mozliwe w ogole pod MASMem, bo ta wartosc ma byc
> generowana statycznie (a nie przez wywolanie do funkcji losowej),
> probowalem bawic sie offsetami, ale MASM nie pozwala na manipulacje
> relokowalnych elementow w wartosciach lokalnych makra, wiec proby
> wykorzystania biezacego polozenia w kodzie $ legly w gruzach, ogladalem
> zestaw makr z pakietu MASM32, ale nic mi sie nie rzucilo w oczy, co mogloby
> byc wykorzystane jako zrodlo losowej liczby.
> 
> 1. Makro
> 2. ???
> 3. Profit
> 
> Jakies pomysly?

 Możesz wpisywać tam numer bieżącej linii, jeśli MASM takie coś
obsługuje (w NASMie jest bodajże makro __LINE__).
 Jeśli MASM obsługuje redefinicję symboli stałych, można zdefiniować
sobie jakąś stałą - "seed" dla generatora, po czym w każdym wywołaniu
makra ją zmieniać - coś w stylu takiego pseudokodu:

seed equ 0x12345678

test macro arg:req

	rand equ seed
	seed equ seed * 17 + 13131313
	...
endm

 Podobnie (ale oczywiście z lepszymi liczbami) robi to funkcja rand() z C.

-- 
Pozdrawiam/Regards - Bogdan                     (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.JabberPL.org www.torproject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID: <hj7g71$cfc$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <1nrbb6qlshmd8.40lfaf97n21k.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: random w makrach MASMa
Date: Wed, 20 Jan 2010 18:57:52 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 54
Message-ID: <hj7g71$cfc$1@inews.gazeta.pl>
References: <1nrbb6qlshmd8.40lfaf97n21k.dlg@40tude.net>
NNTP-Posting-Host: rudy.mif.pg.gda.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1264010274 12780 153.19.42.16 (20 Jan 2010 17:57:54 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Wed, 20 Jan 2010 17:57:54 +0000 (UTC)
X-User: bog.d
In-Reply-To: <1nrbb6qlshmd8.40lfaf97n21k.dlg@40tude.net>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit