The simulation of the 16f877 appears to be missing general purpose registers at 0x120-0x16f and 0x1a0-0x1ef.
Easy enough to fix. In routine void P16F877::create() [file p16f87x.cc] change lines:
add_file_registers(0x110, 0x11f, 0);
add_file_registers(0x190, 0x19f, 0);
add_file_registers(0x110, 0x16f, 0);
add_file_registers(0x190, 0x1ef, 0);
I note that the simulation of the 16f877A (in the same file) has this correct, and according to Microchip these two processors have the same number of general purpose registers.