It’s a flip-flop, so if you do it in software a flip-flop might as well be 1 bit of memory.
You’re going to want to look a the LED in a real program and know if it’s on or off,
so will usually want to store the LED state which would usually represent some program state.

Code:
flipflop var bit ‘ 1 = LED is on 0 = LED is off
debounce var byte ‘ button debounce counter
flipflop = 0 ‘ start with LED off at power up, or on if you want to
debounce = 0 ‘ reset debounce counter

trisb.0 = 1’ button pin input
trisb.7 = 0’ LED pin output

cycle: 'program cycle

if debounce > 199 then
if portb.0 = 1 then
flipflop = 1
debounce = 0
else
flipflop = 0
debounce = 0
endif
endif

if flipflop = 1 then ‘ set LED to flip flop state
portb.7 = 1
else
portb.7 = 0
endif

if debounce < 200 then ‘ increment button debounce counter
debounce = debounce + 1
endif

goto cycle ‘ repeat loop forever