Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
ASM: Multiplication sur 16 bits
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
Multiplication sur 16 bits.
Code : Tout sélectionner
;********************************************************************
; Multiplication sur entiers 16bits _ F6FCO
; Il faut préalablement déclarer les variables sur 16 bits
; multiplicande16, multiplicateur16, resultat16
; valeur1, valeur2 (sur 16bits)
; et report16
;
; poids faible nombre1 dans multiplicande16
; poids fort nombre1 dans multiplicande16+1
;
; poids faible nombre2 dans multiplicateur16
; poids fort nombre2 dans multiplicateur16+1
;
; Le résultat sera dans resultat16 et resultat16+1
; si dépassement le carry est dans report16
;
; utilise les routines addition16 et soustraction16
;
;********************************************************************
multiplication16
clrf resultat16
clrf resultat16+1
mult161 ; test si multiplicateur sur 16bits =0
movf multiplicateur16+1,multiplicateur16+1
bnz mult162
bcf STATUS,Z
movf multiplicateur16,multiplicateur16
bz finmult16
mult162 movff resultat16,valeur1
movff resultat16+1,valeur1+1
movff multiplicande16,valeur2
movff multiplicande16+1,valeur2+1
call addition16
movff valeur2,resultat16
movff valeur2+1,resultat16+1
; on décrémente le compteur
movff multiplicateur16,valeur1
movff multiplicateur16+1,valeur1+1
clrf valeur2+1
movlw 1
movwf valeur2
call soustraction16
movff valeur2,multiplicateur16
movff valeur2+1,multiplicateur16+1
bra mult161
finmult16 return
Retourner vers « Recueil de mini programmes »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité
