Traduction d'une boucle faire tant que en assembleur 51 |
Le dictionnaire des variables est correspondant à l'algorithme est (visualiser l'algorithme):
Le choix de
l'allocation est arbitraire. Ce choix est généralement guidé par les
contraintes imposées par le cahier des charges. La notation entier.b n'est
pas normalisée. Elle est appliquée au choix qui est fait ici d'implanté cet
algorithme en assembleur 51. Enfin, le fait qu'en assembleur, il est possible
que de faire une opération par instruction, il est nécessaire d'ajouter une
variable intermédiaire denum.result allouée dans A. L'utilisation de B est
imposée par la multiplication en assembleur 51. La traduction de l'algorithme
donne : debut: mov R2,#05h
mov R1,#02h mov R0,#ffh ; result <- 0 faire: inc R0 ;
result <- result + 1 mov B,R0 mov B,R1 mov A,R0 mul
AB ; A <- demum.reslut subb A,R2 ; test si denum.result-num<0 jc faire jnz sivrai
; si
égalité finsi: mov P0,R0 ret ;
fin du code sivrai: dec R0 ljmp
finsi
|