Hello!
This is my first post here!
You don't register the tokens, you register your ethereum address. In order to register you must first generate a public EOS key and a private EOS key. These keys together are referrred to a a key pair. This key pair will be used on the native EOS platform when it launches. To register your ethereum address you must call the 'register' function of the smart contract by making a transaction from your ethereum address, giving your generated EOS public key. This information is stored on the ethereum blockchain, linking your ethereum address with your EOS public key. In June the EOS ERC-20 tokens will be frozen (making them non-transferable), and a snapshot will be taken. The snapshot essentially records the distribution of the tokens associated with ethereum addresses. The genesis block of the EOS platform will be created using the snapshot, allocating EOS tokens to the registered public EOS keys. Your private EOS key is all you need to acces your tokens which are allocated to your public key.
Here's a guide on how to register: https://steemit.com/eos/@sandwich/how-to-update-the-eos-public-key-mapped-registered-to-your-ethereum-wallet-with-myetherwallet-mew
Registration does not affect your EOS tokens - they can still be transferred/sold. The idea is that the ERC-20 tokens will automatically be frozen at the end of distribution in June 2018. When this happens, your tokens should be in an ethereum address which is registered. You can add and remove tokens from a registered address before then without affecting the registration. It's also possible to change registered keys any time before the end, simply by registering the address again. The most recent registration transaction for an address is the one which will count.
There are aspects which I've not covered here, such as the fallback plan for addresses which are not registered. If you need more information about any aspect feel free to ask.
[deleted]