La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione al linguaggio assembly del microprocessore 8086 3 a parte.

Presentazioni simili


Presentazione sul tema: "Introduzione al linguaggio assembly del microprocessore 8086 3 a parte."— Transcript della presentazione:

1 Introduzione al linguaggio assembly del microprocessore a parte

2 I registri dell8086 Il microprocessore 8086 dispone di 14 registri per lesecuzione delle operazioni aritmetiche e logiche e per lindirizzamento delle aree dati, di programma e di catasta(stack). Alcuni registri sono associati a particolari operazioni. AHAL BHBL CHCL DHDL Accumulatore Base Conteggio Dati AX BX CX DX Questi quattro registri vengono chiamati registri generali, essi possono essere visti anche come otto registri ad 8 bit.

3 I registri dell8086 Il microprocessore 8086 dispone di 14 registri per lesecuzione delle operazioni aritmetiche e logiche e per lindirizzamento delle aree dati, di programma e di catasta(stack). Punt. a catasta Punt. base Indice Sorgente Indice Destinazione SP BP SI DI 15 0 Questi quattro registri vengono chiamati registri puntatori e vengono gestiti sempre a 16 bit.

4 I registri dell8086 Il microprocessore 8086 dispone di 14 registri per lesecuzione delle operazioni aritmetiche e logiche e per lindirizzamento delle aree dati, di programma e di catasta(stack). Seg. Codice Seg. Dati Seg. Catasta Seg. Extra CS DS SS ES 15 0 Questi quattro registri vengono gestiti sempre a 16 bit e contengono gli indirizzi dei quattro segmenti in cui è strutturato un programma assembly.

5 I registri dell8086 Il microprocessore 8086 dispone di 14 registri per lesecuzione delle operazioni aritmetiche e logiche e per lindirizzamento delle aree dati, di programma e di catasta(stack). Contatore di programma Reg. Flag IP 15 0 Questi due registri servono rispettivamente a: contenere lindirizzo della prossima istruzione da eseguire (IP) a 16 bit; contenere valori binari che riflettono lavverarsi o meno di alcuni eventi a seguito dellesecuzione di un istruzione (FLAG), bit singoli. Questi due registri servono rispettivamente a: contenere lindirizzo della prossima istruzione da eseguire (IP) a 16 bit; contenere valori binari che riflettono lavverarsi o meno di alcuni eventi a seguito dellesecuzione di un istruzione (FLAG), bit singoli. O D I T S Z A P C FLAG

6 Utilizzo dei registri Il registro AX serve da accumulatore principale. Operazioni aritmetiche e logiche vengono di solito effettuate su questo registro. Tutte le operazioni di ingresso e uscita vengono effettuate via AX. BX è il registro base. Questo è lunico dei registri di uso generale che può anche essere utilizzato per puntare a locazioni di memoria. CX è il registro di conteggio. Il contenuto di CX viene automaticamente diminuito di 1 a ogni ciclo nellesecuzione di istruzioni iterative, facilitando in questo modo molte operazioni su stringhe e di spostamento dati. Il registro dati DX è anche utilizzato come puntatore in alcune istruzioni di ingresso/uscita. I registri AX, BX, CX, DX possono essere usati liberamente per operazioni aritmetiche e logiche, a eccezione di alcune operazioni quali la moltiplicazione MUL, la divisione DIV e altre ancora che richiedono che alcuni degli operandi si trovino in registri prestabiliti.

7 Utilizzo dei registri Un secondo gruppo di registri è quello dei registri puntatori e indice. SP (stack pointer) è il puntatore allinizio della catasta; viene automaticamente modificato allesecuzione delle istruzioni PUSH, quando nuovi dati vengono messi in catasta, e POP quando i dati vengono tolti dalla catasta. BP è il puntatore base e serve per accedere direttamente a dati che si trovano sulla catasta. I due indici sorgente SI e destinazione DI puntano alla memoria dati. Essi vengono usati per passare più dati in successione da una locazione iniziale a una finale, ad esempio nel trasferimento di stringhe di caratteri.

8 Utilizzo dei registri I registri CS, DS, SS, ES puntano ai segmenti definiti in memoria. Il registro CS (code segment) punta al segmento contenente le istruzioni del programma, Il registro DS (data segment) punta al segmento dellarea dati Il registro SS (stack segment) al punta al segmento di catasta. Non è necessario che i segmenti siano localizzati in zone diverse della memoria; le rispettive aree possono coincidere. E infine a disposizione un altro registro di segmento, ES (extra segment). Esso è usato per indirizzare unarea dati diversa da quella alla quale fa riferimento DS.

9 Il registro delle flag Le 9 flag del sistema 8086 sono raccolte in un registro collettivo che ha come nome stato del processore. Ogni flag corrisponde ad un bit del registro di stato; i rimanenti 7 bit non sono utilizzati. Le flag non sono indirizzabili singolarmente, per laccesso ad esse occorre far uso delle funzioni definite a questo scopo. Le flag sono: Carry, Parità, Auxiliary carry, Zero, Sign, Trap, Interrupt, Direction e Overflow. In generale, le flag servono sia per determinare le condizioni di esecuzione del processo, sia per riportare il risultato di unoperazione e gli eventuali errori. Per questo i valori delle flag vengono modificati mediante luso di apposite istruzioni e anche automaticamente durante lesecuzione di operazioni aritmetiche e logiche. Le flag Carry, Auxiliary carry, Overflow e Sign riflettono il risultato dellultima operazione aritmetica che è stata eseguita, segnalando eventuali condizioni di errore. Le flag Parità e Zero indicano in maniera compatta le condizioni di parità sui bit di una parola e se il risultato di una operazione è uguale a zero. Le flag Direction, Interrupt e Trap sono sotto il controllo esclusivo delloperatore. Direction indica se le operazioni di trasferimento di blocchi di dati vanno eseguite per indirizzi crescenti o decrescenti di memoria; Interrupt serve allabilitazione o disabilitazione delle interruzioni e Trap mette il processore in un modo di esecuzione di una sola istruzione alla volta. Questultima flag è di utilità in fase di controllo dei programmi. Le 9 flag del sistema 8086 sono raccolte in un registro collettivo che ha come nome stato del processore. Ogni flag corrisponde ad un bit del registro di stato; i rimanenti 7 bit non sono utilizzati. Le flag non sono indirizzabili singolarmente, per laccesso ad esse occorre far uso delle funzioni definite a questo scopo. Le flag sono: Carry, Parità, Auxiliary carry, Zero, Sign, Trap, Interrupt, Direction e Overflow. In generale, le flag servono sia per determinare le condizioni di esecuzione del processo, sia per riportare il risultato di unoperazione e gli eventuali errori. Per questo i valori delle flag vengono modificati mediante luso di apposite istruzioni e anche automaticamente durante lesecuzione di operazioni aritmetiche e logiche. Le flag Carry, Auxiliary carry, Overflow e Sign riflettono il risultato dellultima operazione aritmetica che è stata eseguita, segnalando eventuali condizioni di errore. Le flag Parità e Zero indicano in maniera compatta le condizioni di parità sui bit di una parola e se il risultato di una operazione è uguale a zero. Le flag Direction, Interrupt e Trap sono sotto il controllo esclusivo delloperatore. Direction indica se le operazioni di trasferimento di blocchi di dati vanno eseguite per indirizzi crescenti o decrescenti di memoria; Interrupt serve allabilitazione o disabilitazione delle interruzioni e Trap mette il processore in un modo di esecuzione di una sola istruzione alla volta. Questultima flag è di utilità in fase di controllo dei programmi.


Scaricare ppt "Introduzione al linguaggio assembly del microprocessore 8086 3 a parte."

Presentazioni simili


Annunci Google