Embora cada tipo de memória seja diferente em sua operação interna, na arquitetura x86, certos princípios básicos de operação são os mesmos para todos os sistemas de memória.
No projeto, todo sistema de memória requer diversos tipos diferentes de linhas de entrada e de saída para realizar suas funções.
Para selecionar o endereço na memória que será acessado por uma operação de leitura ou de escrita devemos conhecer um pouco mais sobre as entradas seletoras de endereço, pois o número binário que chega nessas linhas indicará a posição de memória onde será executada a operação de leitura e gravação.
A quantidade de entradas de endereço ou linhas de endereço que uma memória deve ter depende de sua capacidade interna. Por exemplo, se ela tem a capacidade de armazenar 1024 bytes ela deverá ter 10 linhas de endereço, pois 2^10 = 1024, sendo que A0, A1,... A9 assumem valores de 0000000000b a 1111111111b. Uma memória de 512MB, por exemplo, deve ter 29 linhas ou entradas de endereço, pois 512MB = 512*1024*1024 bytes = 536870912 bytes e 2^29 = 536870912, sendo A0, A1, A2,... A28.


A fórmula geral fica 2^N=X bytes. O programa calcula instantaneamente o valor de N e mostra o resultado. Nesta versão basta entrar primeiramente com a capacidade total da memória na pilha operacional e pressionar o botão correspondente ao programa no diretório da calculadora.
