Autor Tema: Calculo del porcentaje  (Leído 3095 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ErnestAl

  • PIC10
  • *
  • Mensajes: 37
Calculo del porcentaje
« en: 18 de Junio de 2007, 18:28:53 »
Buenas noches, estoy calentandome un poco el coco. Para obtener una rutina que me permita calcular el porcentaje de dos enteros, guardando dicho valor en dos registros de 8 bits, pero ¿Donde me equivoco al realizar la division?, aqui os dejo el .asm
   list   P=16F877
         #include   <p16f877.inc>
         
         ORIGEN      EQU      0X20
         PORCENTAJE   EQU      0X21
         VALORH      EQU      0X22
         VALORL      EQU      0X23
         R_ML      EQU      0X24
         R_MH      EQU      0X25
         TEMP      EQU      0X28
         RESTO      EQU      0X27
         
         ORG         0X00
         NOP
         NOP
         
MAIN      MOVLW      D'2'
         MOVWF      ORIGEN
         MOVLW      D'80'
         MOVWF      PORCENTAJE
         MOVLW      D'0'
         MOVWF      VALORH
         MOVWF      VALORL
         MOVWF      R_MH
         MOVWF      RESTO

 BUCLE      CALL      MULTIPLICACION ;PRIMERO MULTIPLICAMOS ORIGEN Y PORCENTAJE
         CALL      DIVISION       ;DESPUES DIVIDO POR 100
         GOTO      BUCLE



MULTIPLICACION      ADDWF   ORIGEN,0   ;Guardo el valor en W
                MOVWF   R_ML
               BTFSS   STATUS,C ;¿hAY ACARREO?
               GOTO   SEGUIR
               INCF   R_MH
SEGUIR            DECFSZ   PORCENTAJE,f
               GOTO   MULTIPLICACION
               RETURN
 
DIVISION         MOVLW   D'100'
               SUBWF   R_ML,W
               MOVWF   TEMP
               BTFSC   STATUS,C   
                CALL   WAIT
               DECF   R_MH
               

 
 WAIT            MOVWF   RESTO
               INCF   VALORL
               MOVF   TEMP,W
               MOVWF   R_ML
               goto   DIVISION




END