SHIFTOUT sends the content of the variable in "binary" format, not as ASCII text - which I believe is what the display is expecting. It's like sending a variable using HSEROUT where you use the DEC-modifer to send the content of a variable as text instead of as a "raw number".

Unfortunately SHIFTOUT does not (AFAIK) support any modifiers (DEC, HEX etc) so you need to do it manually. This compile but I can not test it.
Code:
temp = CNT_A / 1000
GOSUB SendIt

CNT_A = CNT_A - (temp * 1000)
temp = CNT_A / 100
GOSUB SendIt

CNT_A = CNT_A - (temp * 100)
temp = CNT_A / 10
GOSUB SendIt

temp = CNT_A - (temp * 10)
GOSUB SendIt

END

SendIt:
  SHIFTOUT SDO, SCK, MODE, [temp + 48]
RETURN
/Henrik.