STRUCTURES ÉLÉMENTAIRES POUR PIC

 


C'est une proposition d'écriture de structures élémentaires en assembleur pour la famille PIC.
Cette page s'adresse à des débutants. Elle leur évitera au moins une heure de migraine.
Les structures peuvent évoluer (Test sur un bit, inclusion d'une structure dans une autre structure ...)
Il n'y aura pas de réponse à ceux qui auraient des problèmes d'écriture en assembleur.
Seuls payent le travail et la persévérance.
Le lien de référence pour les cours sur la famille PIC est en bas de page.


 

If N=5 Then
Action
End If


Début:
movf N,0
sublw 5
btfss STATUS,Z
goto FinSi
Action
FinSi:



N dans W
5 - W dans W
Si le résultat est nul, skip (On exécute l'action)
Si le résultat est <> 0, on saute à FinSi

Si N<>5 Alors Action FinSi

btfsc STATUS,Z

Dans la structure au-dessus, modification de la 4éme ligne

If N>5 Then
Action
End If

Début:
movf N,0
sublw 5
btfsc STATUS,C
goto FinSi
Action
FinSi :


N dans W
5 - W dans W
Si le résultat 5-W est négatif , skip (On exécute l'action)
Si le résultat 5-W est positif, on sort de la structure


Merci pour la simplification à Arnaux LS - Août 2008

Si N<5 Alors Action

btfss STATUS,C

Dans la structure au-dessus, modification de la 6éme ligne

Début:
movf N,0
sublw 5
btfss STATUS,Z
goto Sinon
Action1
goto FinSi
Sinon :
Action2
FinSi:


N dans W
5 - W dans W
Si le résultat est nul, skip (On exécute Action1)
Si le résultat est <> 0, on saute à Sinon


If N=5 Then
Action1
Else
Action2
End If

If N=5 And M=3 Alors
Action
End If

Début :
movf N,0
sublw 5
btfss STATUS,Z
goto FinSi
movf M,0
sublw 3
btfss STATUS,Z
goto FinSi
Action
FinSi:




Si N<>5
On sort de la structure


Si M<>3
On sort de la structure

For A=1 To 5
Action
Next A

Début :
movlw 1
movwf A
Test:
Action
movf A,0
addlw 1
movwf A
sublw 5
btfsc STATUS,C
goto Test
FinFor:



1 dans A

Action


A+1 dans A
5 - W dans W
Si le résultat est négatif (5 passages), skip, on sort de la structure
On saute à l'incrémentation de A (Test:)

A=1
Do
A=A+1
Loop While A<5

Exécution de l'action (A=A+1)
au moins une fois

Début:
movlw 1
movwf A
Faire:
movlw 1
addwf A,1
movlw 5
subwf A,0
btfss status,Z
goto Faire
FinDo:



1 dans A


A+1 dans A (Action)

A-5 dans W
Si le résultat est nul, skip, on sort de la structure (A=5)
A est différent de 5, on saute à Do:

A=1
Do While A<5
A=A+1
Loop

Si le résultat du test est vrai,
on exécute l'action.

Début:
movlw 1
movwf A
goto TantQue
Faire :
incf A,1
TantQue:
movlw 5
subwf A,0
btfss status,Z
goto Faire
FinDo:



1 dans A
On saute faire le test

A+1 dans A (Action)
Test

A-5 dans W
Si le résultat est nul, skip, on sort de la structure (A=5)
A<5, on saute à Faire
Accueil
Le cours de référence en français pour PIC