Char1       db "k"                                 ; Carattere
  Num         dd 45                                  ; Numero di ripetizioni
  ..........  
  Buf1        resb 256                               ; Buffer di lavoro
  Char2       dw "ab"                                ; Coppia di caratteri
  Num         dd 45                                  ; Numero di ripetizioni
  ..........  
  Buf1        resb 256                               ; Buffer di lavoro
  Char4       dd "xyzh"                              ; Blocco di 4 caratteri
  Num         dd 45                                  ; Numero di ripetizioni
  ..........  
  Buf1        resb 256                               ; Buffer di lavoro
  Msg1        db "Prova di copiatura"                ; Messaggio Sorgente
  ..........  
  Buf1        resb 256                               ; Buffer Destinazione
  Msg1        db "Copia speculare"                   ; Messaggio Sorgente
  ..........  
  Buf1        resb 256                               ; Buffer Destinazione
  Msg1        db "Il mare di Catania "               ; Primo Messaggio
  Msg2        db "ha un bel colore azzurro."         ; Secondo Messaggio
  ..........  
  Buf1        resb 256                               ; Buffer Destinazione
  Msg1        db "Copia solo i dispari"              ; Messaggio Sorgente
  ..........  
  Buf1        resb 256                               ; Buffer Destinazione
  Msg1        db "Copia i dispari e zappa i pari"    ; Messaggio Sorgente
  Char1       db "z"                                 ; Carattere di Zapping
  ..........  
  Buf1        resb 256                               ; Buffer Destinazione
  Buf1        db "ciao??....."          ; messaggio di n caratteri/byte (1 carattere = 1 byte)

  _start:     MOV   AL,'z'              ; Dato di 1 byte caricato in AL
              MOV   [Buf1],AL            ; Scrittura in memoria del byte contenuto in AL
              MOV   [Buf1+1],AL          ; Scrittura in memoria del byte contenuto in AL
  Buf1        db "ciao??....."          ; messaggio di n caratteri/byte (1 carattere = 1 byte)

  _start:     MOV   AL,'z'              ; Dato di 1 byte caricato in AL
              MOV   EDI,Buf1            ; L'indirizzo Buf1 viene duplicato (copiato) nel registro EDI
              MOV   [EDI],AL            ; Scrittura in memoria del byte contenuto in AL
              INC   EDI                 ; Variazione dell'indirizzo, EDI punta alla locazione successiva
              MOV   ECX,5               ; Impostazione contatore per scrivere su 5 caselle
ancora:       MOV   [EDI],AL            ; Scrittura in memoria del byte contenuto in AL
              INC   EDI                 ; Variazione dell'indirizzo, EDI punta alla locazione successiva
              LOOP  ancora              ; Ricicla ECX volte
              MOV   ECX,5               ; Impostazione contatore per scrivere su 5 caselle
ancora:       STOSB                     ; Scrittura in memoria di AL e Variazione dell'indirizzo EDI
              LOOP  ancora              ; Ricicla ECX volte
              MOV   ECX,5               ; Impostazione contatore per scrivere su 5 caselle
              REP   STOSB               ; Ricicla ECX volte: Scrittura in memoria di AL e Variazione dell'indirizzo EDI
              MOV   AL,'z'              ; Dato di 1 byte caricato in AL
              MOV   EDI,Buf1            ; Indirizzo iniziale del buffer di memoria nel registro EDI
              MOV   ECX,5               ; Impostazione contatore nel registro ECX
              REP   STOSB               ; Ricicla ECX volte: Scrittura in memoria di AL e Variazione dell'indirizzo EDI
              MOV   AX,'zk'             ; Dato di 2 byte caricato in AX
              MOV   EDI,Buf1            ; Indirizzo iniziale del buffer di memoria nel registro EDI
              MOV   ECX,5               ; Impostazione contatore nel registro ECX
              REP   STOSW               ; Ricicla ECX volte: Scrittura in memoria di AX e Variazione dell'indirizzo EDI
                                        ; Ogni volta EDI viene incrementato automaticamente di 2
                                        ; Alla fine saranno scritti:  5x2=10 byte
              MOV   EAX,'zkst'          ; Dato di 4 byte caricato in EAX
              MOV   EDI,Buf1            ; Indirizzo iniziale del buffer di memoria nel registro EDI
              MOV   ECX,5               ; Impostazione contatore nel registro ECX
              REP   STOSW               ; Ricicla ECX volte: Scrittura in memoria di EAX e Variazione dell'indirizzo EDI
                                        ; Ogni volta EDI viene incrementato automaticamente di 4
                                        ; Alla fine saranno scritti:  5x4=20 byte
  myspace     resb 4                    ; blocco di 4 byte in RAM   

  _start:     MOV   AX,4F75h            ; Informazione di 2 byte caricata in AX
              MOV   [myspace],AX        ; Scrittura di 2 byte in RAM
   msg        db "Ciao a tutti."        ; stringa di 13 caratteri in RAM

  _start:     MOV   AL,"M"              ; Carica il Registro AL con il codice ASCII della lettera "M"
              MOV   [msg],AL            ; Scrive in memoria RAM, all'indirizzo msg
  _start:     MOV   AL,"b"              ; Carica il Registro AL con il codice ASCII della lettera "b"
              MOV   [msg+2],AL          ; Scrive in memoria RAM, all'indirizzo msg+2
  _start:     MOV   AX,[msg+1]          ; Legge in AX 2 byte dalla memoria RAM
              XCHG  AH,AL               ; Scambia il contenuto dei Registri AH ed AL
              MOV   [msg+1],AX          ; Scrive 2 byte in memoria RAM, all'indirizzo msg+1
              MOV   AL,"e"              ; Carica il Registro AL con il codice ASCII della lettera "e"
              MOV   [msg+5],AL          ; Scrive in memoria RAM, all'indirizzo msg+5
              MOV   AX,"To"             ; Carica il Registro AX con i codici ASCII delle lettere "To"
              MOV   [msg+7],AX          ; Scrive 2 byte in memoria RAM, all'indirizzo msg+7
 %define STDIN  0
 %define STDOUT  1
 %define STDERR  2
 mov   eax, codice-Servizio     ; da comunicare esclusivamente nel registro eax
 int   80h                      ; chiamata del Servizio
 ......
 msg1  db "Ciao a tutti."
 ......
 mov   eax, 4         ; Codice del servizio richiesto (visualizza messaggio)
 mov   ebx, 1         ; Codice del terminale (STDOUT) su cui mandare il messaggio
 mov   ecx, msg1      ; Indirizzo del primo carattere del messaggio
 mov   edx, 13        ; Lunghezza del messaggio (spazi inclusi)
 int   80h            ; Chiamata Linux
 ......
 ......
 buf1  resb 256       ; Spazio riservato in memoria (256 byte)
 ......
 mov   eax, 3         ; Codice del servizio richiesto (ricevi messaggio)
 mov   ebx, 0         ; Codice del terminale (STDIN) da cui ricevere il messaggio
 mov   ecx, buf1      ; Indirizzo del primo byte della memoria riservata al messaggio
 mov   edx, 256       ; Quantità di spazio dedicata al messaggio
 int   80h            ; Chiamata Linux
 ......
 mov   eax, 1         ; Codice del servizio "Chiusura Programma"
 int   80h            ; Chiamata Linux
 msg1    db "Ciao a tutti."          ; stringa messaggio
 Lmsg1   $-msg1                      ; calcolo Lunghezza stringa messaggio
 buf1    resb 256                    ; spazio/blocco di 256 byte di memoria RAM

  Siano dati: il messaggio,       Msg1   db  'Prova SMS !'
  ed il buffer                    Buf1   resb  50

  1) Visualizzare Msg1 sul terminale, utilizzando la chiamata a sys_write.
  2) Riempire i primi 30 byte di Buf1 con il carattere 'x'. 
  3) Copiare Msg1 in Buf1.
  4) Visualizzare su terminale una stringa contenente solo i caratteri di posto dispari di Msg1.


  NOTE: Per costruire le soluzioni è possibile aggiungere dei caratteri sia a Msg1 sia a Buf1.
        In Msg1, considerare la 'P' di posto 1 e gli spazi come caratteri.

Esc[Line;ColumnH
Esc[Line;Columnf
Cursor Position:
Moves the cursor to the specified position (coordinates).
If you do not specify a position, the cursor moves to the home position at the upper-left corner of the screen (line 0, column 0). This escape sequence works the same way as the following Cursor Position escape sequence.
Esc[ValueA Cursor Up:
Moves the cursor up by the specified number of lines without changing columns. If the cursor is already on the top line, ANSI.SYS ignores this sequence.
Esc[ValueB Cursor Down:
Moves the cursor down by the specified number of lines without changing columns. If the cursor is already on the bottom line, ANSI.SYS ignores this sequence.
Esc[ValueC Cursor Forward:
Moves the cursor forward by the specified number of columns without changing lines. If the cursor is already in the rightmost column, ANSI.SYS ignores this sequence.
Esc[ValueD Cursor Backward:
Moves the cursor back by the specified number of columns without changing lines. If the cursor is already in the leftmost column, ANSI.SYS ignores this sequence.
Esc[s Save Cursor Position:
Saves the current cursor position. You can move the cursor to the saved cursor position by using the Restore Cursor Position sequence.
Esc[u Restore Cursor Position:
Returns the cursor to the position stored by the Save Cursor Position sequence.
Esc[2J Erase Display:
Clears the screen and moves the cursor to the home position (line 0, column 0).
Esc[K Erase Line:
Clears all characters from the cursor position to the end of the line (including the character at the cursor position).
                             q: esce dall'ambiente gdb;
                             h: aiuto sui comandi gdb;
                             l: lista alcune righe del sorgente;
                    l num_riga: lista le righe del sorgente subito prima e subito dopo quella indicata;
              info address var: restituisce l'indirizzo di var;
                info variables: restituisce nome e indirizzo di tutte le variabili;
                info registers: visualizza lo stato dei registri;
           breakpoint num_riga: inserisce un blocco subito dopo la riga indicata;
                             r: esegue il programma fino al primo blocco;
                             c: riprende l'esecuzione;
                             s: esegue solo l'istruzione successiva.
ls  -llista il contenuto della directory corrente
ls  -l  /mntlista il contenuto della directory  /mnt
cd  /home/live/DesktopCambia cartella di lavoro, posizionandosi in /home/live/Desktop
cd  ..Cambia cartella di lavoro, posizionandosi in quella di livello superiore
man  mkdirvisualizza la pagina di manuale relativa al comando  mkdir
cp  file1  file2copia  file1  in  file2
cp  -r  dir1  dir2copia  dir1  in  dir2  (da notare l'opzione -r che attiva la ricorsione)
geany  &avvia  geany  (da notare il parametro & che disimpegna la console per altri comandi)
surichiesta passaggio modalita' amministratore
mkdir  /mnt/sda7creazione della directory  /mnt/sda7
mount  /dev/sda7  /mnt/sda7 montaggio della partizione  /dev/sda7  nel punto  /mnt/sda7  dell'albero delle directory