In contrast to most assemblers, the CrossWorks assembler fully understands data types. The most well-known and widely used assembler that uses data typing extensively is Microsoft's MASM and its many clones. If you've used MASM, you should be comfortable with the concept of data types in an assembler and with the CrossWorks implementation of data typing.

If you haven't used MASM, you may wonder why data typing should be put into an assembler, given that many assembly programs are written without the help of data types. But there are many good reasons to do so, even without the precedent set by Microsoft, and the two most valuable benefits are:

We don't expect you to fully appreciate the usefulness of assembly-level data typing until you use it in an application and gain first-hand experience of both the benefits mentioned above. Of course, it's still possible to write (almost) typeless assembly code using the CrossWorks assembler, if you should wish to do so, but effective use of data typing is a real programmer aid when writing code. Lastly, we should mention another important benefit data typing brings: the interaction between properly typed assembly code and the debugger. If you correctly type your data, the debugger will present the values held in memory, using a format based on the type of the object rather than as a string of hexadecimal bytes. Having source-level debugging information displayed in a human-readable format is another way to improve productivity.