#define pop_x pop.w\r
        #define mov_x mov.w\r
        #define cmp_x cmp.w\r
-#else /* DATA_MODEL_SMALL__ */\r
+#endif\r
+\r
+#ifdef __DATA_MODEL_MEDIUM__\r
+       #define pushm_x pushm.a\r
+       #define popm_x popm.a\r
+       #define push_x pushx.a\r
+       #define pop_x popx.a\r
+       #define mov_x mov.w\r
+       #define cmp_x cmp.w\r
+#endif\r
+\r
+#ifdef __DATA_MODEL_LARGE__\r
        #define pushm_x pushm.a\r
        #define popm_x popm.a\r
        #define push_x pushx.a\r
        #define pop_x popx.a\r
        #define mov_x movx.a\r
        #define cmp_x cmpx.a\r
-#endif /* __DATA_MODEL_SMALL__\r
+#endif\r
+\r
+#ifndef pushm_x\r
+       #error The assembler options must define one of the following symbols: __DATA_MODEL_SMALL__, __DATA_MODEL_MEDIUM__, or __DATA_MODEL_LARGE__\r
+#endif\r
 \r
 #endif /* DATA_MODEL_H */\r
 \r