30 fps with 5670 sounds about right, but not on 800x600...http://www.tomshardware.com/reviews/battlefield-3-graphics-performance,3063-9.html
5570 gets around 30 fps, so yours should be a tiny bit better. However, seeing how your CPU is not the latest i7 that was used to get that benchmark it might explain your dip into 20s
I'd say you should be able to set the game to lowest settings and turn up the resolution.
since the game is at least dx10 your RAM shouldn't be an issue
PS> regarding running games in 800x600. I see a lot of people that do this and forget to turn off the automatic GPU upscaling to display's native resolution. Doing so consumes more resources than just running the game at that resolution