Instruccion BALR

Todo lo relacionado con assembler, macros, etc.
Responder
Bagual

Instruccion BALR

Mensaje por Bagual » 26 Feb 2004, 17:45

La consulta es si alguien podria explicarme el concepto de esta instruccion, y en el caso de encontrarla en programas on-line, si este mecanismo es mejor/peor frente al uso de EXEC CICS LINK PROGRAM.

NJB
Su anfitrion
Su anfitrion
Mensajes: 1112
Registrado: 12 Oct 2003, 16:27
País: Argentina
Ciudad: Capilla del Señor
Ocupación: System Programmer
Contactar:

Mensaje por NJB » 06 Mar 2004, 18:49

Hola

La intrucciòn BALR es una instruciòn de màquina "pura", es decir es una sola instrucciòn para el procesador.
Ademas se la mantiene por razones de compatibilidad ya que ahora debe usarse BASR (branch and save) en su lugar ya que es mas performante.
Basicamente lo que hace cualquier instrucciòn de branch es alterar la secuencia de un programa "saltando" a otra direcciòn de memoria y ejecutando el còdigo almacenado en la misma, salvando la PSW y la direcciòn de retorno en un registro.

En el caso de cualquier instrucciòn de mayor nivel (ya sea macro de assembler, un lenguaje de alto nivel, o la exec cics) se ejecutan una gran cantidad de intrucciones "puras" de maquina, pero proveen un entorno completo para la llamada de otros programas, en su lugar si se usa BALR deberà ser escrito por el programador todo ese entorno, salvando registros, y todo otro dato que se pueda destruir en el segundo programa, y que el primero necesite. Ademas al volver el programador deberà restaurar el entorno, lo que hace el uso de estas intrucciones "puras" sumamente dificultoso, salvo para gente muy experta en el assembler, que ademas tiene bibliotecas con macros para minimizar el esfuerzo de escritura.

No estoy en condiciones de evaluar si es mejor o peor, lo que si se es que es mucho mas dificultoso el uso de instrucciones de maquina.

Espero haberte aclarado un poco el tema.
Norberto Bocalandro

Responder