Tutti gli articoli di Alessandro Giannuzzi

TASM e TD: come utilizzarli

Sei in difficoltà con la compilazione dell’assembly? Non sai come si apre il TASM (Turbo ASseMbler)? Vai nel panico quando ti dicono di usare il Turbo Debug (TD)? Per tua fortuna, sei nel posto giusto, mettiti comodo e segui questo nuovo articolo di programmazionepertutti.code.blog.

Il TASM

Innanzitutto, iniziamo dicendo che il TASM è il nostro compilatore. Come potrebbe essere Code::Blocks per C++. Il TASM differisce rispetto a Code::Blocks in due punti:

1) Linguaggio: infatti il TASM parla l’assembly. Un linguaggio che veniva utilizzato prima dell’avvento dei linguaggi ad alto livello, ciò permetteva ai programmatori di programmare molto più velocemente ed esso era più comprensibile rispetto ormai agli obsoleti 0 e 1.

2) L’interfaccia grafica: paragonando Code::Blocks al TASM ci rendiamo conto che esso gira sul vecchio MS-DOS (che ha preceduto Windows). Infatti, il suo aspetto è simile ai programmi degli anni 80-90.

Il Turbo Debugger

Il TD serve, per prima cosa, a eseguire passo dopo passo il programma che abbiamo scritto ( la cosiddetta operazione di Debug) ma serve anche per vedere i flag dell’8086 rapidamente dopo aver eseguito il programma.

Come usare TASM e TD

Facciamo finta di aver appena finito una maratona di programmazione e ci accingiamo a compilare il nostro programma, come facilmente ho intuito… hai problemi nel compilare un programma in assembly. Tranquillo, ora ti aiuto io.

Iniziamo dicendo che per compilare il nostro programma ci serve un ambiente di sviluppo MS-DOS e per questo ci viene in aiuto DosBox che è un emulatore del vecchio DOS. Lo potete trovare in Mint/Giochi/DosBox. Ora dobbiamo scrivere dei comandi così come li leggerete di seguito

KEYB IT
Mount x: /home/lambert/LinWin
x:
a
d:
dir/w

ora siamo pronti per aprire il nostro file .ams con TASM per compilarlo

tasm nome_dell’esercizio

ora, se non ci sono errori, siamo pronti ad aprire il nostro TD

TD nome_dell’esercizio

Adesso vi si apparirà una finestra blu con delle linee di codice in assembly, siamo subito pronti ad eseguirlo passo dopo passo per le nostre operazioni di Debug. Quindi, per eseguire un’istruzione, bisognerà premere il tasto F8 che ci permetterà di far, appunto, eseguire il codice. Facciamo finta che vogliamo vedere i nostri flag di sistema, quindi, premiamo F10 e ci spostiamo nella barra multifunzione del programma. Ci spostiamo con le freccette e selezioniamo view e CPU. Ora dopo aver fatto finito siamo pronti ad uscire dal TD, quindi ripremiamo F10 e a questo punto andiamo su file e exit. Ora, come ultimo comando, per chiudere il DosBox, dovremo scrivere:

Exit

Spero che ora ti sia tutto chiaro, e che questo tipo di cose non ti facciano più paura. Per qualsiasi domanda scrivi un commento o contattaci a: programmazionepertutti@gmail.com @redazioneprogrammazionepertutti

Macchine virtuali ed Emulatori

Cosa é una macchina virtuale

Iniziamo col dire che una macchina virtuale in informatica rappresenta un sistema operativo (SO) differente oppure lo stesso (per capirci un altro computer) ospitato nel nostro computer sia Mac che Windows.

Vantaggi e svantaggi del SO in una macchina virtuale

I Vantaggi

  • É più sicuro in caso di malware
  • É l’ideale a chi serve velocità nel passare da un SO ad un altro
  • Meno costoso rispetto ad un nuovo computer

Gli svantaggi

  • É molto dispendioso in termini di risorse
  • Molte volte la macchina virtuale sarà scattosa e lenta per la memoria in costante utilizzo
  • L’impossibilità di emulare software scritti per processori di una differente architettura

Spero che questo breve articolo sulle macchine virtuali (virtual-machine VM) vi sia piaciuto. Io vi do appuntamento al prossimo articolo sempre qui su programmazionepertutti!.

Lato, nodo, maglie elettriche e la differenza tra serie e parallelo

Sei in difficoltà con le basi dell’elettronica, non sai cos’è un nodo elettrico e ti metti le mani nei capelli quando ti dicono di risolvere un circuito, in questo articolo ti aiuterò a colmare tutte queste tue lacune.

Nodo, maglie e lato elettrico: quali sono le differenze?

Maglia elettrica

Con maglia elettrica si definisce una parte chiusa con uno o più lati elettrici

Nodo elettrico

Si definisce nodo elettrico l’incrocio di tre o più componenti in un circuito elettrico

Lato elettrico

Si definisce lato (o ramo) elettrico qualsiasi parte di un circuito elettrico compreso tra due nodi elettrici e che abbia almeno un componente

Serie e Parallelo

Serie

Si identifica una serie quando un componente elettrico (nel nostro caso la resistenza) si trova subito prima o subito dopo un altro componente dello stesso genere (vedi foto)

Parallelo

Si può riconoscere un parallelo dal fatto che i poli dei componenti convergono allo stesso nodo elettrico (vedi foto)

Conclusioni

Bene, siamo arrivati anche oggi alla fine di questo articolo spero che vi sia piacuto. Io ovviamente vi do appuntamento al prossimo, sempre qui su www.programmazionepertutti.code.blog.

Cos’è il compilatore e un accenno a C++

Sai cos’è un compilatore? Ed un codice C? Se la risposta è no, sei nell’articolo giusto.

In questo articolo vi spiegheremo cos’è e a cosa serve un compilatore e cosa sono i linguaggi ad alto livello.

Funzione di un compilatore

Il compilatore è un programma per computer che trasforma un codice ad alto livello (C, C++, Python, Swift) in linguaggio macchina (codice binario formato da 0 e 1) quindi comprensibili dell’elaboratore

Quale compilatore usare?

Una cosa molto importante da fare prima di poter procedere nella programmazione, è la scelta del compilatore. Noi personalmente vi consigliamo Code::Blocks.

Come si scrive un codice in C++

Per scrivere un codice in un linguaggio di programmazione (nel nostro caso C++) abbiamo bisogno di un algoritmo disegnato su Diagramma a Blocchi (DaB) (per farli al computer noi consigliamo AlgoBuild o Flowgorithm). Dopo aver creato il nostro algoritmo graficamente, bisogna passare alla fase di “Codifica” dove determinate forme sul DaB si trasformano in stringe.

Come “codificare”

Iniziamo dalla prima istruzione che dovreste sapere cioè la dichiarazione di una variabile; questo è il codice per dichiarare una variabile

 int X;

Ma come si inserisce un numero da tastiera? Bisogna usare il comando cin. Questo comando che è appartenente alla libreria iostream e ci permette di far apprendere un numero da tastiera memorizzata in una varabile. Ecco un codice di esempio:

 cin>> X;

Ora che il tuo elaboratore ha appreso un numero dovrai fargli fare delle operazioni matematiche. Vediamo un esempio:

Di seguito riportiamo un codice per incrementare di 1 una variabile a scelta (in questo caso la variabile X)

X=X+1;

Dopo aver fatto l’addizione con la variabile vi potrebbe essere salita la voglia di “stamparlo” a schermo, cioè di farlo uscire in output. Ci viene in aiuto sempre un comando della libreria iostream, cioè il Cout  che permette di scrivere a schermo sia variabili che stringhe di testo. Facciamo dei rapidi esempi:

cout<<espressione1;
 cout<<espressione1<<espressione2;

Nell’ipotetico caso che tu debba vedere se una variabile è più grande di un’altra variabile ti servirà una condizione: l’if.

Si scrive così in C++:

if (condizione) {
  Espressionevera{
}
Else {
Espressionefalsa
}

In questo articolo ci siamo focalizzati sui compilatori e sul codice C++, facendo un piccolo formulario. Spero vi sia piaciuto, io vi aspetto al prossimo articolo, sempre qui su programmazionepertutti.code.blog