>Warning[202]: Argument out of range. Least significant bits used. >0008 301B 00031 MOVLW 11111b It doesn't understand you are giving it a binary number. You should say: MOVLW b'00011111' >Message[302]: Register in operand not in bank 0. Ensure that bank bits >are correct. >0009 0085 00032 MOVWF TRISA PICs can't address registers above 7F directly, and TRISA is 85, and the assembler is telling you it is addressing 05 or 85, it doesn't know which. Which one depends on the setting of bit 5 of the status register (this bit is usually referred to as "RP0"). In other words, of the eight bits you need for a register's address, you can only specify the lower 7. The eighth bit is ignored, and RP0 is used instead. To make sure that you are really talking to TRISA, you would need to do this: movlw b'00011111' ;the direction pattern you wanted bsf STATUS,5 ;set RP0 to the 80's movwf TRISA ;move w into TRISA bcf STATUS,5 ;switch back to the lower bank of registers You'll still get the "Message[302]: Register in operand not in bank 0. Ensure that bank bits" warning, but ignore it or tell the assembler to suppress it. Most people will tell you that changing to register bank 1 is not needed, since there is a perfectly good way to do just what you wanted. I'd do it, too! movlw b'00011111' ;your bit pattern tris 5 ;5 is the address of port A This will give you an assembler warning, but ignore it. The tris command is still valid and you should use it whenever you want to. Cheers, Bob