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
Author: Bartosz =?iso-88
Date: Wed, 20 Jan 2010 13:22
Date: Wed, 20 Jan 2010 13:22
34 lines
773 bytes
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
Author: "Bogdan (bogdro)
Date: Wed, 20 Jan 2010 18:57
Date: Wed, 20 Jan 2010 18:57
55 lines
1631 bytes
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
Author: Bartosz =?iso-88
Date: Wed, 20 Jan 2010 20:37
Date: Wed, 20 Jan 2010 20:37
17 lines
637 bytes
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