任务二(三、指系统和控制指)

上传人:沈*** 文档编号:244203285 上传时间:2024-10-03 格式:PPT 页数:26 大小:409KB
返回 下载 相关 举报
任务二(三、指系统和控制指)_第1页
第1页 / 共26页
任务二(三、指系统和控制指)_第2页
第2页 / 共26页
任务二(三、指系统和控制指)_第3页
第3页 / 共26页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,任务二 相关指令,指令系统简介,控制指令,1,:MCS-51指令系统的概述,MCS-51共有111条指令,指令的长度和执行时间因不同的指令而各不相同。,1.1,指令格式,1.2,指令的三种表示形式,1.3,指令的字节数,1.4,指令的分类,继续,1.1,指令格式,:,指令格式:既指令的结构形式。,OP,DATA,或,ADDRESS,操作码,操作数或操作数地址,由操作码和操作数(或操作数地址)构成指令的结构。,举例:,MOV,A,0FFH,ADD,A,R0,返回,00100100B 24H,00001000B,08H,ADD,A,,,#08H,一般格式为:,操作助记符,目的操作数,,,源操作数,;注释,二进制表示形式 十六进制表示,汇编格式,返回,1.2 指令的三种表示形式:,1.3,指令的字节数,在,MCS-51,单片机的指令系统中,因指令操作码和操作数的不同,指令(在存储器中)长度也各不相同。,分为单字节、双字节和三字节。,单字节指令(,49,条),MOV A,,,R0,双字节指令,(,45,条,):,指令的操作码和操作数各占一个字节。如:,MOV,A,#data,很明显:,8,位的操作数本身占据一个字节。,程序存储器,01110100,data,n,n+1,mov a,#data,双字节指令在程序存储器的存放示意图,三字节指令,(,17,条,):,指令中的操作数为双字节。如:,MOV DPTR,#data16,或者,:指令中分别包含,1,个字节的操作数和,1,个字节的操作数地址。如:,MOV direct,#data,举例:,MOV 20H,#0FFH,10010000,data15-8,data8-0,MOV dptr,#data16,OP (75H),direct(20H),data (FFH),MOV direct,#data,三字节指令在存储器中存放的方式示意图,1.2,控制转移指令:,22,条,功能,:用于改变程序计数器,PC,值,以控制程序的流向,有效区间,:,ROM,标志位,:这些指令的执行一般都,不会对标志位有影响,无条件转移指令,(,4,条),条件转移指令,(,8,条),位控制转移指令,(,5,条),子程序调用和返回指令,(,4,条),空操作指令,(,1,条),(,1,),无条件,转移指令:,4,条,长转移指令,LJMP,绝对转,移指令,AJMP,短转,移指令,SJMP,间接转,移指令,JMP,注意,:,addr16,通常采用符号地址表示,可以在,64KB,(,0000HFFFFH,),范围内转移的指令,三字节双周期指令,功能,:将指令中,16,位目标地址码送入程序计数器,PC,,使程序执行下条指令时无条件转移到,addr16,去执行,长转移指令,LJMP addr16,;,addr16,(,PC,),绝对转移指令,AJMP addr11,;(,PC,),+2,(,PC,),当前值,,(,addr11,)(,PC,),10-0,功能,:指令中提供,11,位地址,与,PC,当前值,的高,5,位共同组成,16,位目标地址,程序无条件转向目标地址,注意,:,该指令是一条可以在,2K,范围内转移的指令,转移的目标地址是通过计算获得,该过程是系统自动完成的,双字节双周期指令,1 0 1,0 0 0 0 1,1 0 1 0 0 1 0 1,X X X X,X,1 0 1,1 0 1 0 0 1 0 1,A,10,A,9,A,8,操作码,A,7,A,0,AJMP,指令,PC,程序计数器,短跳转指令举例,例:若,AJMP,指令地址,(PC)=2300H,执行指令,AJMP 0FFH,后,结果为:转移目的地址,(PC)=20FFH,,程序向前转到,20FFH,单元开始执行。,0 0 0,0 0 0 0 1,1 1 1 1 1 1 1 1,0 0 1 0,0,0 0 0,1 1 1 1 1 1 1 1,A,10,A,9,A,8,操作码,A,7,A,0,AJMP,指令,PC,程序计数器,0 1 1 0 0 0 0 0 0 1 0,PC,当前值,+2,EX,:,2FFFH AJMP 17BH,(,PC,)当前值,=2FFFH+2=3001H,(,PC,)转移,=317BH,0 0 1,0 0 0 0 1,0 1 1 1 1 0 1 1,0 0 1 1 0,0 0 1,0 1 1 1 1 0 1 1,A,10,A,9,A,8,操作码,A,7,A,0,AJMP,指令,PC,程序计数器,短转移指令,SJMP,rel,;(,PC,),+2,(,PC,),当前值,,,(,PC,),当前值,+,rel,(,PC,),注意,:,短转移指令是一条相对转移指令,双字节双周期指令,SJMP$,停机指令,并非真正的停机指令,如,:,1000H SJMP 89H,(,PC,),转移,=1000H+2+89H=1002H+FF89H=0F8BH,FE,(,-2,),功能,:先使,PC,加,2,后的地址和,rel,相加作为目标转移地址,rel,为地址偏移量,为带符号,8,位二进制,常用补码表示,范围为,-128+127,,因此,程序转移范围为当前,PC,前,128,字节,或后,127,字节,间接转移指令,JMP A+DPTR,;(,A,),+,(,DPTR,)(,PC,),功能,:将累加器,A,中的,8,位无符号数与,16,位数据指针相加,其和装入程序计数器,PC,中,控制程序转向目标地址,注意,:,用户应预先把目标地址的基地址送入,DPTR,,目标地址对基地址的偏移量放入累加器,A,中,这是一条很有用的,散转,指令,转移地址不是在编程时确定的,而是在程序运行时,动态,决定的,多用于多分支程序中,,DPTR,装入多分支程序的首地址,由累加器,A,的内容动态选择其中的某一分支进行分支转移,(,2,),条件,转移指令:,8,条,特点,:,是一种在执行过程中需要判断某种条件是否满足而决定程序流程,如满足条件就转移,否则就不转移,顺序执行原程序,均为,相对寻址,转移指令,累加器,A,判零转移指令(,2,),比较转,移指令(,4,),循环转,移指令(,2,),累加器,A,的判零转移指令,:,2,条,JZ,rel,;若,A=0,,则(,PC,),+2+,rel,(,PC,),;若,A0,,则(,PC,),+2,(,PC,),JNZ,rel,;若,A0,,则(,PC,),+2+,rel,(,PC,),;若,A=0,,则(,PC,),+2,(,PC,),注意,:,上述两条指令判别规则正好相反,都是双字节指令,rel,为,8,位带符号数,条件转移目标地址是,PC,当前值,为中心,(,-128+127,),例,:已知外部,RAM,中,DATA1,为起始地址的数据块,该数据块以零为结束标志,试编程将其传送到以,DATA2,为起始地址的内部,RAM,区,流程图,:,开始,结束,DATA1,(,DPTR,),DATA2,(,R0,),取(,DPTR,)单元,内容(,A,),判(,A,),=0,?,(,A,)(,R0,),对应单元,(,DPTR,),+1,(,R0,),+1,是,否,程序,:,ORG2400H,MOVDPTR,,,#DATA1,MOVR0,,,#DATA2,LOOP:MOVXA,,,DPTR,JZDONE,MOVR0,,,A,INCDPTR,INCR0,SJMPLOOP,DONE:SJMP$,END,比较转移指令,:,4,条,CJNE A,,,direct,,,rel,;若(,A,)(,direct,),则(,PC,),+3+,rel,(,PC,),;若(,A,),=,(,direct,),则(,PC,),+3,(,PC,),CJNE A,,,#data,,,rel,;若(,A,),data,,则(,PC,),+3+,rel,(,PC,),;若(,A,),=data,,则(,PC,),+3,(,PC,),CJNE,Rn,,,#data,,,rel,;若(,Rn,),data,,则(,PC,),+3+,rel,(,PC,),;若(,Rn,),=data,,则(,PC,),+3,(,PC,),CJNE,Ri,,,#data,,,rel,;若(,A,),data,,则(,PC,),+3+,rel,(,PC,),;若,(,(,Ri,),)=data,,则(,PC,),+3,(,PC,),功能,:,对目的操作数与源操作数比较,若它们的值不等则转移,相等则按顺序执行程序,指令操作过程,:,(,PC,),+3,(,PC,),=,?,源操作数,目的操作数,比较,(,PC,),+,rel,(,PC,),若目的字节源字节,,1,(,C,),若目的字节,源字节,,0,(,C,),是,否,注意,:,都是三字节指令,指令执行过程中的比较操作实际上是减法操作,不保存两数之差,但要形成,CY,标志,(即对,CY,有影响),若参加比较的两个操作数是无符号数,则可以直接根据指令执行后产生的,CY,判断两个操作数的大小,若目的操作数小于源操作数,则,CY=1,,否则,CY=0,若参加比较的两个操作数是,带符号数补码,,则仅根据,CY,是无法判断它们的大小,循环转移指令,:,2,条,DJNZ,Rn,,,rel,;,(,Rn,),-1,(,Rn,),;若(,Rn,),0,,则(,PC,),+2+,rel,(,PC,),;若(,Rn,),=0,,则(,PC,),+2,(,PC,),DJNZ direct,rel,;,(,direct,),-1,(,direct,),;若(,direct,),0,,则(,PC,),+3+,rel,(,PC,),;若(,direct,),=0,,则(,PC,),+3,(,PC,),功能,:这是减,1,与,0,比较指令,每执行一次该指令,目的操作数减,1,,结果送回目的操作数中,并判断目的操作数是否为,0,,不为,0,则转移,否则顺序执行,注意,:,如果目的操作数原值为,00H,,减,1,则下溢得,FFH,,不影响任何标志位,2,字节,3,字节,(,4,),子程序调用和返回,指令:,4,条,子程序的,功能,:减少编程工作量;,减少程序所占,ROM,存储空间,调用程序,(主程序,/,子程序),:调用子程序的程序,调用指令,被调用程序,(子程序),:被调用的程序,返回指令,特点,:,子程序执行完成,通过返回指令,PC,自动返回调用指令的,下一条指令,执行,调用指令与返回指令成对使用,子程序可以嵌套,调用指令,长调用指令,(,LCALL,),短调用指,令,(,ACALL,),功能,:,断点保护,构造目的地址,特点,:,是三字节指令,64KB,范围调用,长调用指令,LCALL addr16,;(,PC,),+,3,(,PC,),;(,SP,),+1,(,SP,),(,PC,),7-0,(,SP,),;(,SP,),+1,(,SP,),(,PC,),15-8,(,SP,),;,addr16,(,PC,),短调用指令,ACALL addr11,;(,PC,),+,2,(,PC,),;(,SP,),+1,(,SP,),(,PC,),7-0,(,SP,),;(,SP,),+1,(,SP,),(,PC,),15-8,(,SP,),;,addr11,(,PC,),100,功能,:,断点保护,构造目的地址,(子程序入口地址),形成同,AJMP,指令,特点,:,是两字节指令,2KB,范围调用,返回指令,RET,;(,SP,)(,PC,),15-8,,(,SP,),-1,(,SP,),;(,SP,)(,PC,),7-0,,(,SP,),-1,(,SP,),RETI,;(,SP,)(,PC,),15-8,,(,SP,),-1,(,SP,),;(,SP,)(,PC,),7-0,,(,SP,),-1,(,SP,),功能,:,这两条指令的功能相同,都是把堆栈中断点地址恢复到程序计数器,PC,中,从而使单
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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