指令系统与程序设计.ppt

上传人:星星 文档编号:1024036 上传时间:2024-03-23 格式:PPT 页数:106 大小:694.50KB
下载 相关 举报
指令系统与程序设计.ppt_第1页
第1页 / 共106页
指令系统与程序设计.ppt_第2页
第2页 / 共106页
指令系统与程序设计.ppt_第3页
第3页 / 共106页
指令系统与程序设计.ppt_第4页
第4页 / 共106页
指令系统与程序设计.ppt_第5页
第5页 / 共106页
点击查看更多>>
资源描述

1、第三章第三章 指令系统与程序设计指令系统与程序设计4.1 概述概述3.4 MCS-51的寻址方式的寻址方式4.2 数据传送类指令数据传送类指令4.3 算术运算类指令算术运算类指令4.4 逻辑运算类指令逻辑运算类指令4.5 控制转移类指令控制转移类指令4.6 布尔布尔(位位)处理类指令处理类指令14.1 指令与程序设计基础指令与程序设计基础1.基本概念基本概念 指令指令:指挥计算机(指挥计算机(CPU)完成各种操作的命令。完成各种操作的命令。机器语言指令机器语言指令:指令的二进制表示形式,即用一定位数的指令的二进制表示形式,即用一定位数的二进制编码表示操作命令,是指令在程序存储器中的存放形式,二

2、进制编码表示操作命令,是指令在程序存储器中的存放形式,是是CPU可直接读取、识别和执行的唯一形式。可直接读取、识别和执行的唯一形式。机器语言(目标)程序机器语言(目标)程序:用机器语言指令表示的程序。是用机器语言指令表示的程序。是所有程序的最终形式。所有程序的最终形式。例如,用例如,用MCS-51指令系统表示指令系统表示“10+6”运算的目标程运算的目标程序为:序为:74 0A 24 06 80 FE 机器语言指令和程序不便于阅读。机器语言指令和程序不便于阅读。汇编语言指令(符号指令、指令助记符)汇编语言指令(符号指令、指令助记符):采用具有采用具有一定意义的符号来表示操作命令,使指令便于阅读

3、。一定意义的符号来表示操作命令,使指令便于阅读。2 汇编语言(源)程序汇编语言(源)程序:用汇编语言指令书写的程序。:用汇编语言指令书写的程序。例如,用例如,用MCS-51指令系统表示指令系统表示“10+6”运算的汇运算的汇编语言程序为:编语言程序为:MOV A,#10 ;将数将数10送入送入A中中 ADD A,#6 ;常数常数6与与A中内容相加,结果中内容相加,结果 ;存入;存入A SJMP$;结束结束 汇编语言指令必须最终转换为机器语言目标程序,汇编语言指令必须最终转换为机器语言目标程序,才能为才能为CPU所识别和执行。所识别和执行。源程序源程序(汇编语言程序)(汇编语言程序)汇编程序汇编

4、程序(完成把源程序翻译(完成把源程序翻译成目标程序的工作)成目标程序的工作)目标程序目标程序(机器语言程序)(机器语言程序)3 例如,用例如,用MCS-51指令系统表示指令系统表示“10+6”运运算的汇编语言源程序和机器语言目标程序为:算的汇编语言源程序和机器语言目标程序为:目标程序目标程序 汇编语言源程序汇编语言源程序 74 0A MOV A,#10 ;将数将数10送入送入A中中 24 06 ADD A,#6 ;常数常数6与与A中内容中内容 ;相加,结果存入;相加,结果存入A 80 FE SJMP$;结束结束 高级语言程序:面向过程,必须经过编译或解高级语言程序:面向过程,必须经过编译或解释

5、产生机器语言目标程序,方可由释产生机器语言目标程序,方可由CPU所执所执行。行。42.指令格式指令格式 汇编语言指令格式汇编语言指令格式 操作码操作码 操作数操作数 ;注释;注释 MOV A,#30H ;将数将数30H送入送入A中中 INC A ;将将A的内容加的内容加1 NOP ;空操作空操作 其中:其中:操作码表示指令的功能操作码表示指令的功能(进行什么操作)(进行什么操作)操作数说明提供参与操作的数或数所在单元的地址操作数说明提供参与操作的数或数所在单元的地址 机器语言指令机器语言指令 04 INC A ;将将A的内容加的内容加1 74 30 MOV A,#30H ;将数将数30H送入送

6、入A中中 85 40 50 MOV 50H,40H ;将将40H单元内容送单元内容送 ;入入50H 机器语言指令有单字节、双字节、三字节指令。机器语言指令有单字节、双字节、三字节指令。53.8051指令系统分类指令系统分类 按照指令的按照指令的功能功能划分,划分,80518051指令可分为以下五类:指令可分为以下五类:l数据传送数据传送类指令类指令(29(29条条)l算术运算算术运算类指令类指令(24(24条条)l逻辑运算逻辑运算类指令类指令(24(24条条)l控制转移控制转移类指令类指令(17(17条条)l位操作位操作类指令类指令(17(17条条)n按照指令占用的按照指令占用的存储空间存储空

7、间可分为:可分为:l单字节指令单字节指令(49(49条条)l双字节指令双字节指令(45(45条条)l三字节指令三字节指令(17(17条条)n按照指令的按照指令的执行时间执行时间可分为:可分为:l单周期指令单周期指令(64(64条条)l双周期指令双周期指令(45(45条条)l四周期指令四周期指令(2(2条,乘、除法指令条,乘、除法指令)64.4.程序设计基础程序设计基础程序设计基础程序设计基础 汇编语言、机器语言程序的书写格式汇编语言、机器语言程序的书写格式 例:将片内数据存储器例:将片内数据存储器3AH单元内容与单元内容与3BH单元内容互换。单元内容互换。机器语言目标程序机器语言目标程序 汇编

8、语言源程序汇编语言源程序 地址地址 指令代码指令代码 标号标号 操作码操作码 操作数操作数 注释注释 ORG 2000H ;程序存放的程序存放的 ;起始地址;起始地址2000H E5 3A ST:MOV A,3AH ;3AH的内容的内容 ;暂存于;暂存于A2002H 85 3B 3A MOV 3AH,3BH2005H F5 3B MOV 3BH,A2007H 80 FE LP:SJMP LP END ;汇编结束汇编结束 其中:其中:ORG、END为伪指令(表示汇编要求的指令)。为伪指令(表示汇编要求的指令)。标号:指令的符号地址。标号:指令的符号地址。7 目标程序在存储器中的存储形式目标程序在

9、存储器中的存储形式2000HE52001H3A2002H852003H3B2004H3A2005HF52006H3B2007H802008HFEMOV A,3AHMOV 3AH,3BHMOV 3BH,ASJMP 0FEH8 程序的基本结构程序的基本结构 顺序结构顺序结构 分支结构分支结构 循环结构循环结构 子程序子程序9 程序流程图程序流程图10例:编制实现符号函数的程序,流程图如下:例:编制实现符号函数的程序,流程图如下:+1 ;x0Y=f(x)=0 ;x=0 -1 ;xOPR2时时CY=0,OPR1OPR2时时CY=1 即:对第一、二操作数的内容(无符号数)进行比即:对第一、二操作数的内容

10、(无符号数)进行比较,若二者相等则顺序执行,否则转移,同时影响较,若二者相等则顺序执行,否则转移,同时影响CY标志。可用作比较指令。标志。可用作比较指令。86例:编程实现下列函数例:编程实现下列函数假设假设x存放在片内存放在片内RAM 30H单元,单元,将将y值存入值存入31H。(。(用用CJNE指令实现)指令实现)0 ;x=0y=f(x)=1 ;x 087 ORG 2000H MOV A,30H;取取x值值 CJNE A,#0,NEQ;若若x 0则转移至则转移至NEQ MOV 31H,#0 SJMP$NEQ:MOV 31H,#1 SJMP$88(3)减减1非零非零转移指令转移指令DJNZ R

11、n,rel;Rn内容减内容减1,若若Rn 0则转移至则转移至PC+2+rel,若若Rn=0则顺序执行则顺序执行DJNZ direct,rel;direct单元内容单元内容减减1,若若(direct)0则转移至则转移至PC+3+rel,若若(direct)=0则顺序执行则顺序执行 89例:编程将片外数据存储器例:编程将片外数据存储器3000H开始的开始的50个数个数传送到片内传送到片内RAM 30H开始的存储单元中。开始的存储单元中。开始开始DPTR3000H,R0 30HR5 循环次数循环次数从片外数据存储器取一个数从片外数据存储器取一个数存入片内存入片内RAM修改指针指向下一单元修改指针指向

12、下一单元R5-1=0?结束结束YN90 ORG 0050H MOV DPTR,#3000H;源数据块首地址源数据块首地址 MOV R0,#30H;目的存储单元首地址目的存储单元首地址 MOV R5,#50;循环次数(数据块长度)循环次数(数据块长度)LOP:MOVX A,DPTR;从源数据块取一个数从源数据块取一个数 MOV R0,A;送入目的存储单元送入目的存储单元 INC DPTR INC R0;指向下一单元指向下一单元 DJNZ R5,LOP;未传送完,继续未传送完,继续 SJMP$;结束结束91 软件延时软件延时 问题的提出问题的提出 请看程序段:请看程序段:.MOV R7,#100

13、DELAY:DJNZ R7,DELAY .该程序段只是一个空循环,没有实质的操作,但该程序段只是一个空循环,没有实质的操作,但指令的执行是需要时间的,因此,它起到指令的执行是需要时间的,因此,它起到延时延时作用。作用。延时时间的长短与延时时间的长短与指令周期指令周期和和循环次数循环次数有关。有关。92 与与时序有关的概念时序有关的概念 时钟周期时钟周期Tosc=1/fosc 机器周期机器周期TM=12Tosc=12/fosc 指令周期:执行一条指令所需的时间,用机器指令周期:执行一条指令所需的时间,用机器周期数表示,一般为周期数表示,一般为1 TM、2TM、4TM。例:若例:若fosc=6MH

14、z,则则 Tosc=1/fosc=1/6 s(微秒微秒);TM=12Tosc=2 s93 软件延时程序软件延时程序例:例:YS1:MOV R7,#100 ;1 TM(P269)YS10:DJNZ R7,YS10 ;2 TM RET ;2 TM延时时间延时时间t=1 TM+2 TM 100+2 TM=203 TM若若fosc=12MHz则则TM=1 s;t=203 s94例:多重循环例:多重循环内循环延时时间内循环延时时间:t1=2 TM 200外循环延时时间外循环延时时间:t2=(1 TM+2 TM 200+2 TM)100总延时时间总延时时间:t=1 TM+(1 TM+2 TM 200+2

15、TM)100 +2 TM=40303 TM YS2:MOV R7,#100;1 TM YS20:MOV R6,#200;1 TM YS21:DJNZ R6,YS21;2 TM DJNZ R7,YS20;2 TM RET ;2 TM内内循循环环外外循循环环95【例】【例】P1口做输出口,控制八只发光二极管循环点亮口做输出口,控制八只发光二极管循环点亮(P1口输出低电平时发光二极管被点亮口输出低电平时发光二极管被点亮)。89C51P1口输出口输出 96程序程序注释注释 ORG 0000H LJMP MAIN ORG 4100H MAIN:MOV A,#0FEH LOOP:MOV P1,A LCAL

16、L DELAY;延时延时 RL A;左移位左移位 SJMP LOOP;循环循环 DELAY:MOV R7,#0FFH;延时子程序延时子程序 L1:MOV R6,#0FAH DJNZ R6,$DJNZ R7,L1 RET END974.6 位处理类指令位处理类指令 MCS-51单片机有一个位处理器(布尔处理器),单片机有一个位处理器(布尔处理器),以进位位以进位位Cy为累加器(位累加器为累加器(位累加器C)。)。可位寻址单元包括片内可位寻址单元包括片内RAM 20H2FH及部分特及部分特殊功能寄存器殊功能寄存器(P40 图图3.6)。位位地址表达方式地址表达方式 直接位地址方式。如直接位地址方式

17、。如 D4H 点操作符方式。如点操作符方式。如 PSW.4;D0H.4 位名称方式。如位名称方式。如 RS1 用户定义名方式。用户定义名方式。如如 TEMP_H BIT 00H981.位传送指令位传送指令 位传送指令位传送指令MOV C,bit;将位地址将位地址bit 的内容送入的内容送入CMOV bit,C;将将C的内容送入的内容送入bit例:已知片内例:已知片内RAM(20H)=05H,执行执行MOV C,00HMOV 07H,C之后:片内之后:片内RAM(20H)=85H992.位操作指令位操作指令 位清位清0指令指令CLR C CLR bit ;如如 CLR 20H.0(CLR 00H

18、)位取反指令位取反指令CPL CCPL bit;如如 CPL P1.0 位置位置1指令指令SETB CSETB bit ;如如 SETB RS01003.位逻辑运算指令位逻辑运算指令 与与ANL C,bitANL C,/bit 或或ORL C,bitORL C,/bit例:已知例:已知x、y、z均为位地址,编程实现均为位地址,编程实现Z=X Y+X Y101MOV C,yANL C,/xMOV z,CMOV C,xANL C,/yORL C,zMOV z,C上述程序段实现上述程序段实现z=x y运算运算1024.4.位条件转移指令位条件转移指令位条件转移指令位条件转移指令 指令指令JC rel

19、;若若Cy=1则转移至则转移至PC+2+rel 若若Cy=0则顺序执行则顺序执行JNC rel;若若Cy=0则转移至则转移至PC+2+rel 若若Cy=1则顺序执行则顺序执行JB bit,rel;若(若(bit)=1则转移至则转移至PC+3+rel 若(若(bit)=0则则顺序执行顺序执行JNB bit,rel;若(若(bit)=0则转移至则转移至PC+3+rel 若(若(bit)=1则顺序执行则顺序执行JBC bit,rel103 应用应用例:编程根据片内例:编程根据片内RAM 30H单元的内容等于、大单元的内容等于、大于、小于于、小于60进行不同操作。进行不同操作。MOV A,30HCJN

20、E A,#60,NEQ EQ:.;(;(30H)=60的操作的操作NEQ:JNC BIG.;(;(30H)60的操作的操作104例:编程实现下列函数功能例:编程实现下列函数功能 其中其中x存在片存在片内内RAM 40H单元,单元,将将y存入存入41H单元。单元。(提示:注意计算机中带符号数的表示方法。)(提示:注意计算机中带符号数的表示方法。)1 ;x0y=f(x)=0 ;x=0 -1 ;x0105 ORG 1000H MOV A,40H;取取x值值 JZ ZERO;若若x=0则转移则转移 JB ACC.7,NEG;x 0则判断其正则判断其正负负 MOV 41H,#1 SJMP$NEG:MOV 41H,#-1 SJMP$ZERO:MOV 41H,#0 SJMP$106

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

当前位置:首页 > 技术资料 > 其他资料

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922