Indice

ugBASIC Manuale Utente

EXEC ✓

SINTASSI

   EXEC address _
        [ WITH REG(r1)=v1[, REG(r2)=v2 [, ... ] ] ] _
        [ RETURN x1=REG(r1)[, x2=REG(r2)[, ... ] ] ] _
        [ ON target1[, target2[, ... ] ] ]

SCOPO

Questo comando permette di iniziare l'esecuzione di una subroutine, scritta direttamente in linguaggio macchina, a partire dall'indirizzo indicato. Bisogna fare attenzione che tale salto si intende con ritorno: una eventuale istruzione assembly che fa ritornare dall'esecuzione farà continuare l'esecuzione del programma dalla riga ugBASIC successiva.

Inoltre è possibile comunicare con il codice macchina. Ciò è reso possibile indicando, contestualmente alla chiamata, il popolamento di specifici registri di ingresso ed il recupero dei valori da specifici registri di uscita.

La sintassi estesa permette di specificare r1, r2, .. come i vari registri del processore, v1, v2, .. sono i valori passati nei vari registri e x1, x2, .. sono le variabili che riceveranno l'esito dell'esecuzione dai vari registri. Poiché i registri sono diversi da CPU a CPU, può essere utile aggiungere la specifica del target ON.

ESEMPIO

  EXEC #49142
  EXEC indirizzo
  EXEC indirizzo WITH REG(A)=42 RETURN y=REG(B) ON CPUZ80

Si vedano anche i seguenti file di esempio:

ABBREVIAZIONE

 E#

DISPONIBILE SU

VEDI ANCHE

SYS

PROBLEMI?

Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile aprire una segnalazione per questa parola chiave su GitHub. Grazie!

POWERED BY