The words in the stack are 256-bit, therefore 32 bytes in hexadecimal representation. The Ethereum Yellow Paper states “the stack as a size of 1024”, although it does not say what (bits/words). A smart contract analysis tool, Rattle, states there can not be more than 32 elements in the stack , so I am assuming the answer to the question of how many words of 256-bit can there be at the execution stack of the EVM is 32. Is this right? Also, what can anybody tell me about the memory? The MLOAD and MSTORE opcodes only take one element from the stack to indicate the memory position. So the memory can only expand till 2^256 entries?
I'm unsure what Rattle was referring to. Do you have a link or a reference to their exact phrasing? If they said exactly "32 elements in the stack", then that's incorrect. The stack has a maximum size of 1024 entries, where each entry is 32 bytes.
Yes, the memory has a maximum side of 2^256 entries, where each entry is a byte, which is far more memory than you'd ever need.