{{htmlmetatags>metatag-robots=()
metatag-title=(ASM | ugBASIC User Manual)
metatag-keywords=(ugBASIC,Commodore 64,Commodore PLUS/4,ZX Spectrum)
metatag-description=(Pagina del manuale per ASM)
metatag-media-og:image=(:ugbasic:logo-ugbasic-fb.png)
metatag-og:title=(ASM | ugBASIC User Manual)
metatag-og:description=(Pagina del manuale per ASM)
}}
====== ugBASIC Manuale Utente ======
===== ASM =====
===== SINTASSI =====
ASM line
BEGIN ASM
...
END ASM
==== SCOPO ====
Il comando ''ASM'' è un ponte tra ugBASIC e il linguaggio assembly.
Consente di inserire direttamente istruzioni in linguaggio macchina
o assembly nel codice sorgente.
In alcune sezioni del codice, in particolare quelle che richiedono
le massime prestazioni o un controllo molto preciso sull'hardware,
scrivere direttamente in assembly può apportare notevoli miglioramenti
di velocità. L'assembly consente di interagire direttamente con i
registri e le istruzioni della CPU, offrendo un controllo
granulare sull'hardware.
Quando si ha a che fare con codice che deve essere eseguito su
architetture diverse, l'assembly può essere utilizzato per scrivere
porzioni di codice altamente ottimizzate per una piattaforma specifica.
In alcuni casi, potrebbe essere necessario interfacciarsi con codice
scritto in assembly o con librerie preesistenti.
La prima sintassi consente di introdurre un singolo codice macchina
per ogni riga, mentre la seconda consente di introdurre più righe
contemporaneamente.
Nota che il codice assembly è strettamente accoppiato all'architettura
del processore. Un blocco di codice assembly scritto per uno Zilog Z80
non funzionerà su un MOS 6502. Inoltre, è meno leggibile del linguaggio
ugBASIC, il che lo rende più difficile da gestire. Infine, un singolo
errore in assembly può causare l'arresto anomalo del programma e l'uso
indiscriminato dell'assembly può interagire con le ottimizzazioni
del compilatore.
L'assembly inline dovrebbe essere utilizzato con parsimonia e solo
quando assolutamente necessario. È meglio utilizzarlo per piccole
sezioni di codice critiche per le prestazioni, per l'accesso diretto
a registri o istruzioni specifici del processore e per interfacciarsi
con codice legacy o specifico per un hardware.
==== ESEMPIO ====
BEGIN ASM
LDA #02
STA $D020
END ASM ON CPU6502
==== ABBREVIAZIONE ====
Asm
==== DISPONIBILE SU ====
==== 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 [[https://github.com/spotlessmind1975/ugbasic/issues/new?title=SEGNALAZIONE SU ASM|aprire una segnalazione]] per questa parola chiave su GitHub. Grazie!===== POWERED BY =====
[[:it:ugbasic:user:index|{{ :ugbasic:user:logo-ugbasic.png?nolink&600 |}}]]