首页 理论教育MCS-51单片机指令格式解析

MCS-51单片机指令格式解析

【摘要】:由于用二进制代码表示的机器语言指令不便于阅读、理解和记忆,因此在MCS-51指令系统中采用汇编语言指令来编写程序。汇编语言指令最多包含4个部分:[标号:]操作码助记符 [目的操作数] [,源操作数] [;注释]指令的表示方式称为指令格式。MCS-51指令系统具有255种操作码。图3-1汇编语言指令各部分内容示意图为了更好地理解指令格式及后续指令的寻址方式,结合第2章的内容,下面通过一个例子进行说明。

早期单片机的开发主要使用机器语言和汇编语言。由于用二进制代码表示的机器语言指令不便于阅读、理解和记忆,因此在MCS-51指令系统中采用汇编语言指令来编写程序。汇编语言指令通常采用英文名称或缩写方式作为助记符来表示指令的功能和特征。

汇编语言指令最多包含4个部分:

[标号:]操作码助记符 [目的操作数] [,源操作数] [;注释]

指令的表示方式称为指令格式。指令通常由两个组成部分:操作码和操作数。操作码用来规定指令进行什么操作,而操作数则是指令操作的对象,操作数可能是一个具体的数据,也可能是指出到哪里取数据的地址或符号。

每条指令除操作码助记符是必须的外,其他带中括号的是任选项,不是必须的。

1.标号

标号是该指令的符号地址,标号代表该条指令在程序存储器区中的存放地址,其本质是地址的符号化。标号必须是以字母开始,冒号结束。标号的字符个数一般不能超过8个(根据汇编程序版本而定),一旦某个标号赋给了某条指令,其他指令的操作数就可以直接应用该标号,以便寻址或控制程序转移。标号是任选项,不是必须的。

2.操作码助记符

操作码助记符也称为操作码,通常采用英文名称或缩写方式,是每条指令必须有的部分,它决定了语句的操作性质,反映了指令的功能。操作码与操作数之间用空格分开。MCS-51指令系统具有255种操作码(00H~FFH,除A5H外)。

3.操作数

操作数指的是参加操作运算的数据,可以是数字、数据的地址、寄存器等。操作数分为目的操作数和源操作数两种,两者之间用逗号分开。当然,有些操作码可以是无操作数,或一个操作数。

4.注释

注释是以分号开始,汇编时对这部分不予处理,是程序员对指令操作的解释。必须在一行内写完,换行时需要另外以分号开始。注释内容可以为任何字符,不需要每行都加注释,仅在某些关键处注释即可,以便日后对程序的维护,如图3-1所示。(www.chuimin.cn)

图3-1 汇编语言指令各部分内容示意图

为了更好地理解指令格式及后续指令的寻址方式,结合第2章的内容,下面通过一个例子进行说明。CPU要完成一项工作,必须按要求去执行各种操作,逐条取指令并执行之,从而完成预定的任务。

【例3-1】在程序存储器中存放着一个平方表,通过查表,将数据(范围0~F)的平方值直接得到,无需计算。设该数据存放在R0寄存器中的低4位,要求数据的平方值查表后的结果仍然送回R0。

【程序】

为了完成上述功能,编写的汇编程序如上所示。程序编写完成后,用汇编编译器编译无误后,烧写至单片机程序存储器中,单片机上电后即可工作,从而完成上述任务。到此为止,很多单片机初学者可能会问,程序在单片机中的哪个地方?以什么样的一个形式,单片机如何执行的呢?下面结合图3-2来加以介绍。

图3-2 程序在程序存储器区的示意图

如图3-2所示,程序和数据表格已存放在程序存储器中,都是以二进制数的形式存放的。地址0000H~0002H和3000H~3007H对应的程序存储器中存放的是操作码和操作数,规定了CPU执行什么操作;3008H~3017H单元中存放的是0~F数据的平方结果。其中标号SQUARE和SQTAB就是地址3000H和3008H的符号化。单片机从0000H地址开始执行程序,0000H地址开始存放指令代码是023000H,其中02H是操作码表示,操作是长转移,转移地址是3000H,其他指令与机器码的关系将在后续的章节中给出。

了解了指令格式及指令在程序存储器中存放的方式及CPU执行过程,下面进一步学习指令。