Hola, entiendo que quieres poner todos los pines del puerto A a 1 (valor del puerto = 32, recuerda que el puerto a tiene 5 pines), no mandar el valor 1 al puerto a, que en ese caso seria el pin/bit menos significativo (RA0) a "1" y el resto de pines/bits a cero.
Pues para eso tienes que modificar un poco tu codigo, mas que nada el cambiar de orden algunas lineas:
LIST P=PIC16F84a
w equ 00h
status equ 0x03
porta equ 0x05
trisa equ 0x85
rp0 equ 5 ;registrer banck select bit
reset org 0
goto inicio
inicio bsf status,rp0 ;bank 1
movlw b"00000000" ; puerto a como salida
movwf trisa
bcf status,rp0 ;bank 0
movlw b"11111111" ;linea cambiada de sitio
movwf porta ;escribir en el puerto a
nada
nop
nop
goto nada ;cierra el ciclo
End
Este es tu codigo rectificado, ahora te deberia funcionar, te recomiendo que cuando cargues un literal en el w seguidamente lo lleves al registro donde lo quieres llevar como puedes ver arriba en las lineas cambiadas,
----------------------------------------------------
movlw b"00000000" ; puerto a como salida (linea cambiada de sitio)
movwf trisa
------------------------------------------------------
movlw b"11111111" ;linea cambiada de sitio
movwf porta
---------------------------------------------------------
primero cargas el literal y seguidamente lo llevas al registro deseado, tu error era ese basicamente.
Otro consejo pero esto no quiere decir que este mal lo que haces es que en lugar de definir las direcciones y asignarles una etiqueta como tu haces, como por ejemplo:
-----------------------------------------------------
status equ 0x03
--------------------------------------------------------
Puedes incluir en tu codigo la siguiente linea, siempre despues de indicar el procesador con list:
include <p16f84a.inc>
Este fichero que incluyes ya tiene definidas todas las etiquetas con su direccion correctamente asignada para el procesador 16f84a, asi no hace falta que las definas tu.
Saludos.