LIST p=PIC16F84A INCLUDE __CONFIG _WDT_OFF & _CP_OFF & _PWRTE_ON & _XT_OSC ERRORLEVEL -302 #DEFINE BANK0 bcf STATUS,RP0 #DEFINE BANK1 bsf STATUS,RP0 CBLOCK 0x0C unidades decenas centenas ENDC ORG 0x000 goto Main ORG 0x004 retfie Main BANK1 movlw b'11111' movwf TRISA ;TRISA es entrada movlw b'00000000' movwf TRISB ;TRISB es salida BANK0 goto Unidades Unidades movlw .10 subwf unidades,W ;restamos 10 a unidades y guardamos en W btfss STATUS,C ;checkeamos si da negativo goto Decenas ;si unidades es menor que 10, salimos movwf unidades ;si unidades es mayor a 10, guardamos el resultado de la resta movlw .1 addwf decenas ;sumamos 1 a decenas goto Unidades Decenas movlw .10 subwf decenas,W ;restamos 10 a unidades y guardamos en W btfss STATUS,C ;checkeamos si da negativo goto Mostrar ;si unidades es menor que 10, salimos movwf decenas ;si unidades es mayor a 10, guardamos el resultado de la resta movlw .1 addwf centenas ;sumamos 1 a decenas goto Decenas Mostrar swapf decenas,W addwf unidades,W movwf PORTB sleep END ;fin del programa