The 8086 instruction set consists of the following instructions: Data Transfer Instructions move, copy, load, exchange, input, and output. Arithmetic Instructions add, subtract, increment, decrement, convert byte/word and compare. Logical Instructions AND, OR, exclusive OR, shift/rotate and test
The 8086 instruction set consists of the following instructions: Data Transfer Instructions move, copy, load, exchange, input, and output. Arithmetic Instructions add, subtract, increment, decrement, convert byte/word and compare. Logical Instructions AND, OR, exclusive OR, shift/rotate and test
Serial Peripheral Interface (SPI) is an interface bus commonly used to send data between microcontrollers and small peripherals such as shift registers, sensors, and SD cards.
VEM AÍ A SUA SUA GRANDE CHANCE DE MORAR NO MELHOR CONDOMÍNIO DE ALCÂNTARA!APARTAMENTOS DE 1, 2, 3 e 4 QUARTOS, MUITO LAZER, CONFORTO E EM ATÉ 300 MESES PARA PAGAR.UM NOVO E EXCLUSIVO CONDOMÍNIO, COM EXCELENTE LOCALIZAÇÃO E TODA INFRA-ESTRUTURA QUE VOCÊ E SUA FAMÍLIA PRECISAM PARA VIVER BEM.UM CONDOMÍNIO ONDE O LAZER É COMPLETO PARA CRIANÇAS E ADULTOS:PISCINAS, SAUNAS SECA E A VAPOR, HIDROMASSAGEM, CAMPO DE FUTEBOL SOÇAITE, QUADRA POLIESPORTIVA, QUADRA DE AREIA, CIRCUITO DE CAMINHADA, CICLOVIA, CIRCUITO AVENTURA, PISTA DE SKATE, SALA DE GINÁSTICA, CINEMA AO AR LIVRE, LAN HOUSE, PARQUE INFANTIL, SALÃO DE JOGOS ADULTO E INFANTIL, ESPAÇO MULHER, BARES, SALÃO DE FESTAS, CHURRASQUEIRAS, FORNOS DE PIZZA E MUITO MAIS...ANTECIPE-SE AO LANÇAMENTO. LIGUE HOJE MESMO!!!AGENDE VISITA AOS APARTAMENTOS DECORADOS (Veja fotos).TELS: (21) 3073-3201 / 7857-9292 / ID NEXTEL: 87*10381
Το 8ο κεφάλαιο στο μάθημα Συστήματα Ψηφιακών Ηλεκτρονικών Θεωρία του τομέα Ηλεκτρονικής και ειδικότητας Ηλεκτρονικών Υπολογιστικών Συστημάτων και Δικτύων, Γ’ τάξη ΕΠΑΛ.
Η παρουσίαση αυτή (PPT in PDF) είναι ενεργή, συνοδεύεται από κάποια αρχεία τα οποία συνδέονται με υπερσυνδέσεις. Περισσότερες πληροφορίες στην σελίδα http://www.ilektronikoi.gr/index.php?act=viewCat&catId=19
Uma panorâmica sobre a Historia e Arquitetura do IOS. Apresenta uma explanação sobre as linguagens Objective-C e Swift, bem como o ambiente de desenvolvimento XCode.
Medidor de pH com calibração de pH e compensação automática de temperatura - ...Bruno Pereira
This paper focuses on the development of a reliable and low cost laboratory instrument, able to analyze the pH and temperature of liquid solutions. It is an instrument that enables the pH calibration in three points with the proper automatic temperature compensation, in order to be able to perform accurate analysis, such as in professional equipment used in many laboratories.
Serial Peripheral Interface (SPI) is an interface bus commonly used to send data between microcontrollers and small peripherals such as shift registers, sensors, and SD cards.
VEM AÍ A SUA SUA GRANDE CHANCE DE MORAR NO MELHOR CONDOMÍNIO DE ALCÂNTARA!APARTAMENTOS DE 1, 2, 3 e 4 QUARTOS, MUITO LAZER, CONFORTO E EM ATÉ 300 MESES PARA PAGAR.UM NOVO E EXCLUSIVO CONDOMÍNIO, COM EXCELENTE LOCALIZAÇÃO E TODA INFRA-ESTRUTURA QUE VOCÊ E SUA FAMÍLIA PRECISAM PARA VIVER BEM.UM CONDOMÍNIO ONDE O LAZER É COMPLETO PARA CRIANÇAS E ADULTOS:PISCINAS, SAUNAS SECA E A VAPOR, HIDROMASSAGEM, CAMPO DE FUTEBOL SOÇAITE, QUADRA POLIESPORTIVA, QUADRA DE AREIA, CIRCUITO DE CAMINHADA, CICLOVIA, CIRCUITO AVENTURA, PISTA DE SKATE, SALA DE GINÁSTICA, CINEMA AO AR LIVRE, LAN HOUSE, PARQUE INFANTIL, SALÃO DE JOGOS ADULTO E INFANTIL, ESPAÇO MULHER, BARES, SALÃO DE FESTAS, CHURRASQUEIRAS, FORNOS DE PIZZA E MUITO MAIS...ANTECIPE-SE AO LANÇAMENTO. LIGUE HOJE MESMO!!!AGENDE VISITA AOS APARTAMENTOS DECORADOS (Veja fotos).TELS: (21) 3073-3201 / 7857-9292 / ID NEXTEL: 87*10381
Το 8ο κεφάλαιο στο μάθημα Συστήματα Ψηφιακών Ηλεκτρονικών Θεωρία του τομέα Ηλεκτρονικής και ειδικότητας Ηλεκτρονικών Υπολογιστικών Συστημάτων και Δικτύων, Γ’ τάξη ΕΠΑΛ.
Η παρουσίαση αυτή (PPT in PDF) είναι ενεργή, συνοδεύεται από κάποια αρχεία τα οποία συνδέονται με υπερσυνδέσεις. Περισσότερες πληροφορίες στην σελίδα http://www.ilektronikoi.gr/index.php?act=viewCat&catId=19
Uma panorâmica sobre a Historia e Arquitetura do IOS. Apresenta uma explanação sobre as linguagens Objective-C e Swift, bem como o ambiente de desenvolvimento XCode.
Medidor de pH com calibração de pH e compensação automática de temperatura - ...Bruno Pereira
This paper focuses on the development of a reliable and low cost laboratory instrument, able to analyze the pH and temperature of liquid solutions. It is an instrument that enables the pH calibration in three points with the proper automatic temperature compensation, in order to be able to perform accurate analysis, such as in professional equipment used in many laboratories.
Corso di 20 ore sulla piattaforma Arduino. Corso tenuto nelle scuole superiori di San Secondo e Fornovo come corso di aggiornamento per il personale docente. Il corso si suddivide in 5 lezioni dove vengono spiegate più o meno tutte le funzionalità della piattaforma. I file li potete trovare al seguente indirizzo https://github.com/loweherz/ArduinoLessons
Il documento si propone di analizzare le tecniche di base per effettuare il reverse engineering. Verranno inoltre prese in esame le caratteristiche principali di alcuni dei tool utilizzati nel reverse engineering .
Iot prototype ( Arduino+electret microphone+esp-01) which analyses and distingueshes sounds. Useful to study and monitor data about noise pollution and road traffic.
1. 1
Appunti Sistemi – Lezione del 16/05/2019
INTERRUZIONI 8086
Quando una CPU deve acquisire dati da un dispositivo di INPUT o trasferire dati ad un dispositivo di
OUTPUT, deve prima verificare se l’interfaccia di I/O è pronta per la comunicazione. A tale scopo le
interfacce di I/O dispongono di un registro di stato, i cui flag indicano se il trasferimento è consentito
o meno.
Le modalità di colloquio del microprocessore con i dispositivi di I/O si possono distinguere in due
categorie:
tecnica del polling
tecnica delle Interruzioni
1. LA TECNICA DEL POLLING
In questo caso il microprocessore, mediante opportune istruzioni, controlla periodicamente (ogni
tot secondi) lo stato delle interfacce di I/O collegate al bus del sistema.
A tale scopo, il microprocessore legge ciclicamente il flag di stato di ciascuna interfaccia di I/O e in
base al loro valore attiva o meno le istruzioni necessarie per la comunicazione.
Questa tecnica di colloquio è poco efficiente, in quanto richiede un elevato impegno della CPU.
2. LA TECNICA DELLE INTERRUZIONI
Il modo più efficiente di gestire il colloquio tra la CPU e le periferiche è quello delle interruzioni.
Le interruzioni o interrupt sono delle primitive del DOS che comunicano alla CPU il verificarsi di un
evento, ad esempio la richiesta di scambio dati con una periferica.
Un'interruzione può essere provocata da:
dispositivi esterni che richiedono un servizio
dal processore stesso in seguito a particolari condizioni interne (eccezioni)
dal software (si interrompe un programma in esecuzione e parte un altro processo)
Le Interruzioni provocate dall'hardware esterno (brevemente interruzioni hardware) possono
essere di tue tipi:
mascherabili
o possono essere ignorate dalla CPU, che non deve per forza rispondere
o agiscono sul pin INTR del processore;
non mascherabili
o non possono essere ignorate dalla CPU
o agiscono sul pin NMI del processore
Al verificarsi di un’interruzione software la CPU interrompe il programma in esecuzione (processo)
ed esegue un sottoprogramma, chiamato routine di interrupt, allocato ad uno specifico indirizzo
2. 2
della ROM (BIOS) programmata dal costruttore della scheda madre. Terminata la routine
d'interrupt, la CPU torna al programma precedentemente interrotto e ne prosegue l'esecuzione.
SINTASSI
Le interruzioni o interrupt sono delle primitive del DOS e vengono chiamate in ASSEMBLER per chiedere, da
parte dell’utente, i servizi e le funzioni erogati dal DOS.
Sono caratterizzate dalla parola chiave INT e sono riunite in famiglie o gruppi individuati dal numero
esadecimale che segue la parola chiave INT.
In tutte le chiamate il valore contenuto nel registro AH contiene il numero della funzione che deve essere
eseguita.
Altri parametri possono essere richiesti in altri registri.
Noi vedremo in particolare la famiglia di interruzioni che gestiscono il video.
Interruzione INT 10h (si legge ”int uno zero h”): Famiglia di procedure per la gestione del video
AH=02 Determina la posizione del cursore
— Parametri in ingresso:
AH = 2
DH = numero di riga
DL = numero di colonna
BH = numero della pagina video
— Parametri in uscita: Nessuno
Con questo servizio si può determinare la posizione del cursore sul video, ponendo in DH il numero della riga
(da 0 a 24) e in DL quello della colonna (da 0 a 39 oppure da 0 a 79) in cui si vuol posizionare il cursore; in BH
va posto il numero della pagina di visualizzazione utilizzata.
AH = 09h Scrive carattere alla posizione del cursore
— Parametri in ingresso
AH = 09
AL = codice ASCII del carattere da scrivere
BH = numero della pagina video
BL = attributo del carattere (*)
CX = numero di volte per cui va ripetuta la scrittura
— Parametri in uscita: Nessuno
Il carattere i l cui codice ASCII è specificato in AL viene scritto nella pagina video indicata in BH, con
l'attributo specificato in BL alla posizione corrente del cursore. CX indica il numero di volte per cui ripetere
l'operazione: i caratteri vengono scritti uno di seguito all'altro, ma all'uscita dall'interruzione la posizione del
cursore risulta quella iniziale, per cui se la si vuole modificare occorre ricorrere alla funzione con AH = 02
(*)
3. 3
Ad esempio per colorare una riga basterebbe spostare il cursore con lo spazio, impostando
opportunamente il byte d’attributo.
Lo spazio ha codice ASCII 32 (in decimale)
Le cifre da 0 a 9 hanno codice ASCII da 48 a 57 (in decimale)
Le lettere maiuscole hanno codice ASCII da 65 a 90 (in decimale), ogni lettera va caricata nel registro AL.
Le lettere minuscole hanno codice ASCII da 97 a 122 (in decimale)
AH = 0E Scrive con modalità telescrivente facendo spostare il cursore in automatico di una
posizione a destra
— Parametri in ingresso
AH = 0E
AL = codice ASCII del carattere da scrivere
BH = numero della pagina video
BL = attributo del carattere (solo nelle modalità grafiche)
— Parametri in uscita: Nessuno
Questa richiesta di interruzione scrive i l carattere specificato in AL sulla pagina video da BH alla posizione
corrente del cursore, che successivamente viene fatto avanzare.
Sono interpretati e convertiti nelle corrispondenti azioni anche i codici ASCII di BACKSPACE (08, indietro) e
CARRIAGE RETURN (0D, ritorno a capo),
4. 4
All’avvio la RAM è vuota e poi si riempie: ecco come è organizzato il nostro MegaByte di memoria
nell’8086
Il microprocessore 8086 gestisce le interruzioni nel seguente modo.
La CPU, se precedentemente abilitata a ricevere interruzioni, alla fine di ogni istruzione (nell’ultimo ciclo di
clock dell’ultimo ciclo macchina) testa la condizione dei suoi piedini di INTERRUPT (in genere due: prima NMI
(non mascherabile) e poi INTR (mascherabile)
Se uno dei due piedini è alto (cioè è ad 1), la CPU esegue l’interruzione.
Il piedino NMI è di sistema, il programmatore può pilotare solo INTER.
Esistono le istruzioni equivalente a CLI (Clear Interrupt flag, , porta ad 1 il flag dell’interruzione) e a STI (Set
Interrupt, porta a zero il flag dell’interruzione).
Quando arriva la richiesta d’interruzione, la CPU deve sapere dove sta la prima istruzione del nuovo
programma da eseguire e deve memorizzare dove si trova l’ultima istruzione del programma che sta
eseguendo.
Ricordiamo che la memoria è gestita in modo segmentato
5. 5
CS : IP
Cioè
Code Segment: Instruction Pointer
Nel seguente schema ogni riga corrisponde a 2 Byte ed ogni vettore d’interruzione è rappresentato dalla
coppia IP, CS (CS è un registro a16 bit)
Nei primi 1024 Byte ci sono 1024:4=256 vettori.
Quindi i vettori d’interruzione vanno da 0 a 255.
Il primo KByte della memoria di un 8086 è destinato alla "tabella dei vettori d'interruzione", che contiene 256
indirizzi.
Ciascuno di questi indirizzi viene detto vettore d'interruzione ed identifica il TIPO. Il vettore d'interruzione
dell'INT 0 sta all'indirizzo zero e occupa 4 byte, il vettore dell'INT 1 sta all'indirizzo 4, in generale il vettore
dell'INT n si trova all'indirizzo (n* 4).
I tipi da 0 a 31 non sono utilizzabili dal programmatore perché sono di sistema.
Ad esempio INT 0 è il vettore che lancia la procedura quando un programma effettua la divisione per zero.
6. 6
STACK
La stack è una struttura dati che risiede nella memoria principale ed è molto usata nella programmazione a
basso livello. Si tratta di un'area di memoria nella quale l'accesso ai dati avviene in modo LIFO (Last In First
Out). Per noi lo Stack rappresenta la terza area di memoria, la prima è il Code Segment, la seconda è il Data
Segment. Per non incorrere in inconvenienti sarebbe meglio tenere separate le tre zone.
Una struttura LIFO è tale che l'ultimo elemento che arriva è anche il primo che viene ripreso e servito (si pensi
ad esempio ad una pila di piatti puliti da mettere a posto).
Il registro di segmento che viene usato è SS (Stack Segment), mentre l'offset è SP (Stack Pointer). L'indirizzo
dell'ultima word che è stata messa nello stack è perciò SS:SP.
Lo "stack pointer" indica sempre l'ultimo elemento dello stack, cioè l'indirizzo in memoria dell'ultimo valore
che vi è stato immesso.
N.B. Invece in una coda il primo che arriva è il primo ad essere servito secondo la modalità FIFO (Firts In First
Out), come la coda allo sportello di un ufficio postale.
Si lavora sullo stack con due istruzioni: PUSH e POP.
PUSH ("spingi") immette un nuovo valore all'interno dello stack; POP lo toglie (to pop out significa "uscire
precipitosamente").
Nell’8086 il program counter coincide con CS:IP. Nel caso ci sia una richiesta d’interruzione la CPU mette in
atto le seguenti operazioni elementari:
salva nella memoria di STACK il valore corrente del PROGRAM COUNTER,
aggiorna il contenuto dello STACK POINTER,
determina quale dispositivo ha richiesto l’interruzione,
inserisce nel PROGRAM COUNTER l’indirizzo da cui inizia la nuova subroutine di servizio
procede alla esecuzione della subroutine di servizio.
7. 7
Terminata la routine di servizio dell'interruzione il microprocessore
ricarica nel PROGRAM COUNTER l' indirizzo precedentemente memorizzato nella memoria di STACK,
aggiorna lo STACK POINTER
continua il programma dall' istruzione immediatamente successiva a quella in cui si era verificata la
richiesta di interruzione.
N.B. Quando si attiva un’interruzione, solo il contenuto del Program Counter vienememorizzato
automaticamente nello Stack; per cui se si ritiene necessario salvare anche il contenuto di altri registri interni
della CPU, occorre farlo con istruzioni specifiche all'inizio della subroutine di servizio (PUSH a 16 bit) e
ristabilisce poi la situazione di partenza prima di rientrare nel programma principale (usando ad esempio
l’istruzione di POP).
La sintassi delle istruzioni PUSH e POP, in un 8086, è la seguente:
L’operando di PUSH e di POP può essere un registro di 16 bit o una word recuperata dalla memoria, ma
nell'8086 non può essere un valore immediato.
Dunque nell'8086 tutte le operazioni sullo stack sono solo a 16 bit, non è permesso fare PUSH o POP di valori
di 8 bit.