Strumenti Utente

Strumenti Sito


it:ugbasic:user:kw:exec
Traduzioni di questa pagina:


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

  • Atari (400/800)
  • Atari XL/XE
  • Commodore 128 (MOS 8502)
  • Commodore 128 (Zilog Z80)
  • Commodore 64
  • Commodore 64+REU
  • TRS-80 Color Computer
  • TRS-80 Color Computer 3
  • ColecoVision
  • Amstrad CPC 664
  • Dragon 32
  • Dragon 64
  • Thomson MO5
  • Thomson MO5
  • Olivetti Prodest PC128
  • Commodore PLUS/4
  • SEGA SC-3000
  • SEGA SG-1000
  • VG-5000
  • Commodore VIC-20
  • ZX Spectrum 48

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