谈谈MCS—51单片机指令的记忆方法

🏠 首页 《无线电》杂志 1993年 🔗 第1期 🔗 第29页 分类:无线电技术自学经验交流 🔗 姜双宁 🔗, 张清海 🔗, 仲爱民 🔗

随着科学技术的发展,计算机在工农业生产中获得越来越广泛的应用。价格低、体积小、测控功能强、可靠性高,使各种类型的单片机应用系统开始深入到各个技术领域,学习单片机技术的人员也越来越多,现介绍我们在教学中摸索出的MCS—51单片机指令的快速记忆方法,供单片机初学者参考。

一、助记符号的操作功能记忆方法

MCS—51单片机指令是一种汇编语言,它是由操作码和操作数两部分构成的,操作数代表了指令的操作对象;操作码反映了指令的功能,它是用一些助记符号来表示的。在记忆助记符号的操作功能时可采用下列方法。

1.理解记忆法

操作码助记符是指令功能的英文缩写,如果在学习单片机之前已有一定的英文基础,可对照原英文在理解其意义的基础上进行记忆。

例如:①MOV—Move(送数)

②INC—Increment(加1)

③XCH—Exchange(交换)

④JMP—Jump(跳转)

⑤RL—Rotate left(循环左移)

⑥RR—Rotate right(循环右移)

⑦NOP—No operation(空操作)

⑧LJMP—Long jump(长转移)

所以,只要初学者将助记符和英文原句的意义结合起来,掌握助记符的操作功能是很容易的。

2.分组强化记忆法

如果初学者英文基础尚不够扎实,那么也不一定要专门抽时间补习英语,因为单片机操作码的助记符一共只有44个,并且它们之间有一定的规律性,我们可以将功能相近的编成组,这样记忆就快得多,例如:

送数组:MOV—送数,MOVC—ROM中的数送A,MOVX—A与片外RAM送数。

逻辑运算组:ANL—与, ORL—或,XRL—异或。

无条件转移组:LJMP—长转移,AJMP—短转移,SJMP—相对转移。

上述两种方法非常适合于初学者使用,如果将两种方法综合运用,记忆速度更快。

二、指令的记忆方法

记忆助记符号是掌握指令的基础,但仅仅记住了助记符还不能编写一般的操作软件,因为在汇编语言中,目的操作数和源操作数是不能任意组合的,不同功能的指令,操作对象的形式不同。例如,在加法运算中,可用一条指令将(R\(_{n}\))和(A)相加并将结果送A(ADD A,Rn),而不存在一条将(R\(_{n}\))和(A)相加送Rn的指令。

在记忆指令的过程中,首先将111条指令按数据传送(28条)、算术运算(24条)、逻辑处理(25条)、控制转移(17条)、布尔操作(17条)分为5大类,然后再辅助下列一些方法。

1.图示法

图示法是将操作功能相同,但操作对象不同的指令归纳在一起,用图形形象表示的一种记忆方法,经试验证实,其速度比常规记忆要快3~4倍,例如MOV指令在片内存储器的操作共有15条,查表指令一共有2条,累加器A与片外RAM送数共有4条,只要记住了附图,即可掌握上述21条指令。

图1
图1 🔍原图 (741×216)

2.替换法

替换法是将操作数相同而操作码不同的指令归纳集中在一起进行记忆的方法,这种方法的优点是只要记住其中的几条,其余的也就全记住了。例如,加法、带进位加法、带借位减法各有4条指令,但其操作数有一一对应关系,12条指令可写在一起为:

ADD/ADDC/SUBB A,R\(_{n}\)

ADD/ADDC/SUBB A,direct

ADD/ADDC/SUBB A,@R\(_{i}\)

ADD/ADDC/SUBB A,#data

其它如与、或、异或(ANL、ORL、XRL),乘、除(MUL、DIV),加1、减1(INC、DEC)等指令都可采用上述方法,这里就不一一列举了。

3.口诀法

有一些指令操作过程比较复杂,可采用口诀记忆的方法,我们在这里举了一个简单的例子。

JZ,rel;A=0 (PC)+2+rel→(PC)

A≠0 (PC)+2→(PC)

上述指令可编成:“JZ rel;A零(A等于0),(PC)加2加地址<相对地址>,A非(A不等于0),(PC)加2再运行”,这样记起来就好多了。

口诀可在理解原义的基础上自己编写,不一定要去推敲用词的准确性和科学性,因为它只是辅助的记忆用词而不是书面的表达形式。

4.单独记忆法

对某些特殊的、共性不多的指令,可单独归类进行记忆,例如十进制调整指令DA A,十六进制数据传送指令MOV DPTR,#data16,这种类别的指令不多,应单独去记。

5.例题记忆法

在学习MCS—51单片机指令系统时,教科书上一般都配有一定的例题,选用比较典型的,对理解指令有帮助的例题记忆,不仅可强化记忆效果,而且懂得了多条指令的综合运用。我们在教学中就让学生有针对性地记过几道典型的例题,后来他们对所见到的几条指令印象特别深,用起来非常自如。限于篇幅,我们也就不一一介绍了。

指令系统是熟悉单片机功能、合理应用单片机的必要软件基础。学习指令系统还必须与单片机的CPU结构,存储空间的分布,I/O端口的分布结合起来,运用上述的记忆方法,并结合实际问题多作程序分析和简单程序设计,初学者就完全可以在较短的时间内达到较好的学习效果。 (仲爱民 姜双宁 张清海)