stringtranslate.com

Salto del rodador

Wheeler Jump es un tipo de metodología de llamada de subrutina que se utilizó en algunas de las primeras computadoras que carecían de soporte de hardware para guardar la dirección del remitente. El concepto fue desarrollado por David Wheeler mientras trabajaba en la máquina pionera EDSAC en la década de 1950. [1] EDSAC no se había creado teniendo en cuenta las subrutinas y carecía de un registro de procesador adecuado o una pila de hardware que pudiera permitir almacenar fácilmente la dirección del remitente.

La solución de Wheeler fue una forma particular de escribir el código de la subrutina. Para implementarlo, la última línea de la subrutina era una instrucción de "saltar a esta dirección", que normalmente iría seguida de una ubicación de memoria. En una subrutina Wheeler, esta dirección normalmente se configuraba como un número ficticio, digamos 0.

Para llamar a la rutina, la dirección de la persona que llama se colocaría en el acumulador y luego el código saltaría al punto de inicio de la rutina. Las primeras instrucciones de la rutina calcularían la dirección de retorno en función del valor en el acumulador, normalmente la siguiente ubicación de memoria, por lo que un incremento será suficiente, y luego escribirían el resultado en la dirección ficticia previamente reservada. Cuando la rutina sigue su curso, naturalmente llega al final de la rutina que ahora dice "saltar a la dirección del remitente".

Como escribir en la memoria es un proceso lento en comparación con el acceso a registros, esta metodología no es particularmente rápida. Tampoco es capaz de expresar recursividad . [2] La adición de nuevos registros para este tipo de tareas fue un objetivo clave del diseño de EDSAC 2 .

Ejemplo

Este ejemplo demuestra la técnica que utiliza un lenguaje pseudoensamblador para una máquina simple basada en un acumulador orientado a bytes con un solo registro, A:

'prepárate para llamar a la subrutina10 COPY PC TO A ' copia el contador de programa (10) al acumulador11 SALTAR ' saltar a...12 70'...ubicación 70...muchas líneas más...70 ADD CONST ' agrega el siguiente valor al acumulador...71 3 '... tres ubicaciones más allá del valor de PC original72 STORE ' almacena el valor en el acumulador para...73 91 ' ... el lugar de memoria reservado... líneas que realizan la subrutina real...90 SALTO' volver a...91 0'...que será sustituido por 13

Cuando se complete este código, la instrucción JUMP en la dirección 90 regresará naturalmente a la ubicación 13, la siguiente instrucción después de la subrutina.

Referencias

  1. ^ Colina, Mark (2000). Lecturas en Arquitectura de Computadores. Publicaciones profesionales del Golfo. pag. 3.ISBN​ 9781558605398.
  2. ^ Prof. David Brailsford, Sean Riley (6 de febrero de 2018). El salto del rodador. Informática; Facultad de Ciencias de la Computación, Universidad de Nottingham, Reino Unido . Consultado el 30 de marzo de 2023 .