Un altro esercizio in SASM riepilogativo con diversi elementi visti. Questa volta usiamo un ciclo per leggere in input cinque valori che poi sommiamo e stampiamo. Vediamo come.
emu8086
Somma di due numeri inseriti da tastiera
Un esercizio semplice per affrontare l’inserimento da tastiera, questa volta sfruttando delle funzioni macro comprese nell’EMU8086
Esempio 15: Il ciclo while con assembly
Abbiamo visto come il costrutto if/else si traduca in assembly con una serie di salti al punto corretto di codice da eseguire in base alla condizione valutata. Il ciclo in realtà è molto simile come approccio, tanto che non esiste una parola while vera e propria ma un if else che risalta su se stesso! Vediamo un esempio.
Esempio 14: if else in assembly
Vediamo più nel dettaglio il costrutto if/else in assembly e approfondiamo il concetto di “salto”
Esempio 12: somma di due numeri letti in input
Vista la stampa, vediamo come si fa la fase di input da tastiera. Anche qui, c’è una combinazione fissa di valore/registro da impostare per “richiedere” alla CPU di procedere ad una operazione specifica di lettura.
Esempio 11: esercizio stampa Hello World a singoli caratteri
Visto come stampare un carattere o numero, passiamo ad una versione più complessa di stampa, con una intera parola. In questo caso stampiamo il più classico degli esempi “Hello World”
Esempio 10: stampa un numero o carattere
Vediamo come stampare un numero o un carattere a video. Certamente non è così semplice e banale come i ben noti cin>> e cout<<, ma utilizza delle istruzioni precise forzando una combinazione valore/registro specifico per “chiedere” alla cpu di procedere all’operazione di stampa.
Esempio 08: esercizio complemento a 2 con NOT e INC
Un esempio di utilizzo di complemento a due per effettuare la sottrazione da due parole, in questo caso proposto di 8 bit. Sfruttiamo le funzioni NOT ed INC.
Esempio 07: scambiare variabili con XCHG
L’istruzione XCHG è molto utili per scambiare dati tra variabili. L’unica accortezza è che deve sempre passare da registri per effettuare l’operazione. Abbiamo visto il modo più semplice per farlo con tre registri in questo articolo.
Scrivere il primo programma assembly
Scrivere un programmino assembly è molto semplice, come detto basterebbe un semplice editor di testo con cui salvare i file.