Hello, everybody!
Please, explain me, why FASMW just falls when compiling this code:
macro PowerOf2 value
{
power_of_2 = 0
range = 1
enable_getpower_of_2
getpower_of_2 value
purge getpower_of_2
display 'power of 2 = ',power_of_2+48,13,10
display 'range = ',range+48,13,10
}
macro enable_getpower_of_2
{
macro getpower_of_2 value
_open
if (range < value)
power_of_2 = power_of_2 + 1
range = range * 2
enable_getpower_of_2
getpower_of_2 value
purge getpower_of_2
end if
_close
}
_open fix {
_close fix }
PowerOf2 6
Is it because IF compiled after macro expansion -> unlimited recursion?
Thanks.
_________________ Flat Assembler is the best!
|