单片机汇编语言程序每段程序名(即标号)的命名是有规则约束的:
1、不能是与汇编语言中的关键字同名,比如MOV、ADD、Ac、DB,DW,END等等;
2、标号的第一个字符必须是字母,一般由字符、数字和下划线组成;
3、标号长度不能超过8个字符;
4、标号就以“:”结束。
当然可以。
但是要按照相关规则来命名。
也不要用汇编语言的关键字。
可以。
System.out.println("Singleton is create");
name="SerSingleton";
每一行8051汇编程序可以分成四大部分,分别是:
[名字] [助记符] [操作数] [注释]
START: MOV A,#12H ;ACC=12H
名字是由一连串的英文字母或数字组成,最多可以有32个字母,但不能包含“#”等符号,但是下划线“_”是可以的,另外名字的第一个字母不可以是数字。
ASM51又把名字分成两种:SYMBOL(变量)和LABEL(标签),两者的中文名称几乎一样,但在ASM51上还是有差别的。
SYMBOL(变量)
是某个常数的定义或声明,通常SYMBOL(变量)会放在程序的最前面,且SYMBOL(变量)最后不需要加上冒号。
LABEL(标签)
标号是一个地址值,经过ASM51编译后就会被确定下来,每个LABEL(标签)后一定要加上冒号“:”,否则在编译时会指出错误,但SYMBOL(变量)之后是不要加冒号的。
助记符和操作数加起来就成了单片机8051的指令,名字的名称当然不可以跟助记符相同,否则在编译时就会指出错误。
ASM51对于变量与数值的区分是很严格的。如MOV A,#F3H这行的写法看似无误,意思是把ACC值填入F#H的值。但在编译时ASM51却说不行!这是因为ASM51认为F3H是一个变脸而不是一个值,所以正确的写法是MOV A,#0F3H,数值前面再加上一个数字0就好了,告诉ASM51接下来这个是一个值而不是变量。其他的编译程序在这方面可能比较宽松,不过这方面还是严格一点会比较好。
数字的指定可以是二进制(B)、十进制(D)、十六进制(H)的方式表示,当十六进制的值超过A0H(160D),请记得要改写成0A0H,这样才能让ASM51接受。
以下几种数值的写法对ASM51来说都是正确的:
DEC33 EQU 33 ; 十进制的
HEX33 EQU 33H ; 十六进制的
HEXFA EQU 0FAH ; 十六进制的
BIN33 EQU 00110011B ; 二进制的
MOV A,#33 ; A=33D
MOV A,#33H ; A=33H
MOV A,#001100111B ; A=33H
MOV A,#HEXFA ; A=FAH
注释前一定要加分好“;”才行,ASM51由于版本的关系只能用英文,不过这些程序煮熟通常是写给自己看的,只要自己看的懂,符合文法与否就不是那么重要的了。
————摘自《8051单片机彻底研究__入门篇P101》
这是我自己的笔记,前面4个段落就能介绍了,能给分吗
方便留下qq号交个朋友。