🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
3 messages
3 total messages Started by Bartosz =?iso-88 Wed, 20 Jan 2010 13:22
random w makrach MASMa
#2016
Author: Bartosz =?iso-88
Date: Wed, 20 Jan 2010 13:22
34 lines
773 bytes
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?

--
Bartosz W�jcik | www.pelock.com

Re: random w makrach MASMa
#2017
Author: "Bogdan (bogdro)
Date: Wed, 20 Jan 2010 18:57
55 lines
1631 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

Re: random w makrach MASMa
#2018
Author: Bartosz =?iso-88
Date: Wed, 20 Jan 2010 20:37
17 lines
637 bytes
On Wed, 20 Jan 2010 18:57:52 +0100, Bogdan (bogdro) wrote:

> W dniu 20.01.2010 13:22, Bartosz W�jcik pisze:

>  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:
>

dzieki, to z equ nie przeszlo, ale po sugestii o __LINE__ znalazlem w
binarce ml.exe odwolanie do @Line i to bylo to :)

--
Bartosz W�jcik | www.pelock.com

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