Thread View: pl.comp.lang.asm
3 messages
3 total messages
Started by Bartosz Wójcik
Wed, 20 Jan 2010 12:22
random w makrach MASMa
Author: Bartosz Wójcik
Date: Wed, 20 Jan 2010 12:22
Date: Wed, 20 Jan 2010 12:22
33 lines
1856 bytes
1856 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 17:57
Date: Wed, 20 Jan 2010 17:57
54 lines
2548 bytes
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
Re: random w makrach MASMa
Author: Bartosz Wójcik
Date: Wed, 20 Jan 2010 19:37
Date: Wed, 20 Jan 2010 19:37
16 lines
1688 bytes
1688 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