Code : Tout sélectionner
;********************************************************************
; Addition sur entiers 64bits_ F6FCO
; Il faut préalablement déclarer des variables sur 64 bits
; valeur1:8, valeur2:8 et report16
;
; Placer le poids faible de la première valeur dans valeur1
; et les poids forts dans valeur1+1, à +8
;
; Placer le poids faible de la valeur à additionner dans valeur2
; et les poids forts dans valeur2+1, à +8
;
; Appeler la procédure addition32 et le résultat de
; valeur1+valeur2 sur 32bits sera dans les 4 octets de valeur2
; Si carry, il sera stocké dans report16
;********************************************************************
addition64
movf valeur1,w
addwf valeur2
movf valeur1+1,w
addwfc valeur2+1
movf valeur1+2,w
addwfc valeur2+2
movf valeur1+3,w
addwfc valeur2+3
movf valeur1+4,w
addwfc valeur2+4
movf valeur1+5,w
addwfc valeur2+5
movf valeur1+6,w
addwfc valeur2+6
movf valeur1+7,w
addwfc valeur2+7
; s'il y a carry il sera stocké dans report16
movf STATUS,w
andlw 0x1
movwf report16
return
