The "No Memory" beep code... is there for when the board or CPU does not properly detect available RAM.
That can happen when your DIMMs are not seated properly, or if the module has failed.
All x86 compatible CPUs (AFAIK) still have the 640K Base (Acutally 1Meg Base) because they all start in
"real" mode, which is a limited running mode based on the legacy of the old 8086 CPUs. In real mode,
the CPU gives the first 640K of system memory to the OS and programs, and reserves another 384K for
itself. As old operating system became better, they could take advantage of parts of that reserved space;
called the High-memory area (HMA). There were ways to use more memory, but they usually involved
tricking the CPU into swapping sections of higher memory in and out of the HMA.
After the 80386 was introduced(1), CPUs could switch to "protected" mode, which gave them the ability
to directly address memory above the first Megabyte of RAM.
(1) Technically the 80286 could switch into protected mode, but it was not designed to switch back out
to real mode when it needed to.