MCS-51单片机指令系统及编程举例
微机原理及应用
对于任何一台计算机,必须有软件(程序)的支持,才能工作。但是市场上所售的单片机是裸机,在使用之前要现对它编程,将程序固化在芯片内,才能使用。指令系统是一种CPU所能直接执行的所有命令的集合,CPU的主要功能是由它的指令系统来体现的。任何计算机语言编写的任何程序,都必须转换为指令系统中相应指令代码的有序集合,CPU才能执行单片机的指令系统是单片机能够识别并执行的所有指令的集合。
3.1指令系统简介每一种CPU都有其独立的指令系统。MCS-51系列单片机指令系统共有111条指令,其中有49条单字节指令,45条双字节指令和17条三字节指令。MCS-51指令系统的功能十分强大,它把体现单片机的各种功能的寄存器组织在统一的地址空间中,MCS-51指令系统在其存储空间、时间的利用率及工作效率方面都是较高的。
1.指令格式MCS-51指令系统中的每一条指令都有两级指令格式:CPU可直接识别并执行的机器语言指令(机器语言)。汇编语言指令(简称汇编指令)。符号说明:见书上.P.34
[标号:]操作码[目的操作数][,源操作数][;注释]
例:LOOP:MOVA,R1;AR1MOVA,R1
INCNOP
A
3.2寻址方式所谓寻址方式就是寻或获得操作数的
方式。指令的一个重要组成部分是操作数。由寻址方式指定参与运算的操作数或操作数所在单元的地址。
立即寻址:操作数直接出现在指令中,可以是8位,也可是16位。该方式寻址中的操作数称为立即数,用“#”表示。例:MOVA,#30H;A30H执行结果:A=30H例:MOVDPTR,#1000H;DPTR1000H执行结果:DPTR=1000H,注意:只有MOVDPTR,#date16指令的立即数为16位,DPTR分为DPH和DPL,在上述例子中,DPH=10H,DPL=00H
直接寻址:操作数的地址直接出现在指令
中。这类寻址方式的操作数只能是存放在内部RAM和SFR中。见.P.23
(1)SFR例:MOVA,P1执行结果:将P1口的内容送到A中。
若P1的内容为78H,执行该指令后,A=78H
(2)内部RAM的低128字节例:MOVA,76H
执行结果:将76H单元的内容送到A中。若(76H)=3FH,执行该指令后,A=3FH注意:若要表示某个单元的内容,将该单元用括号扩起来,如(43H)、(76H)、(R0)等。
寄存器寻址:操作数为寄存器的内容。此处的寄存器指的是工作寄存器R0~R7
、累加器A、通用寄存器B、数据指针寄存器DPTR和位累加器C(即进位位C)。例:MOVA,R0执行结果:将R0的内容送入A中。若R0的内容(R0)=5AH,则A=5AH
寄存器间接寻址:将指定寄存器中的内容
地址对应的内容送入A中。若(R0)=46H,(46H)=2FH,则:
A=((R0))=(46H)=2FH
若(76H)=0FH,(R1)=23H,则:(23H)=0FH
变址寻址:以程序指针PC或数据指针DPTR为基址,以累加器A作为变址,两者
内容相加(即基址+偏移量)形成16位地址。
例:
TABLE:
相对寻址:以PC的当前值为基址,与指令中的第二字节给出的偏移量rel(8位有符号数)相加,所得之和为程序的转移地址。转移范围为+127~-128字节之间。例:SJMP08H;双字节指令分析:若PC=2000H为该条指令的地址,则转移目标地址=2000H+02H+08H=200AH
位寻址:对片内RAM的20H~2FH字节地址中
的所有位和部分SFR的位进行寻址。区分指令中是位地址还是存储器单元地址不太
容易,主要是由另一个操作数来区分。例:SETBE某0;E某01,位寻址
MOVMOVMOV
C,07H;C(07H),位寻址A,20H;A(20H),直接寻址C,20H;C(20H),位寻址
3.3指令系统指令分类:MCS-51指令系统共有111条指令,分成5大类:(1)数据传送类(2)算术运算类(3)逻辑运算类(4)控制程序转移类(5)布尔变量操作(位操作类)
3.4汇编语言程序设计基础用汇编语言编写的源程序
什么是编程举个例子汇编程序
目标程序
汇编语言是一种采用助记符表示的机器语言,即用助记符号来代表指令的操作码和操作数,用标号或符号代表地址、常数或变量。而助记符一般都是英文单词的缩写,因此使用方便。这种用助记符编写的程序称为源程序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论