Discussione: Assembler per PIC
Visualizza messaggio singolo
Vecchio 14 dicembre 07, 01:07   #14 (permalink)  Top
jijuja
Guest
 
Messaggi: n/a
L'istruzione BTFSC PORTA,0 ha questo significato:

testa il bit del registro "f" cioè PORTA e salta la prossima
istruzione se questo bit vale 0.
Fino a quì sembra chiaro,lo "0" che segue la virgola stà ad indicare
il primo bit (meno significativo) quindi,essendo la PORTA una delle due porte
"esterne" (cioè per precisione il registro PORTA prende il valore
della porta A se questa è configurata come ingresso)
del 16F84 e se guardi sulla descrizione dei "piedini" equivale a RA0.
riassumendo se su questo piedino si presenta un valore 0V
viene ignorata l'istruzione successiva.
Il tuo discorso sui Flag sarebbe corretto se al posto di prendere PORTA
come parametro "f" fosse stato preso STATUS che è il registro che contiene
i flag z,c ecc...
Nota che le istruzioni di salto usano 2 cicli per essere eseguite,
per l'architettura del Pic queste istruzioni,non sapendo quale è l'indirizzo della seguente fino a che non viene svolta praticamente usa 2uS
a 4 Mhz per essere eseguita. (curiosità che mi sembra il sito di tanzilli non
prenda in considerazione (ho detto mi sembra))

In risposta a ElNonino :

Certamente hai ragione e sai quello che dici,
io personalmente non uso numeri a virgola mobile
ne con segno in assembler
(se non convertendogli in numero intero)
comunque quello che dici è perchè conosci anche l'assembler.
Il giorno d'oggi tutti vengono indirizzati verso linguaggi ad alto livello
senza farsi le ossa con l'asm e questo lo trovo sbagliato perchè,
ad alto livello si tende a trascurare l'architettura delle macchine che si usano.
Sicuramente a livello didattico è importante capire tali micro e poi
si possono sfruttare meglio conoscendo l'architettura.
Potrei dirti che anche i programmatori ad alto livello
in gamba sanno usare l'asm perchè per risolvere alcuni problemi
in real time non c'è altra soluzione.
Se tutto quello che si vuole è il risultato senza approfondire
sarebbe convegnente usare esempio un 16F870 a 20 Mhz
in Basic strutturato tipo Microbasic e nonostante la non ottimizzazione
del codice si raggiungerebbero risultati in poco tempo
poi vista la maggior memoria e velocità...
non sò se mi spiego...
Certamente il C è più vicino all'assembler del Basic
e specialmente se usato senza comandi speciali cioè solo Ansi C...
Penso anche io sia la migliore soluzione ma sul 16F84
trovo l'asm con il quale 1000 istruzioni di capacità permettono di arrivare
molto lontano,esempio il Basic consente di andare ben poco lontano.

Concordi?
  Rispondi citando