For loops in Verilog should have compile time constants for iteration limits, otherwise the code isn't synthesizable. If R_addr isn't a constant then the code won't synthesize as that would represent run time self modifying hardware.
The reason the index 8 shows up is because reg [3:0] R_adder can hold a value of 4'd0-4'd15, which is obviously larger than the ram [0:7] unpacked index.