Hi, I am new to the field of PIC programming but trying to catch up. I need some help guys to write my code.
I have bought 12F508 and pins GP0 to 4 are pulled high by 10K with pushbuttons attached to the ground. I would like to have an shortest possible code to read the ports and send an serial command through GPIO.5 based on combinations of the buttons pressed. I have tried other ways using AND's but the PIC runs out of memory with this kind of approach.

I tried with the following but it's not working. I would like to know if the problem is with the code or my hardware. Once I make sure the code is ok then I will jump on to check the hardware settings.
Code:
define  NO_CLRWDT  1
define  OSC        4       ' OSCCON defaults to 4MHz on reset

Include "modedefs.bas"

@ __CONFIG _IntRC_OSC & _WDT_OFF &_MCLRE_OFF & _CP_ON

Tx  	    var     GPIO.5
i			var		byte

pause 50
main:
        ' Initialize the processor
        TRISIO = %011111        ' 1 bits are inputs - O are outputs
        Tx=0			        ' Put Tx pin low
        OSCCAL = 0 
PAUSE 50
                     
start:
while 1
i=gpio
pause 500
if i=%11110 then      ' if gpio.0 is pressed
'Serout............few bytes
endif

if i=%01110 then      ' if gpio.0 + gpio.4 is pressed
'Serout............few bytes
wend
endif
I am little confused as to when I write i=gpio, does it stores i[0]=gpio.0 OR i[7]=gpio.0
Are the if statements above correct, I mean what will the PIC do with remaining 3 bits in i variable
Please help me understand how this will work. Thanks