looks good to me, but:
"--For every pulse, dec. counter
-Counter > 0?
-No? GO back to *Wait (jnz command)
-Yes? Go to alarm loop & activate relay"
shouldnt that be a "Counter = 0?"
or switch your yes & no functions around
unless the counter hits zero, it will always be yes, so you will activate the relay on every pulse EXCEPT the "123rd" or Xth
adjust your jump commands if necessary. (disclaimer, i may have read the code wrong, but this should be a pretty easy thing to notice if it goes wrong
)
other than that, yeah assembly's basically the same for everything, different units might use slightly different names for commands and registers and such, so if your porting your code to pic just look in the manual and make sure everything is doing what you want.
as far as polling goes, interrupts tend to be more powerful and useful, polling is just a basic way of doing simple things i learned before learning more-complicated interrupts. I suppose if you were taking data, it would be useful if you wanted a fixed time interval between data points, because you could put a time delay between every "poll" of the inputs (use a decrement to zero command)
happy hunting