#UGL, 80 bytes
cuu$u$$$$$$*$d*O$*u$*u$O$@++u$O$O^^+$O@@$$uu**dO%$$*$**$O@$*$u*dddO%$OuuuO%OdOuO
With comments:
#H e l l o , W o r l d !
#72 101 108 108 111 44 32 87 111 114 108 100 33
cuu$u$$$$$$*$d*O #print H 72 (stack:2 3 3 3 3 3 3)
$*u$*u$O$@ #print e 101 (stack:101 2 3 3 3 3 101)
++u$O$O #print ll 108 108 (stack:101 2 3 3 108)
^^+$O@@ #print o 111 (stack:108 111 101 2 3 3)
$$uu**dO #print , 44 (stack:108 111 101 2 3)
%$$*$**$O@ #print 32 (stack:32 108 111 101 3)
$*$u*dddO #print W 87 (stack:32 108 111 101)
%$O #print o 111 (stack:32 108 101 111)
uuuO #print r 114 (stack:32 108 101)
%O #print l 108 (stack:32 101)
dO #print d 100 (stack:32)
uO #print ! 33 (stack:)
Online interpreter here.