汇编语言是用助记符、字符串和数字等来表示指令的程序语言。它与机器语言指令是一一对应的。根据机器码的字节数区分,MCS-51系列单片机汇编语言指令系统有42种助记符。
汇编语言指令系统的书写格式一般为:
[标号:]操作码 [操作数1][,操作数2][,操作数3][;注释]
其中,[]号内为可选项。各部分之间必须用分隔符隔开。
标号:用符号表示的该条指令的首地址,根据需要设置。位于一条指令(语句)的开头,以冒号结束。它以英文字母开头,由字母、数字、下划线等组成。标号字段和操作码字段间要用“:”相隔。
操作码:操作码规定指令实现何种功能(如传送、加、减等)。它是由助记符表示的字符串,是任一指令语句不可缺少的部分,是汇编软件生成目标代码的依据。
例如,指令可用助记符表示为INC A,这是英文单词Increase的缩写,于是就很容易可以理解这条指令的功能是累加器A加1。
操作数:在汇编语言中,操作数可以是被传送的数(立即数),或数在内部RAM中的地址、寄存器、转移的指令地址、标号名、表达式等。可以采用字母、字符和数字等多种表示形式。操作数个数因指令的不同而不同,多至3个操作数,各操作数之间要用“,”号分开。通常目标操作数写在左边,源操作数写在右边。
注释:为便于阅读而对指令附加的说明语句。必须以“;”开始。可以采用字母、数字和汉字等多种表示形式。
按指令长度的编码格式如下列描述:(www.xing528.com)
1)单字节指令编码格式
①8位编码仅为操作码,指令的操作数隐含在其中。
例如:DEC A的指令编码为14H,功能是累加器的内容减1。
②8位编码含有操作码(高5位)和寄存器编码(低3位)。
例如:INC R1的指令编码为09H,是寄存器内容加1的操作码,其中高5位opcode=00001B,低3位rrr=001B是寄存器R1对应的编码。
2)双字节指令的第一字节为操作码,第二字节为参与操作的数据或存放数据的地址。
例如:MOV A,#60H的指令代码为7460H,是将立即数传送到累加器A功能的操作码,其中高8位字节opcode=74H,低8位字节data=60H是对应的立即数。
3)三字节指令的第一字节为操作码,后两字节为参与操作的数据或存放数据的地址。
例如:MOV 10H,#60H的指令代码为751060H,是将立即数传送到直接地址单元功能的操作码,其中最高8位字节opcode=75H,次8位字节direct=10H是目标操作数对应的存放地址,最低8位字节data=60H是对应的立即数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。