Only 3.2GB of 4GB RAM detected on 64-bit Debian
PCI also uses some of the address space. Both PCI cards and PCI devices build into the motherboard (such as the chipset).
Usually this meant that out of 4GB only 3¼ to 3½ GB was available, even if you did not use a modern GPU with a lot of onboard RAM.
You need to turn Memory Remapping ON in the BIOS. Otherwise, it won't remap memory above the 4GB boundary and some memory will be covered up by hardware mappings.
Your missing RAM is used by the firmware:
# ./smem -R 4G -w
Area Used Cache Noncache
firmware/hardware 843592 0 843592
kernel image 0 0 0
kernel dynamic memory 181116 134616 46500
userspace memory 287784 19736 268048
free memory 2881812 2881812 0
Summing up:
echo $((181116 + 287784 + 2881812 + 843592))
4194304
So you see, it sums up to 4GB. And here's the ~ 800M you report missing:
firmware/hardware 843592 0 843592