Let me clear up a common misconception. When most people say writing in code, what they really mean is writing using a cipher. A code is when a symbol, word, or phrase is used to stand for a different word, phrase, or sentence. A cipher is were each letter in a word is represented with a different letter or symbol.
The dash is a punctuation mark that is similar to a hyphen or minus sign, but differs from both of these symbols primarily in length and function.
The en/em refer to the length of the dash by using the letters mentioned as measurement. An en-dash is traditionally as long as the digraph /en/, an em-dash as the digraph /em/. Note that Hyphen and minus sign are different characters altogether. In practical usage much of the differences run together though.