aqui te dejo un ejemplo, fijate en el "+" que he agregado eso hace que la variable no se "reinicie" con los nuevos valores.
Código:
<html>
<head>
<script>
function remplaza (texto){
var salida;
var r ={'H':'A','O':'E','L':'R','A':'B'};
for(i=0;i <= texto.length-1;i++) {
document.getElementById('texta').value += r[texto[i]];
}
}
</script>
</head>
<body>
<textarea name="texta" id="texta"></textarea><br />
<a href="javascript:remplaza('HOLA');">click</a>
</body>
</html>