CALL
– Referencia del Lenguaje Ensamblador
CALL
instrucción: Salta a una dirección con la intención de regresar a la siguiente instrucción.
CALL
#Symbol
Resultado: PC + 1 se escribe en el campo-s del registro indicado por el campo-d.
Symbol (campo-s) es una literal de 9-bit cuyo valor es la dirección a saltar. Este
campo debe contener un símbolo
correspondiente código deberá eventualmente ejecutar una instrucción
con el mismo símbolo mas un sufijo de "_ret" (Symbol_ret
Tabla Opcode:
–INSTR– ZCRI –CON–
–DEST–
010111 0011 1111 ????????? sssssssss
Tabla de verdad:
Destino
$----_----; -
El campo-s del registro destino (9 bits mas bajos) se sobrescriben con la dirección de regreso (PC+1) en la ejecución.
1
La bandera C se activa (1) a menos que PC+1 sea igual a 0; muy improbable ya que requiere que CALL se ejecute desde el inicio de
2
la RAM del cog RAM ($1FF; registro de propósito especial VSCL).
Explicación
CALL
graba la dirección de la siguiente instrucción (PC + 1) y salta a Symbol. La rutina en
Symbol deberá eventualmente ejecutar una instrucción
grabada (PC+1; la instrucción que sigue de
RET
la rutina de Symbol
La razón para esto se explica a continuación.
El hardware propeller no usa llamada a pila, así que la dirección de regreso debe almacenarse
de forma diferente. En tiempo de compilación el ensamblador localiza la rutina destino así
RET
como la instrucción
direcciones en el campo-s y campo-d de la instrucción
conocimiento a la instrucción
exactamente.
Pagina 274 · Manual Propeller v1.1
DAT
–SRC–
Resultado Z
Entrada
Fuente
$----_----; -
CALL
debe estar etiquetada en la forma de Symbol con el "_ret" integrado.
(etiquetadas Symbol y Symbol_ret, respectivamente) y codifica esas
CALL
de ambos datos, a donde ir y a donde regresara
especificado como literal (#symbol) y el
RET
Resultado C
Result = 0
---
Z C Efectos
wz wc
- -
31:9 unchanged, 8:0 = PC+1 0
RET
para regresar a la dirección
). Para compilar y correr efectivamente
CALL
. Esto proporciona al
RET
etiquetada
).
Resultado
Ciclos
Written
4
Salida
Destino
Z C
1
2
1
CALL
,