大于9FFFh的十六进制数据A000H、A001H...FFFEH、FFFFH等,在书写的时候都是以字母开头的。而在汇编程序中,数据不能以字母开头,都要在前面加0。
原因:ANSI C规定标识符必须是有字母或下划线开头,随后跟字母、数字或下划线任意组合而成的字符序列。如果0ffffh不加0就是ffffh,若是不小心定义了一个标识符ffffh(这并不违反标识符定义规则,所以是合法的),这时候编译系统就会不清楚到底是将ffffh作为标识符处理,还是作为数字ffffh处理,这就会导致出错。即使加了h也不容易区分,因为h也是字符。
原因:ANSI C规定标识符必须是有字母或下划线开头,随后跟字母、数字或下划线任意组合而成的字符序列。如果0ffffh不加0就是ffffh,若是不小心定义了一个标识符ffffh(这并不违反标识符定义规则,所以是合法的),这时候编译系统就会不清楚到底是将ffffh作为标识符处理,还是作为数字ffffh处理,这就会导致出错。即使加了h也不容易区分,因为h也是字符。
所以,为了区分标识符和数字,规定所有数字都不能以字母开头。
原文地址:点击打开链接