The missing memory can be attributed to the image decompression process. You can look at the output from the following show commands
Sample Router
Cisco 2811 (revision xx.xx) with 772096K/14336K bytes of memory.
772096Kb*1024b/Kb = 790626304b of main memory
---------------------------------
OUTPUT from show stacks command
router#show stacks
.
.
.
0x40000000 0x6F1FFFFF 790626304 Local R/W main
0x4000F000 0x42DDFFFF 48041984 IText R/O main:text
0x42DE0000 0x454DD15F 40882528 IData R/W main:data
0x454DD160 0x45A2B4BF 5563232 IBss R/W main:bss
0x45A2B4C0 0x6F1FFFFF 696077120 Local R/W main:heap
----------------------------------------------
Main is the same amount as reported in show version. IText + IData + IBss + Local = Main memory amount. IText is the region of memory used to hold the decompressed image. IBss and IData are used to initialize store variable and structure information.
I suspect that you would see a much larger memory difference if you were to load an image of the same version and feature set on the 2600 router. In that case the 2600 would also need the memory associated with the new IOS images. My guess is that the memory difference would be more like 90Mb in that case. You will not see the full 128 difference as the 2800 images are larger than the 2600 imamges.
You may consider moving to a more limited feature set to free up memory if you are not using the addiational security features (IDS,IPS, etc.) that are poossible on this router.
--Brent