No. Potentially any byte of main memory can hold part of a program or part of some data.
|kilobyte:||210 = 1024 bytes|
|megabyte:||220 = 1024 kilobytes|
|gigabyte:||230 = 1024 megabytes|
|terabyte:||240 = 1024 gigabytes|
In practice, data and instructions are often placed in different sections of memory, but this is a matter of software organization, not a hardware requirement. Also, most computers have special sections of memory that permanently hold programs (firmware stored in ROM), and other sections that are permanently used for special purposes.
Main memory (also called main storage, or just memory) holds the bit patterns of machine instructions and the bit patterns of data. Memory chips and the electronics that controls them are concerned only with saving bit patterns and returning them when requested. No distinction is made between bit patterns that are intended as instructions and bit patterns that are intended as data. The amount of memory on a system is often described using the terms in the table.
These days the amount of main memory in a new desktop computer ranges from 8 gigabytes to 32 gigabytes. Hard disks and other secondary storage devices hold several terabytes.
What is (on most computers) the smallest addressable unit of memory?