第第二二章章::MMCCSS--5511单单片片机机指指令令系系统统22..11::MMCCSS--5511指指令令系系统统的的概概述述MMCCSS--5511共共有有111111条条指指令令,,指指令令的的长长度度和和执执行行时时间间因因不不同同的的指指令令而而各各不不相相同同。。22..11..11指指令令格格式式22..11..22指指令令的的三三种种表表示示形形式式22..11..33指指令令的的字字节节数数22..11..44指指令令的的分分类类22..11..11指指令令格格式式::指指令令格格式式::既既指指令令的的结结构构形形式式。。22..11..22指指令令的的三三种种表表示示形形式式::指指令令的的表表示示形形式式是是识识别别指指令令的的标标志志。。11,,二二进进制制的的表表示示形形式式::((以以““累累加加器器的的内内容容++0088HH””为为例例))0000110000110000BB操操作作码码OOPP((加加法法))0000000011000000BB操操作作数数DDAATTAA((0088HH))特特点点::能能被被CCPPUU直直接接识识别别、、运运行行的的形形式式。。也也称称机机器器码码、、汇汇编编语语言言的的目目标标代代码码。。缺缺点点::不不便便于于阅阅读读、、记记忆忆和和调调试试修修改改。。22,,十十六六进进制制表表示示方方式式::它它是是对对二二进进制制形形式式的的一一种种简简化化。。0000110000110000BB2244HH0000000011000000BB0088HH在在实实验验室室等等少少数数环环境境下下,,可可以以将将这这种种形形式式作作为为输输入入程程序序的的一一种种辅辅助助手手段段。。但但是是,,这这种种形形式式的的指指令令格格式式必必须须由由对对应应的的监监控控程程序序把把它它们们翻翻译译成成二二进进制制的的““机机器器码码””后后存存入入程程序序存存储储器器并并运运行行。。33,,指指令令的的““助助记记符符””方方式式((也也称称““汇汇编编格格式式””))::0000110000110000BB2244HH0000000011000000BB0088HHAADDDDAA,,##0088HH11,,这这是是一一种种由由英英文文单单词词或或字字母母、、数数字字来来表表征征指指令令功功能能的的形形式式。。是是一一种种便便于于阅阅读读、、书书写写和和交交流流的的表表示示形形式式。。22,,这这种种““汇汇编编””格格式式的的指指令令必必须须把把它它““翻翻译译””为为二二进进制制形形式式““机机器器码码””后后才才能能为为CCPPUU所所识识别别和和执执行行。。33,,三三种种不不同同的的表表示示方方法法适适用用于于不不同同的的场场合合。。本本章章内内容容都都以以汇汇编编的的形形式式介介绍绍指指令令系系统统。。22..11..33指指令令的的字字节节数数在在MMCCSS--5511单单片片机机的的指指令令系系统统中中,,因因指指令令操操作作码码和和操操作作数数的的不不同同,,指指令令((在在存存储储器器中中))长长度度也也各各不不相相同同。。分分为为单单字字节节、、双双字字节节和和三三字字节节。。单单字字节节指指令令((4499条条))::分分无无操操作作数数、、有有操操作作数数两两种种。。无无操操作作数数::如如IINNCCDDPPTTRR1100110000001111BBIINNCCAA0000000000110000BB【【特特点点】】::操操作作数数隐隐含含在在操操作作码码中中。。含含有有操操作作数数寄寄存存器器名名称称的的单单字字节节指指令令::如如::MMOOVVAA,,RR001111110011000000BBMMOOVVAA,,RR111111110011000011BB【【特特点点】】::寄寄存存器器名名以以三三位位数数代代码码的的形形式式在在指指令令的的后后三三位位。。双双字字节节指指令令((4466条条))::指指令令的的操操作作码码和和操操作作数数各各占占一一个个字字节节。。如如::MMOOVVAA,,##ddaattaa0011111100110000BBddaattaa很很明明显显::88位位的的操操作作数数本本身身占占据据一一个个字字节节。。三三字字节节指指令令((1166条条))::指指令令中中的的操操作作数数为为双双字字节节。。如如::MMOOVVDDPPTTRR,,##ddaattaa116611000011000000BB,,ddaattaa1155--88,,ddaattaa77--00或或者者::指指令令中中分分别别包包含含11个个字字节节的的操操作作数数和和11个个字字节节的的操操作作数数地地址址。。如如::MMOOVVddiirreecctt,,##ddaattaa举举例例::MMOOVV2200HH,,##00FFFFHH指指令令的的字字节节数数与与指指令令的的运运行行时时间间指指令令的的字字节节多多是是否否意意味味着着指指令令周周期期就就长长??22..11..44指指令令的的分分类类MMCCSS--5511单单片片机机的的指指令令如如果果按按功功能能划划分分可可以以分分为为五五类类::11,,数数据据传传送送类类指指令令::完完成成数数据据在在单单片片机机内内部部之之间间的的传传送送。。分分为为88位位数数和和1166位位两两种种。。除除了了奇奇偶偶位位外外,,指指令令的的执执行行对对PPSSWW无无影影响响。。22,,算算术术运运算算指指令令::用用于于操操作作数数之之间间的的加加、、减减、、乘乘除除运运算算。。【【特特点点】】::多多数数情情况况下下::操操作作数数之之一一在在累累加加器器AA中中,,结结果果也也保保留留在在AA中中,,运运算算结结果果要要影影响响PPSSWW((进进位位标标志志、、奇奇偶偶和和溢溢出出标标志志等等))。。33,,逻逻辑辑操操作作和和循循环环移移位位指指令令::操操作作数数之之间间的的逻逻辑辑加加、、逻逻辑辑与与、、取取反反和和异异或或等等操操作作。。多多数数情情况况下下一一个个操操作作数数在在AA中中,,结结果果也也存存于于AA。。移移位位指指令令分分为为左左移移、、右右移移和和带带进进位位和和不不带带进进位位几几种种情情况况。。与与算算术术类类指指令令相相比比逻逻辑辑类类指指令令基基本本不不影影响响PPSSWW的的内内容容。。44,,控控制制转转移移类类指指令令::条条件件转转移移、、无无条条件件转转移移,,调调用用和和返返回回。。【【特特点点】】::通通过过修修改改程程序序指指针针PPCC的的内内容容,,使使CCPPUU转转到到另另一一处处执执行行,,从从而而改改变变程程序序的的流流向向。。55,,位位操操作作指指令令::位位传传送送、、位位置置位位、、位位运运算算和和位位控控制制转转移移等等操操作作。。【【特特点点】】::按按位位操操作作而而不不是是按按字字节节的的操操作作。。位位控控转转移移的的判判断断不不是是检检测测某某一一个个字字节节而而是是对对某某一一个个位位进进行行检检测测并并决决定定是是否否进进行行程程序序转转移移。。这这类类指指令令基基本本不不影影响响PPSSWW的的内内容容。。22..22寻寻址址方方式式在在指指令令的的操操作作数数位位置置上上,,用用于于表表征征、、寻寻找找操操作作数数的的方方式式定定义义为为““寻寻址址方方式式””。。正正确确的的理理解解、、掌掌握握寻寻址址方方式式,,是是学学习习、、使使用用指指令令的的关关键键。。在在MMCCSS--5511单单片片机机中中,,共共使使用用了了七七种种寻寻址址方方式式。。它它们们分分别别是是::11,,寄寄存存器器寻寻址址55,,变变址址寻寻址址;;22,,直直接接寻寻址址66,,相相对对寻寻址址;;33,,立立即即数数寻寻址址77,,位位寻寻址址。。44,,寄寄存存器器间间接接寻寻址址22..22..11寄寄存存器器寻寻址址当当所所需需要要的的操操作作数数在在内内部部某某一一个个寄寄存存器器RRnn中中时时,,将将此此寄寄存存器器名名RRnn直直接接写写在在指指令令的的操操作作数数的的位位置置上上。。如如::MMOOVVAA,,RR77;;将将寄寄存存器器RR77中中的的内内容容送送累累加加器器AA中中。。MMOOVV2200HH,,RR00;;将将寄寄存存器器RR00中中的的数数据据送送内内存存2200HH单单元元IINNCCRR11;;将将寄寄存存器器RR11中中的的内内容容加加一一AADDDDAA,,RR33;;AA的的内内容容与与寄寄存存器器RR33的的内内容容相相加加送送AA寄寄存存器器寻寻址址方方式式的的指指令令大大多多是是单单字字节节指指令令。。指指令令本本身身并并不不带带有有操操数数,,而而是是含含有有存存放放操操作作数数的的寄寄存存器器的的33位位代代码码。。以以MMOOVVAA,,RRnn为为例例,,使使用用RR77寄寄存存器器,,所所以以rrrrrr==111111,,既既指指令令的的机机器器码码为为::00EEFFHH22..22..22直直接接寻寻址址指指令令本本身身含含有有操操作作数数的的88位位或或1166位位地地址址。。既既指指令令直直接接给给出出了了操操作作数数的的地地址址。。如如::MMOOVVAA,,3300HH;;将将RRAAMM3300HH单单元元内内容容送送累累加加器器这这里里3300HH是是操操作作数数在在RRAAMM中中的的地地址址。。很很明明显显,,直直接接寻寻址址的的指指令令长长度度是是两两个个或或三三个个字字节节。。使使用用直直接接寻寻址址应应注注意意的的三三个个问问题题::11,,指指令令助助记记符符中中ddiirreecctt是是用用1166进进制制数数表表示示的的操操作作数数地地址址。。当当地地址址恰恰好好在在SSFFRR区区域域时时,,指指令令也也可可以以用用寄寄存存器器名名来来表表示示。。如如::MMOOVVAA,,8800HH可可以以写写成成MMOOVVAA,,PP00后后者者用用SSFFRR中中寄寄存存器器的的名名字字取取代代它它的的物物理理地地址址8800HH。。很很明明显显,,后后者者更更容容易易阅阅读读和和交交流流,,所所以以我我们们提提倡倡使使用用SSFFRR中中寄寄存存器器名名称称来来代代替替直直接接地地址址。。如如::MMOOVVAA,,SSBBUUFF;;串串口口数数据据缓缓冲冲器器数数据据送送AAMMOOVVIIEE,,##0000HH;;初初始始化化中中断断允允许许寄寄存存器器MMOOVVTTHH11,,##00FFEEHH;;为为定定时时器器11赋赋初初值值尽尽管管使使用用SSFFRR的的寄寄存存器器名名称称来来取取代代直直接接地地址址,,可可以以带带来来程程序序的的可可读读性性,,但但是是在在汇汇编编时时,,仍仍要要将将寄寄存存器器名名字字转转换换为为直直接接地地址址。。22,,当当直直接接地地址址时时在在工工作作寄寄存存器器区区中中时时,,可可以以使使用用两两种种寻寻址址方方式式来来访访问问。。如如::MMOOVVAA,,0000HH;;将将RRAAMM中中0000HH单单元元数数据据送送累累加加器器AAMMOOVVAA,,RR00;;将将工工作作寄寄存存器器RR00的的内内容容送送累累加加器器AA这这里里使使用用了了不不同同的的寻寻址址方方式式,,其其指指令令的的结结构构也也不不相相同同。。前前者者是是::1111110000110011((00EE55HH))、、0000000000000000((0000HH))双双字字节节。。后后者者的的机机器器码码是是::1111110011000000((00EE88HH))单单字字节节;;在在物物理理结结构构上上,,RR00与与RRAA