I have two positive counter with bipolar incrementation. The first one "A" works as intended while the other one "B" is stuck at 0Hz (no incrementation). The only difference in the codes is the value stored in 'base'. 1024 works fine while 256 does not. This seems to indicate that MULX doesn't register the 8 (or 9?) LSBs of the multiplication register. Or is there something else going on? My interpretation from the documentation is that MULX does multiplication of all 24bits.
The coefficient is 16-bits so 256 would be 0b0000 0000 0000 0001 which is a really small number so when you multiply it the result will also be really small and when we truncate the LSBs of the result you could end up at 0x0 depending on the other value. We do a 24-bit by 16-bit multiply which give a 40-bit result but we drop the lower 13-bits after the multiplier then after the second adder and saturation limiters we are back to 24-bits.
You may want to simply force the LSB to 1 after the multiply to make sure there is a minimum value in it to cause the counter to change.
Sorry, by coefficient I meant the multiplier (register in the case of mulx,, 'base' in your code) is 16-bit while the multiplicand (acc in mulx) is 24-bit. If you look at page 23 of the SpinAsm pdf under the drawing of the ALU we touch on multiplier resolution.