Why the number of adresses stored on RAM is equal to $2^x$ when has "x" adress lines?
$2^{20}$ "data" is rather a vague value. If you have 20 bits for address lines you can possibly have $2^{20}$ combinations. If each address line represent 1 bit of data then you've got  total $2^{20}$ bits of data to store in a memory. However most machines store 1 byte of data for every address combination giving you $2^{20}$ bytes or $1$ MB