单片机指令系统.ppt

上传人:wuy****n92 文档编号:86878396 上传时间:2023-04-15 格式:PPT 页数:57 大小:217KB
返回 下载 相关 举报
单片机指令系统.ppt_第1页
第1页 / 共57页
单片机指令系统.ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《单片机指令系统.ppt》由会员分享,可在线阅读,更多相关《单片机指令系统.ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1单片机的指令系统单片机的指令系统.概述概述.指令格式指令格式.寻址方式寻址方式.指令说明指令说明.单片机的指令单片机的指令试验:用单片机点亮发光二极管试验:用单片机点亮发光二极管LEDn n以以P1.0P1.0引脚为引脚为例:例:n nP1.0P1.0脚高电平时,脚高电平时,LEDLED不亮,不亮,P1.0P1.0脚低电平脚低电平时,时,LEDLED发亮。可见,控制发亮。可见,控制P1.0 P1.0 的电平即的电平即可。可。让让 P1.0P1.0为高电平的命令:为高电平的命令:SETB P1.0SETB P1.0 (把口(把口 P1 P1 的第的第“0”0”位置为高电平)位置为高电平)让让

2、P1.0P1.0为低电平的命令:为低电平的命令:CLR P1.0CLR P1.0u 指令指令 所有的软件,都要翻译成计算机能直接所有的软件,都要翻译成计算机能直接识别和执行的命令才能由计算机去执行。识别和执行的命令才能由计算机去执行。计算机能直接识别和执行的命令称为指计算机能直接识别和执行的命令称为指令。令。一台计算机所能执行的全部指令的集合一台计算机所能执行的全部指令的集合称为这台计算机的指令系统。称为这台计算机的指令系统。由指令码组成的程序称为指令程序。由指令码组成的程序称为指令程序。n n助记符助记符 指令本身是二进制代码,记忆困难。指令本身是二进制代码,记忆困难。如如:10加加20 0

3、1110100;把把10放在累加器放在累加器A中;中;00001010 00100100;A加加20,结果仍在,结果仍在A中;中;00010100 为了方便记忆,可采用指令助记符为了方便记忆,可采用指令助记符:MOV MOV A,#0AH A,#0AH ADD ADD A,#14H A,#14H返回返回6.指令格式指令格式方括号方括号方括号方括号 表示该项是可选项,可有可无。表示该项是可选项,可有可无。标标标标号号号号 用用户户设设定定的的符符号号,代代表表该该指指令令所所在在的的地地址。址。标标号号由由1-81-8个个字字符符组组成成,以以字字母母开开头头,其其后后跟跟字字母母、数数字字或或

4、其其他他特特定定字字符符,并并以以以以“:”:”:”:”与与与与操操操操作码间隔作码间隔作码间隔作码间隔。:;7操操操操作作作作码码码码 用用英英文文(或或缩缩写写)表表示示的的指指令令功功能能助助记记符符。它它确确定定了了CPUCPU运运行行本本条条指指令令完完成成什什么么样的操作功能。样的操作功能。如:如:ADD ADD表示加法操作。表示加法操作。注注注注释释释释部部部部分分分分 为为了了增增加加程程序序的的可可读读性性,用用户户拟拟写写的的对对指指令令或或程程序序功功能能的的说说明明,不不被被编编译译。它它与与操作码或操作数之间操作码或操作数之间以分号以分号以分号以分号“;”;”;”;”

5、间隔。间隔。间隔。间隔。:;8操操作作数数 为为指指令令操操作作提提供供数数据据,它它与与操操作作码码之之间必须以间必须以空格空格空格空格分隔。分隔。在在一一条条语语句句中中,若若有有多多个个操操作作数数,各各操操作作数数之之间间用逗号用逗号用逗号用逗号“,”,”,”,”分隔分隔分隔分隔。:;如:如:LOOP:ADD A,#10H ;作用是作用是 (A)(A)+10H返回返回9l操操作作数数在在指指令令中中直直接接给给出出,作作为为指指令令的的一一部部分分与与操操作作码码一一起起存存放放在在ROMROM内内,取取指指后后即即得得到到操操作作数数本身。本身。l立立即即寻寻址址方方式式主主要要用用

6、来来给给寄寄存存器器或或存存储储单单元元赋赋初初值。值。例如:例如:MOV A,MOV A,#70H#70H ;A 70H;A 70H1.1.立即寻址立即寻址寻址就是寻操作数的寻址就是寻操作数的“地址地址”10u在指令中直接给出操作数的地址在指令中直接给出操作数的地址。u指令的操作数部分直接是操作数的地址指令的操作数部分直接是操作数的地址,用这个地用这个地址单元的内容作为操作数参加运算或指令的操作。址单元的内容作为操作数参加运算或指令的操作。例如例如:MOV A,3AH其中其中3AH表示直接地址表示直接地址,即内部即内部RAM的的3A单元。单元。2.直接寻址直接寻址11l操操作作数数在在工工作

7、作寄寄存存器器R0R0R7R7、A A、B B、DPTRDPTR中中,指指令码内含有该操作数的工作寄存器地址。令码内含有该操作数的工作寄存器地址。例:例:MOV A,R0 其功能是将寄存器其功能是将寄存器R0的内容传送到累加器的内容传送到累加器A中,中,操作数在操作数在R0中。中。3.3.寄存器寻址寄存器寻址12l寄寄存存器器中中存存放放的的操操作作数数的的地地址址,即即操操作作数数是是通通过过寄存器间接得到的。寄存器间接得到的。l在在寄寄存存器器间间接接寻寻址址方方式式中中,在在寄寄存存器器的的名名称称前前面面加前缀标志加前缀标志“”。例:例:MOV AMOV A,R0R0 指令以指令以R0

8、R0寄存器内容为地址,把该地址单元的内寄存器内容为地址,把该地址单元的内容送到累加器容送到累加器A A。4.4.寄存器间接寻址寄存器间接寻址5 5、变址寻址变址寻址uu以以以以DPTRDPTR作基址寄存器,以累加器作基址寄存器,以累加器作基址寄存器,以累加器作基址寄存器,以累加器A A作变址寄存器,作变址寄存器,作变址寄存器,作变址寄存器,并以两者内容相加形成的并以两者内容相加形成的并以两者内容相加形成的并以两者内容相加形成的1616位地址作为操作数的位地址作为操作数的位地址作为操作数的位地址作为操作数的地址。地址。地址。地址。uu变址寻址方式只能对程序存储器进行寻址。变址寻址方式只能对程序存

9、储器进行寻址。变址寻址方式只能对程序存储器进行寻址。变址寻址方式只能对程序存储器进行寻址。例:例:例:例:MOVCAMOVCA,A+DPTRA+DPTR6 6、相对寻址相对寻址uu以转移指令所在地址为基地址,向前最大可转移以转移指令所在地址为基地址,向前最大可转移以转移指令所在地址为基地址,向前最大可转移以转移指令所在地址为基地址,向前最大可转移(127+127+127+127+转移指令字节数)个单元,向后最大可转转移指令字节数)个单元,向后最大可转转移指令字节数)个单元,向后最大可转转移指令字节数)个单元,向后最大可转移(移(移(移(128128128128转移指令字节数)个单元。转移指令字

10、节数)个单元。转移指令字节数)个单元。转移指令字节数)个单元。uu相对寻址方式的转移指令中,给出了地址偏移量,相对寻址方式的转移指令中,给出了地址偏移量,相对寻址方式的转移指令中,给出了地址偏移量,相对寻址方式的转移指令中,给出了地址偏移量,PCPCPCPC的当前值加上偏移量就构成了转移的目的地址。的当前值加上偏移量就构成了转移的目的地址。的当前值加上偏移量就构成了转移的目的地址。的当前值加上偏移量就构成了转移的目的地址。uuPCPCPCPC当前值是指执行完该转移指令后的下一条指令当前值是指执行完该转移指令后的下一条指令当前值是指执行完该转移指令后的下一条指令当前值是指执行完该转移指令后的下一

11、条指令的地,的地,的地,的地,偏移量偏移量偏移量偏移量relrel是一个带符号的是一个带符号的是一个带符号的是一个带符号的8 8位二进制补码位二进制补码位二进制补码位二进制补码数数数数。7 7、位寻址位寻址位寻址方式的操作数是位寻址方式的操作数是位寻址方式的操作数是位寻址方式的操作数是8 8位二进制数中的某一位。位二进制数中的某一位。位二进制数中的某一位。位二进制数中的某一位。在指令中给出位地址在指令中给出位地址在指令中给出位地址在指令中给出位地址,即给出是哪个内部即给出是哪个内部即给出是哪个内部即给出是哪个内部RAMRAM单元单元单元单元的哪一位。的哪一位。的哪一位。的哪一位。位地址在指令中

12、用位地址在指令中用位地址在指令中用位地址在指令中用bitbit表示。表示。表示。表示。归纳归纳归纳归纳:pp寄存器寻址寄存器寻址 MOV A,R1 MOV A,R1 将将R1R1中的数值赋予中的数值赋予A App直接寻址直接寻址 MOV A,3AH MOV A,3AH 将地址将地址3AH3AH中的数值赋予中的数值赋予A App立即寻址立即寻址 MOV A,#3AH MOV A,#3AH 将将3AH3AH数值赋予数值赋予A App寄存器间址寄存器间址 MOV A,Ri MOV A,Ri 将将 RiRi中地址的数值赋予中地址的数值赋予A,A,RiRi或是或是R0R0或是或是R1R1pp变址寻址变址

13、寻址 MOVC A,A+DPTR MOVC A,A+DPTR 以以A A中的数值为地址偏移量中的数值为地址偏移量进行查表;变址寻址区是程序存储器进行查表;变址寻址区是程序存储器ROMROM,而不是数据存储,而不是数据存储器器RAMRAMpp相对寻址相对寻址 AJMP MAIN AJMP MAIN 跳转到行号为跳转到行号为MAINMAIN处处pp位寻址位寻址 MOV C,7FH MOV C,7FH 将位地址将位地址7FH7FH的数值赋予的数值赋予C C .指令说明指令说明(1 1 1 1)Rn Rn Rn Rn 工作寄存器工作寄存器工作寄存器工作寄存器(2 2 2 2)间接寻址寄存器的前缀标志间

14、接寻址寄存器的前缀标志间接寻址寄存器的前缀标志间接寻址寄存器的前缀标志 Ri Ri Ri Ri 表示寄表示寄表示寄表示寄存器间接寻址。存器间接寻址。存器间接寻址。存器间接寻址。DPTRDPTRDPTRDPTR 表示数据指针间接寻址。表示数据指针间接寻址。表示数据指针间接寻址。表示数据指针间接寻址。(3 3 3 3)#立即寻址的前缀标志立即寻址的前缀标志立即寻址的前缀标志立即寻址的前缀标志#data#data#data#data 表示表示表示表示8 8 8 8位立即数。位立即数。位立即数。位立即数。#data16#data16#data16#data16 表示表示表示表示16161616位立位立

15、位立位立即数。即数。即数。即数。(4 4 4 4)direct direct direct direct 直接地址直接地址直接地址直接地址(5 5 5 5)bit bit bit bit 位地址位地址位地址位地址(6 6 6 6)/对对对对指定位的内容取反指定位的内容取反指定位的内容取反指定位的内容取反返回返回18 数据传送类指令数据传送类指令 逻辑运算类指令逻辑运算类指令 位操作类指令位操作类指令 算术运算类指令算术运算类指令 控制转移类指令控制转移类指令 单片机指令单片机指令 数据传送指令的作用是将数据从一个地数据传送指令的作用是将数据从一个地方传送到另一个地方,是单片机指令中用的方传送到

16、另一个地方,是单片机指令中用的非常多的一类指令。非常多的一类指令。数据传送指令是对存储单元进行操作。数据传送指令是对存储单元进行操作。.数据传送类指令数据传送类指令20(1)以累加器以累加器A为目的寄存器为目的寄存器MOV A,Rn ;把把Rn中内容送到累加器中内容送到累加器A中中MOV A,Ri ;把把Ri所指向的单元中的内容所指向的单元中的内容 送到送到A中中MOV A,direct ;(direct)AMOV A,#data ;#dataA1、片内数据传送指令片内数据传送指令(2)以)以Rn为目的操作数为目的操作数MOVRnMOVRn,AA;ARnARn,n=0n=07 7MOVRnMO

17、VRn,directdirect;(;(;(;(directdirect)RnRnMOVRnMOVRn,#data#data;#dataRn#dataRn,n=0n=07 7(3)以直接地址为目的操作数)以直接地址为目的操作数MOVdirectMOVdirect,AA;AdirectAdirectMOVdirectMOVdirect,RnRn;RndirectRndirect,MOVdirect1MOVdirect1,direct2direct2;(;(;(;(direct2direct2)direct1direct1MOVdirectMOVdirect,RiRi;(;(;(;(RiRi)di

18、rectdirectMOVdirectMOVdirect,#data#data;#datadirect#datadirect(4)以寄存器间接地址为目的操作数)以寄存器间接地址为目的操作数MOVRiMOVRi,AA;AA(RiRi),),),),i=0i=0,1 1MOVRiMOVRi,directdirect;(;(;(;(directdirect)(RiRi)MOVRiMOVRi,#data#data;#data#data(RiRi)习题习题:设片内设片内RAM(23H)=10H,(10H)=34H,R0=00H,执行完以下每条,执行完以下每条指令后指令后A,R0中内容分别是什么?中内容分

19、别是什么?MOVAMOVA,#50H#50H;A=50HA=50HMOVR0MOVR0,#23H#23H;R0=23HR0=23HMOVR0MOVR0,AA;(23H23H)=50H=50HMOVR0MOVR0,10H10H;(23H23H)=34H=34H25(5)以直接地址为目的操作数以直接地址为目的操作数MOVdirect,A;directAMOVdirect,Rn;directRnMOVdirect2,direct1;direct2(direct1)MOVdirect,Ri;direct(Ri)MOVdirect,data;directdata功功功功能能能能:把把把把指指指指定定定定

20、内内内内容容容容送送送送入入入入由由由由直直直直接接接接地地地地址址址址指指指指出出出出的的的的存存存存储储储储单单单单元元元元中。中。中。中。(6)数据交换)数据交换XCHA,RnXCHA,Rn;ARn;ARnXCHA,directXCHA,direct;Adirect;AdirectXCHA,RiXCHA,Ri;A(Ri);A(Ri)XCHDA,RiXCHDA,Ri;ACC30;ACC30(Ri30)(Ri30)SWAPASWAPA;累加器累加器累加器累加器A A高、低高、低高、低高、低4 4位互换位互换位互换位互换2、片外片外RAM数据传送数据传送(1 1)读片外)读片外)读片外)读片外

21、RAMRAM指令指令指令指令MOVXAMOVXA,DPTRDPTR;AA(DPTRDPTR)MOVXAMOVXA,RiRi;AA(RiRi)执行读指令时执行读指令时执行读指令时执行读指令时=0=0(2 2)写片外)写片外)写片外)写片外RAMRAM指令指令指令指令MOVXDPTRMOVXDPTR,AA;AA(DPTRDPTR)MOVXRiMOVXRi,AA;AA(RiRi)执行写指令时执行写指令时执行写指令时执行写指令时=0=0 28.逻辑运算类指令逻辑运算类指令l功功功功能能能能:对对操操作作数数按按位位进进行行“与与”、“或或”、“异异或或”等等逻逻辑辑运运算算,以以及及累累加加器器的的取

22、取反反、清清零零、移位移位等操作,执行结果存放于目的操作数。等操作,执行结果存放于目的操作数。29逻辑与逻辑与 ANLAANLA,RnRn;AAAA RnRnANLAANLA,directdirect;AAAA (directdirect)ANLAANLA,RiRi;AAAA (RiRi)ANLAANLA,#data#data;AAAA datadataANLdirectANLdirect,AA;(;(;(;(directdirect)(directdirect)A AANLdirectANLdirect,#data#data;(;(;(;(directdirect)(directdirect

23、 datadata30【习题习题】欲将欲将A=77H A=77H 的第的第0 0、2 2、5 5位屏蔽,应执行什么指位屏蔽,应执行什么指令令?0 1 1 1 0 1 1 1 B 0 1 1 1 0 1 1 1 B 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 0 B B 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 0 B B 逻辑逻辑“与与”指令常用于屏蔽字节中某些位:指令常用于屏蔽字节中某些位:l 欲清除某位,用欲清除某位,用“0”0”和该位相与和该位相与l 欲保留某位,用欲保留某位,用“1”1”和该位相与和该位相与 ANL A,#DAH 31逻辑或逻辑或 OR

24、LAORLA,RnRn;AAAA RnRnORLAORLA,directdirect;AAAA (directdirect)ORLAORLA,RiRi;AAAA (RiRi)ORLAORLA,#data#data;AAAA datadataORLdirectORLdirect,AA;(;(;(;(directdirect)(directdirect)A AORLdirectORLdirect,#data#data;(;(;(;(directdirect)(directdirect)datadata32【例例】假假设设A A=B5HB5H,P1 P1=6AH6AH,若若欲欲据据累累加加器器A A

25、的的4-04-0位位状状态态 控控制制P1P1口口的的4-04-0位位状状态态,P1P1口口高高3 3位位不不变变,执执行行什么指令什么指令?ANL A,#00011111BANL A,#00011111B ;屏蔽A的高3位 ANL P1,#11100000BANL P1,#11100000B ;保留P1的高3位 ORL P1,AORL P1,A 逻辑或指令可使某个存储单元或累加器逻辑或指令可使某个存储单元或累加器A A中的数据中的数据某些位变为某些位变为“1”1”而其他位不变。而其他位不变。l 欲置欲置1 1的位,用的位,用“1”1”与该位相或与该位相或l 欲保留的位,用欲保留的位,用“0”

26、0”与该位相或与该位相或33逻辑非逻辑非 和和 累加器累加器A A清零清零 指令指令 逻辑非指令逻辑非指令 CPL A ;A 注:逻辑非指令仅用于累加器注:逻辑非指令仅用于累加器 A。累加器累加器A清零指令清零指令 CLR A ;A 0 34逻辑异或逻辑异或 35【习题习题】已知已知 A=10110101BA=10110101B,执行下列指令:执行下列指令:XRL XRL A,#F0H A,#F0H ;A;A的高的高4 4位取反,低位取反,低4 4位保留位保留 MOV 30H,A MOV 30H,A ;(30H)A;(30H)A XRL XRL A,30H A,30H ;结果为结果为?A=00

27、HA=00H 逻辑异或指令可使某个存储单元或累加器逻辑异或指令可使某个存储单元或累加器A A中的数据某些位中的数据某些位变为反而其他位不变。变为反而其他位不变。l 欲使某位取反欲使某位取反,该位与该位与“1”“1”相异或相异或l 欲使某位保留欲使某位保留,该位与该位与“0”“0”相异或相异或 移位指令移位指令 RLA;RRA;RLCA;RRCA;ACC.7 ACC.0ACC.7 ACC.0ACC.7 ACC.0CYACC.7 ACC.0CY返回返回37加法类指令加法类指令l不带进位位的加法指令不带进位位的加法指令 ADDA,Rn;AA+RnADD A,direct ;A A+directADD

28、A,#data;AA+data功功能能:把把源源地地址址所所指指示示的的操操作作数数和和累累加加器器A A中中操操作作数相加,并把两数之和存放在累加器数相加,并把两数之和存放在累加器A A中。中。.算术运算类指令算术运算类指令38ADD A,R0结果:结果:A=1011 0100B=B4H 0 1 0 0 1 0 0 1 B 0 1 1 0 1 0 1 1 B 1 0 1 1 0 1 0 0 B+101【习题习题】设设(A)=49H(A)=49H,(R0)=6BH(R0)=6BH,执行指令:,执行指令:39l带进位位的加法指令带进位位的加法指令 ADDCA,Rn;AA+Rn+CYADDC A,

29、direct ;A A+direct+CYADDCA,Ri;AA+(Ri)+CYADDCA,#data;AA+data+CY功功功功能能能能:在在作作加加法法运运算算时时将将进进位位位位CYCY也也加加进进去去,结结果果也也存存放在放在A A中。常用于作多字节加法运算。中。常用于作多字节加法运算。401.ADDC A,R0 结果:结果:A=85H+30H+1=0B6H,CY=02.ADDC A,31H结果:结果:A=85H+0FFH+1=85H,CY=13.ADDC A,R0 结果:结果:A=85H+11H+1=97H,CY=04.ADDC A,#85H 结果:结果:A=85H+85H+1=0

30、BH,CY=1【习习题题】已已知知A=85HA=85H,R0=30HR0=30H,(30H)=11H(30H)=11H,(31H)(31H)=0FFH0FFH 和和 CY=1CY=1,执执行行下下列列指指令令后后累累加器加器A A和和CYCY的值的值为多少为多少?41l加加1指令指令 INCA;AA+1INCRn;RnRn+1INC direct ;(direct)(direct)+1INCRi;(Ri)(Ri)+1INCDPTR;DPTRDPTR+1指指指指令令令令功功功功能能能能:将将二二进进制制数数加加 1 1,用用于于使使源源地地址址所所规规定定的的RAMRAM单元中内容加单元中内容加

31、 1 1。42lBCD码调整指令码调整指令 DADAAA计算机中无专门的计算机中无专门的计算机中无专门的计算机中无专门的BCDBCDBCDBCD加法指令,加法指令,加法指令,加法指令,BCDBCDBCDBCD加法必须通过一条加法必须通过一条加法必须通过一条加法必须通过一条普通加法指令之后紧跟一条普通加法指令之后紧跟一条普通加法指令之后紧跟一条普通加法指令之后紧跟一条BCDBCDBCDBCD码调整指令才能完成。码调整指令才能完成。码调整指令才能完成。码调整指令才能完成。43程序:程序:MOV A,#65H ;A 65 ADD A,#58H ;A (A)+58 DA A ;十进制调整十进制调整【习

32、题习题】对对BCDBCD码加法码加法 65+58=BDH65+58=BDH 进行十进制调整。进行十进制调整。0 1 1 0 0 1 0 1 65 +0 1 0 1 1 0 0 0 58 1 0 1 1 1 1 0 1 BD +0 1 1 0 0 1 1 0 调整调整 1 0 0 1 0 0 0 1 1 44减法类指令减法类指令SUBBA,Rn;AA-Rn-CY SUBBA,direct;AA-direct-CY SUBBA,Ri;AA-(Ri)-CY SUBBA,#data;AA-data-CY功功功功能能能能:把把累累加加器器A A中中的的操操作作数数减减去去源源操操作作数数和和指指令令执执

33、行行前前的的CYCY值值(把把进进位位标标志志CYCY作作为为减减法法操操作作的的借借位位标标志志),并并把结果存放在累加器把结果存放在累加器A A中。中。45例如:设例如:设A=52H,R0=B4H,执行指令:,执行指令:CLR C ;CY0 SUBB A,R0 ;A AR0CY结果为:结果为:A=9EH,CY=1 46l减减1指令指令 DECA;AA-1 DECRn;RnRn-1 DECdirect;directdirect-1DECRi;(Ri)(Ri)-1功能:功能:功能:功能:把操作数内容减把操作数内容减 1 1,结果仍存放在原处。,结果仍存放在原处。47乘法指令乘法指令 MULAB

34、;B A AB 功功功功能能能能:将将累累加加器器A A的的内内容容与与寄寄存存器器B B的的内内容容相相乘乘,乘乘积积的的低低 8 8 位存放在累加器位存放在累加器A A中,高中,高 8 8 位存放在寄存器位存放在寄存器B B中。中。除法指令除法指令DIVAB;商存于商存于A,余数存于,余数存于BAB功功功功能能能能:将将累累加加器器A A中中的的8 8位位无无符符号号整整数数除除以以寄寄存存器器B B中中的的8 8位位无无符符号号整整数数,所所得得商商存存放放在在累累加加器器A A中中,余余数数存存放放在在寄存器寄存器B B中。中。返回返回48 .位操作类指令位操作类指令l功功能能:位位操

35、操作作是是以以位位(bit)为为单单位位进进行行运运算算和和操作的。操作的。.1位传送位传送位地址中的值传送给进位标志位地址中的值传送给进位标志位地址中的值传送给进位标志位地址中的值传送给进位标志CyCyMOVCMOVC,bitbit;CyCy(bitbit)进位标志进位标志进位标志进位标志CyCy的值传送到位地址中的值传送到位地址中的值传送到位地址中的值传送到位地址中MOVbitMOVbit,CC;(;(;(;(bitbit)CyCy注:注:注:注:bitbit为位地址,为位地址,为位地址,为位地址,C C为标志为标志为标志为标志CyCy的助记符的助记符的助记符的助记符.2位置位置1、位清、

36、位清0位置位置位置位置1 1SETBCSETBC;进位标志;进位标志;进位标志;进位标志CyCy置置置置1 1SETBbitSETBbit;位地址中置;位地址中置;位地址中置;位地址中置1 1位清位清位清位清 0 0CLRCCLRC;进位标志;进位标志;进位标志;进位标志CyCy清清清清0 0CLRbitCLRbit;位地址中置;位地址中置;位地址中置;位地址中置0 0.3位逻辑运算位逻辑运算位位位位“与与与与”运算运算运算运算ANLCANLC,bitbit;CyCyCyCy (bitbit)ANLCANLC,/bit/bit;CyCyCyCy (/bit/bit)位位位位“或或或或”运算运算

37、运算运算ORLCORLC,bitbit;CyCyCyCy (bitbit)ORLCORLC,/bit/bit;CyCyCyCy (/bit/bit)位位位位“非非非非”运算运算运算运算CPLCCPLC;Cy/CyCy/CyCPLbitCPLbit;bitbit(/bit/bit)51A=P1.1P1.2 A=P1.1P1.2 B=P1.0AB=P1.0AC=P1.4C=P1.4D=P1.3CD=P1.3CP1.5=BDP1.5=BD【习题习题】利用位逻辑指令模拟利用位逻辑指令模拟以以下逻辑电路功能下逻辑电路功能52源程序源程序:MOV C,P1.1 ;CY (P1.1)MOV C,P1.1 ;

38、CY (P1.1)ORL C,P1.2 ;CY (P1.1)(P1.2)=A ORL C,P1.2 ;CY (P1.1)(P1.2)=A ANL C,P1.0 ;CY (P1.0)A ANL C,P1.0 ;CY (P1.0)A CPL C ;CY (P1.0)A=B CPL C ;CY (P1.0)A=B MOV F0,C MOV F0,C MOV C,P1.3 ;(CY)P1.3 MOV C,P1.3 ;(CY)P1.3 ANL C,/P1.4 ;(CY)(P1.3)(P1.4)=D ANL C,/P1.4 ;(CY)(P1.3)(P1.4)=D ORL C,F0 ;(CY)BD ORL

39、C,F0 ;(CY)BD MOV P1.5,C ;MOV P1.5,C ;运算结果送入运算结果送入P1.5P1.553.控制转移类指令控制转移类指令l控控制制转转移移类类指指令令是是通通过过改改变变程程序序计计数数器器PCPC中中内内容容,以以控控制程序的流向制程序的流向。l有有了了控控制制转转移移类类指指令令,就就能能方方便便地地实实现现程程序序的的向向前前、向向后后跳跳转转,并并根根据据条条件件分分支支运运行行、循循环环运运行行、调调用用子子程程序等。序等。54无条件转移指令无条件转移指令 l长转移指令长转移指令 LJMPLJMP addr16 addr16 ;PC addr16;PC a

40、ddr16功功功功能能能能:把把指指令令中中的的addr16addr16送送入入程程序序计计数数器器PCPC,使使机机器器执执行下条指令时无条件转移到行下条指令时无条件转移到addr16addr16处执行程序。处执行程序。l绝对转移指令绝对转移指令 AJMP addr11AJMP addr11;PC PC+2;PC PC+2,PCPC100100 addr11 addr11功功功功能能能能:将将指指令令所所提提供供的的1111位位地地址址送送入入程程序序计计数数器器PCPC的的低低1111位位,而而PCPC的的高高5 5位位保保持持不不变变。由由原原PCPC的的高高5 5位位和和新新装装入入的

41、的低低1111位位地地址址共共同同组组成成新新的的1616位位目目标标地地址址,使使程程序序无无条条件地转移到新的目标地址处。件地转移到新的目标地址处。55l相对转移指令相对转移指令 SJMP SJMP relrel ;PC PC+2+rel;PC PC+2+rel功功功功能能能能:使使程程序序无无条条件件地地转转移移到到由由指指令令所所提提供供的的相相对对偏偏移移量量relrel与当前与当前PCPC值相加所形成的目标地址处:值相加所形成的目标地址处:目的地址目的地址 =PC+2+rel=PC+2+rel相相对对转转移移指指令令可可根根据据相相对对偏偏移移量量转转向向当当前前PCPC的的前前1

42、28128字字节或后节或后127127字节。字节。相相对对偏偏移移量量relrel是是以以补补码码表表示示的的8 8位位带带符符号号数数,其其范范围围为为-128-128 +127+127。若若relrel80H80H,则则程程序序向向前前(低低地地址址)转转移移;若若relrel80H80H,则程序向后(高地址)转移。,则程序向后(高地址)转移。56条件转移指令条件转移指令 l条条件件转转移移指指令令在在执执行行过过程程中中需需要要判判断断某某种种条条件件是是否否满满足,从而决定要不要转移。足,从而决定要不要转移。当当条条件件满满足足时时,程程序序转转移移执执行行;条条件件不不满满足足时时,

43、程程序序仍按原来顺序继续执行。仍按原来顺序继续执行。l条条件件转转移移的的条条件件可可以以是是上上一一条条指指令令或或者者更更前前一一条条指指令令的的执执行行结结果果,也也可可以以是是条条件件转转移移指指令令本本身身包包含含的的某某种种运算结果运算结果。57子程序调用和返回指令子程序调用和返回指令 l程程序序设设计计中中通通常常把把具具有有一一定定功功能能的的公公用用程程序序段段编编制制成成子子程程序序,当当主主程程序序需需要要使使用用子子程程序序时时用用调调用用指令(指令(CALLCALL)l而而在在子子程程序序的的最最后后安安排排一一条条子子程程序序返返回回指指令令(RETRET),以以便便执执行行完完子子程程序序后后能能返返回回主主程程序序继继续执行。续执行。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com