1 / 34

Linguaggi

Linguaggi. Diversi tipi di linguaggi: Imperativi Funzionali Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio eseguibile dal calcolatore: il Linguaggio Macchina. Linguaggio Macchina. Insieme di istruzioni eseguibili dalla CPU Dipende dalla CPU:

chapa
Download Presentation

Linguaggi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linguaggi • Diversi tipi di linguaggi: • Imperativi • Funzionali • Dichiarativi • Tutti basati sulla traduzione nell'unico linguaggio eseguibile dal calcolatore: il Linguaggio Macchina Fondamenti di Informatica

  2. Linguaggio Macchina • Insieme di istruzioni eseguibili dalla CPU • Dipende dalla CPU: • cablata al suo interno, ogni istruzione genera una sequenza di segnali di controllo • Linguaggio di basso livello • si può accedere direttamente alle funzionalità di base del calcolatore Fondamenti di Informatica

  3. Linguaggio Macchina • Complesso da utilizzare: • ogni istruzione esegue un'operazione semplicissima • esistono librerie con procedure generali • Gli altri linguaggi vengono "convertiti" in sequenze di istruzioni in linguaggio macchina Fondamenti di Informatica

  4. Linguaggio Macchina • Il Linguaggio Macchina è estremamente efficiente • I programmi sono: • più veloci • più corti • ma più complessi Fondamenti di Informatica

  5. Linguaggio Macchina • La scrittura è complessa: • istruzioni formate da stringhe di 1 e 0: quindi è necessario un insieme di simboli (Linguaggio Assembly) • per referenziare le locazioni di memoria è necessario avere delle etichette • necessario commentare ogni istruzione Fondamenti di Informatica

  6. Istruzioni Macchina • Composte da: • etichette (per eliminare riferimenti ad indirizzi fisici, facilitano le modifiche) • codici operativi (non può mai mancare) • operandi (0, 1 o 2) START: MOV AX, BX CMP AX, 12h JZ EQUAL INT 21h RET EQUAL: MOV BL, 82h Fondamenti di Informatica

  7. Commenti • Servono a rendere il programma più comprensibile al programmatore e a chi lo analizzerà in futuro • Vengono ignorati dalla macchina • Devono essere utili ed esplicativi Fondamenti di Informatica

  8. Commenti START: MOV AX, BX ; Carico AX con il valore di BX CMP AX, 24 ; Confronto AX con 24 JZ EQUAL ; Se AX=24 salto a EQUAL INT 21h ; Chiama l'INT 24h RET ; Ritorna alla proc. Chiamante EQUAL: ... START: MOV AX, BX ; Carico AX con il numero di riga CMP AX, 24 ; Se sono al termine dello schermo JZ EQUAL ; allora non scrivo nulla INT 21h ; Scrivi la prossima riga di testo RET ; Ritorna EQUAL: ... Fondamenti di Informatica

  9. Tipi di istruzioni (Intel x86) • Trasferimento dati • Aritmetiche e logiche • Manipolazione di bit • Manipolazione di stringhe • Trasferimento di controllo • Manipolazione di interruzioni • Controllo del processore Fondamenti di Informatica

  10. Trasferimento dati • Servono per trasferire dati tra: • registri • memoria • unità esterne • MOV AX, BX - MOV AX, [indirizzo] • PUSH AX - POP BX Fondamenti di Informatica

  11. Aritmetiche • Somme, sottrazioni, confronti, (moltiplicazioni, divisioni) • Side effect sui flag • ADD AX, BX • ADC AX, BX • MUL BX (macchine "a 0, 1, 2 indirizzi") • CMP AX, BX Fondamenti di Informatica

  12. Logiche • And, Or, Xor, Not, Test • AND AX, BX • OR AX, BX • TEST AX, 01100100b Fondamenti di Informatica

  13. Manipolazione di bit • Traslazioni e Rotazioni delle configurazioni binarie • Traslazioni: SHL, SHR • Traslazioni aritmetiche: SAL, SAR • Rotazioni: ROL, ROR • Rotazioni con carry: RCL, RCR Fondamenti di Informatica

  14. Manipolazione di stringhe • Spostamento, confronto, ricerca,… • Utilizzano due registri puntatori e un registro contatore • MOVS [ethchetta], [etichetta] • CMPS [ethchetta], [etichetta] • SCAS [ethchetta], [etichetta] Fondamenti di Informatica

  15. Trasferimento del controllo • Salti condizionati, incondizionati, chiamate e ritorni da procedure • JZ [etichetta], JC [etichetta], … • diverse combinazioni • JMP [etichetta] • CALL [procedura] • RET Fondamenti di Informatica

  16. Manipolazione delle interruzioni • Concetto di Interrupt • Interrupt hardware e software • La Interrupt Service Routine (ISR) è paragonabile ad una procedura ma: • è attivabile via hardware • non specifica l'indirizzo della procedura, che è quindi modificabile • durante l'esecuzione disabilita le interruzioni Fondamenti di Informatica

  17. Controllo del processore • Servono a modificare il comportamento della CPU • Modificano i flag di controllo: CLC, STC, CMC (agiscono sul flag C), … • Sincronizzazione: NOP, HLT, ESC, LOCK, … Fondamenti di Informatica

  18. Accesso alla memoria • Il metodo di indirizzamento definisce il meccanismo per ottenere i dati: • in registri • nell'istruzione stessa • in memoria • su una porta di I/O Fondamenti di Informatica

  19. Modi di indirizzamento • Immediato: • l'operando copare direttamente nell'istruzione come costante • è utilizzato solo per operandi 'sorgente' • MOV AX, 2 Fondamenti di Informatica

  20. Modi di indirizzamento • Assoluto: • Nell'istruzione compare l'indirizzo effettivo (fisico) di memoria dove si trova l'operando • MOV AX, [3923:2314] Fondamenti di Informatica

  21. Modi di indirizzamento • Relativo: • l'indirizzo di memoria è specificato relativamente al contenuto del PC • vantaggio per programmi rilocabili • MOV AX, [PC+102] Fondamenti di Informatica

  22. Modi di indirizzamento • Diretto: • l'operando è contenuto in un registro • nell'istruzione è specificato l'identificativo del registro • MOV AX, BX Fondamenti di Informatica

  23. Modi di indirizzamento • Indiretto con registro: • l'operando è in una cella di memoria il cui indirizzo è contenuto in un registro • nell'istruzione è specificato l'identificativo del registro • MOV AX, [BX] Fondamenti di Informatica

  24. Modi di indirizzamento • Con autodecremento/incremento: • analogo all'indiretto con registro, ma il contenuto del registro viene decrementato di una quantità pari alla dimensione in bytes dell'operando • predecremento e postdecremento • preincremento e postincremento Fondamenti di Informatica

  25. Modi di indirizzamento • Indiretto con autoincremento: • l'operando è in memoria; il suo indirizzo è in un'altra posizione della memoria puntata dal contenuto di un registro. • nell'istruzione è contenuto l'identificativo del registro • dopo l'uso, il contenuto del registro è incrementato di una quantità pari alla dimensione in bytes di un indirizzo di memoria Fondamenti di Informatica

  26. Modi di indirizzamento • Con spiazzamento: • nell'istruzione sono specificati un dato in complemento a 2 e l'identificatore di un registro • il dato viene sommato al contenuto del registro per ottenere l'indirizzo dell'operando • MOV AX, [BX+9382] Fondamenti di Informatica

  27. Modi di indirizzamento • Indiretto con spiazzamento: • come il precedente, ma l'indirizzo ottenuto della somma punta ad una posizione di memoria dove è contenuto l'indirizzo dell'operando Fondamenti di Informatica

  28. Modi di indirizzamento • Con registri indice: • utilizza due registri: uno contiene un indirizzo base e l'altro un numero da moltiplicare per la dimensione dell'operando e da sommare alla base per ottenere la locazione dell'operando. • Utile per l'accesso a vettori Fondamenti di Informatica

  29. Modi di indirizzamento • Con lo stack pointer: • SP punta alla sommità dello stack; • le istruzioni PUSH e POP permettono di inserire e prelevare elementi dallo stack • Passaggio di parametri Fondamenti di Informatica

  30. Modi di indirizzamento • Implicito: • alcune istruzioni non prevedono di specificare esplicitamente alcuni dei loro operandi • DIV BL • Macchine "a 0 e 1 indirizzi" Fondamenti di Informatica

  31. Descrizione istruzioni • Il costruttore fornisce delle tabelle che descrivono l'esatto comportamento delle istruzioni • operazione effettuata • side effects • tempo di esecuzione • codifica Fondamenti di Informatica

  32. Codifica delle istruzioni • Problema: • rappresentare l'instruction set con opportune stringhe di bit • particolare riguardo anche alle prestazioni • Soluzione: • codifiche con lunghezza variabile • codifica di Huffman Fondamenti di Informatica

  33. Il BIOS • Il BIOS (Basic Input Output System) è uno strato di software utilizzato per standardizzare l'accesso ai periferici • Fornisce un insieme di procedure standard di interfaccia • Permette la gestione a basso livello di: • video, tastiera, mouse, stampante,… Fondamenti di Informatica

  34. Visione stratificata Livelli superiori Applicazioni Assembly Sistema Operativo BIOS Hardware Fondamenti di Informatica

More Related