指令系统及汇编.pptx
《指令系统及汇编.pptx》由会员分享,可在线阅读,更多相关《指令系统及汇编.pptx(105页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.机器语言计算机能直接识别和执行的二进制代码形式的指令称为机器指令,而该类指令的集合称为计算机的机器语言,或称指令系统。机器语言是面向计算机系统的。由于各种计算机内部结构,线路的不同,每种计算机系统都有它自己的机器语言,即使执行同一操作,其指令也不相同。它是唯一能被计算机直接执行的程序。第1页/共105页2.汇编语言计算机所能执行的每条指令都对应一组二进制代码。为了容易理解和记忆计算机的指令,人们用一些英语的单词和字符以及数字作为助记符来描述每一条指令的功能。用助记符描述的指令系统,称为机器的汇编语言系统,简称汇编语言。第2页/共105页MCS51系列单片机是用51系列单片机的指令系统来编程
2、的,其汇编语言的语句格式,也就是单片机的指令格式,即:标号:操作码操作数;注释第3页/共105页3.高级语言高级语言(如:PASCAL、C、FORTRAN、BASIC等)克服了汇编语言的缺点,是一种面向问题或过程的语言。它是一种接近于自然语言和数学算法的语言,与机器的硬件无关,用户编程时不必仔细了解所用计算机的具体性能和指令系统。第4页/共105页汇编程序与伪指令1.汇编程序MCS51指令所编写的汇编语言源程序,还必须经过从汇编源程序到机器语言目标程序的“翻译”,才能在51系列单片机运行,这种翻译的过程称为汇编。完成汇编工作有两种途径:一种是人工汇编;一种是机器汇编。第5页/共105页汇编程序
3、是将汇编源程序转变为相应目标程序的翻译程序。由于指令助记符与机器语言指令是一一对应的等价关系,所以汇编程序能很容易将汇编源程序迅速、准确、有效地翻译成目标程序。第6页/共105页2.伪指令在汇编源程序的过程中,还有一些指令不要求计算机进行任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅是能够帮助汇编进行的一些指令,称之为伪指令。它主要用来指定程序或数据的起始位置,给出一些连续存放数据的确定地址,或为中间运算结果保留一部分存储空间以及表示源程序结束等等。第7页/共105页(1)设置目标程序起始地址伪指令ORG。格式:标号:ORG16位地址该伪指令的功能是规定其后面目标程序的起
4、始地址。它放在一段源程序(主程序、子程序)或数据块的前面,说明紧跟在其后的程序段或数据块的起始地址就是指令中的16位地址(4位十六进制数)。例如:ORG2000HSTART:MOVA,7FH第8页/共105页(2)结束汇编伪指令END。格式:标号:ENDEND是汇编语言源程序的结束标志,表示汇编结束。在END以后所写的指令,汇编程序都不予以处理。一个源程序只能有一个END命令。第9页/共105页(3)定义字节伪指令DB。格式:标号:DB项或项表其中项或项表指一个字节,或用逗号分开的字符串,或以引号括起来的字符串(一个字符用ASCII码表示,就相当于一个字节)。该伪指令的功能是把项或项表的数值(
5、字符则用ASCII码)存入从标号开始的连续存储单元中。第10页/共105页例如:ORG2000HTAB1:DB30H,8AH,7FH,73HDB5,A,BCD又如:1FFDHLJMP1234HDB30H,8AH,7FH,73,5,A,BCD不以跳转指令为转移?第11页/共105页(4)定义字伪指令DW。格式:标号:DW项或项表DW伪指令与DB的功能类似,所不同的是DB用于定义一个字节(8位二进制数),而DW则用于定义一个字(即两个字节,16位二进制数)。在执行汇编程序时,机器会自动按高8位先存入,低8位后存入的格式排列,这和MCS51指令中16位数据存放的方式一致。例如:ORG1500HTAB
6、2:DW1234H,80H汇 编 以 后:(1500H)=12H,(1501H)=34H,(1502H)=00H,(1503H)=80H。第12页/共105页(5)预留存储空间伪指令DS。格式:标号:DS表达式该伪指令的功能是从标号指定的单元开始,保留若干字节的内存空间以备源程序使用。存储空间内预留的存储单元数由表达式的值决定。例如:ORG1000HDS20HDB30H,8FH在达爱思的仿真环境中体现不出来。第13页/共105页(6)等值伪指令EQU。格式:标号:EQU项该伪指令的功能是将指令中项的值赋予本语句的标号。项可以是常数、地址标号或表达式。例如:TABEQU1000HTAB1EQUT
7、AB前一条伪指令表示TAB地址的值为1000H,后一条表示符号地址TAB1与TAB等值(可以互换),需要注意的是,在同一程序中,用EQU伪指令对某标号赋值后,该标号的值在整个程序中不能再改变。本指令要出现在标号的后面。第14页/共105页(7)位地址赋值伪指令BIT。格式:标号BIT位地址该伪指令的功能是将位地址赋予特定位的标号,经赋值后就可用指令中BIT左面的标号来代替BIT右边所指出的位。例如:FLGBITF0AIBITP1.0经以上伪指令定义后,在编程中就可以把FLG和AI作为位地址来使用。led1BITP1.0onbit1offbit0clrcmovled1,c第15页/共105页3.
8、5基本程序设计方法程序的基本结构用汇编语言进行程序设计的过程和用高级语言进行程序设计相类似。第16页/共105页程序的基本算法结构有3种:顺序结构、分支(选择)结构和循环结构。顺序结构如图310所示,虚框内A框和B框分别代表不同的操作,而且是A、B顺序执行。分支结构如图311所示,它又称为选择结构。该结构中包含一个判断框,根据给定条件P是否成立而选择执行A框操作或B框操作。条件P可以是累加器是否为零、两数是否相等,以及测试状态标志或位状态等等。第17页/共105页 图 3 10 顺序结构 第18页/共105页图 3 11 分支结构 第19页/共105页循环结构如图312所示,它在一定的条件下,
9、反复执行某一部分的操作。循环结构又分为当型(While)循环结构和直到型(Until)循环结构两种方式,见图312的(a)、(b)。当型循环是先判断条件,条件成立则执行循环体A;而直到型循环则是先执行循环体A一次,再判断条件,条件不成立再执行循环体A。循环结构的两种形式可以互相转换。第20页/共105页 图 3 12循环结构(a)当型循环;(b)直到型循环 第21页/共105页由以上3种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于结构化的算法。虽然在3种基本结构的操作框A或B中,可能是一些简单操作,也可能还嵌套着另一个基本结构,但是不存在无规律的转移,只在该基
10、本结构内才存在分支和向前或向后的跳转。第22页/共105页顺序结构程序设计顺序结构是最简单的一种基本结构。如果某一个需要解决的问题可以分解成若干个简单的操作步骤,并且可以由这些操作按一定的顺序构成一种解决问题的算法,则可用简单的顺序结构来进行程序设计。第23页/共105页例1:单字节压缩BCD码转换成二进制码子程序。BCD2B:ORG2000HMOVA,R2;(A)(d1d0)BCDANLA,0F0H;取高位BCD码d1SWAP A;(A)=0d1HMOVB,0AH;(B)10MULAB;d110MOVR3,A;R3暂存乘积结果MOVA,R2;(A)(d1d0)BCDANLA,0FH;取低位B
11、CD码d0ADDA,R3;d110+d0MOVR2,A;保存转换结果RET;子程序返回第24页/共105页例2:双字节压缩BCD码转换成二进制码子程序。解:该转换的算法为:(d3d2d1d0)BCD=(d310+d2)100+(d110+d0)实现该算法的参考子程序如下:入口:R5(千位、百位)、R4(十位、个位)为BCD码。出口:R5R4(16位无符号二进制整数)。BCD4B:ORG2100HMOVA,R5;(A)d3d2(千位、百位)MOVR2,A;(R2)d3d2ACALLBCD2B;调例1子程序实现d310+d2A第25页/共105页MOVB,64H;(B)100MULAB;(d310
12、+d2)100MOVR6,A;R6暂存乘积低8位XCHA,B;乘积高8位送AMOVR5,A;R5暂存乘积高8位MOVA,R4;(A)d1d0(十位、个位)MOVR2,A;(R2)d1d0ACALLBCD2B;调例1子程序实现d110+d0A第26页/共105页ADDA,R6;(A)(R6)+(A)MOVR4,A;R4存转换后16位数低8位MOVA,R5;(A)(R5)ADDCA,00H;(A)(R5)+低8位和的进位CMOVR5,A;R5存转换后16位数高8位RET;子程序返回(注意:压缩BCD码的千位百位转换为二进制后不是xx00H的格式)第27页/共105页分支(选择)结构程序设计在实际的
13、程序设计中,有很多情况往往还需要程序按照给定的条件进行分支。这时就必须对某一个变量所处的状态进行判断,根据判断结果来决定程序的流向。这就是分支(选择)结构程序设计。在编写分支程序时,关键是如何判断分支的条件。在MCS51单片机指令系统中,有JZ(JNZ)、CJNE、JC(JNC)及JB(JNB)等丰富的控制转移指令,它们是分支结构程序设计的基础。第28页/共105页例3:设变量X存放在VAR单元中,函数Y存放在FUNC单元。编写按照下式要求给Y赋值的程序。1X0Y=0X=0-1X0则转移到POSIMOVA,0FFH;若X0时A=1COMP:MOVFUNC,A;存函数Y值HERE:AJMPHER
14、E;结束程序这是与高级语言编制时较大的区别!第31页/共105页例4:3个无符号单字节整数分别存于R1、R2、R3中,找出其中最大数放于R0中。解:首先将 R0 清零,然后进行(R1)与(R0)减法,若(R1)(R0)0,则(R1)(R0),把(R1)送(R0);否则(R0)保持不变。再将(R0)分别与(R2)和(R3)比较,比较处理的方法与上面相同,这样比较3次后,R0中即为3数中的最大数。程序清单如下:BR2:ORG2500HMOVR0,00H;R0清零MOVA,R1;第一个数(R1)送AACALLCOMP;比较(R1)与(R0)大小第32页/共105页MOVA,R2;第二个数(R2)送A
15、ACALLCOMP;比较(R2)与(R0)大小MOVA,R3;第三个数(R3)送AACALLCOMP;比较(R3)与(R0)大小HERE:AJMPHERECOMP:MOVR4,A;R4暂存A的内容CLRC;清进位位CSUBBA,R0;(A)(R0)JCM1;(A)(R0)时大数存R0M1:RET这个程序可以小改进一下,提高程序的执行效率。第33页/共105页循环结构程序设计在解决实际问题时,往往会遇到同样的一组操作需要重复多次的情况,这时应采用循环结构,以简化程序,缩短程序的长度及节省存储空间。例如,要做1到100的加法,没有必要写100条加法指令,而只需写一条加法指令,使其执行100次,每次
16、执行时操作数亦作相应的变化,同样能完成原来规定的操作。第34页/共105页循环程序一般由3部分组成:(1)置循环初值:即设置循环开始时的状态。(2)循环体:即要求重复执行的部分。(3)循环控制部分:它包括循环参数修改和依据循环结束条件判断循环是否结束两部分。i=100;sum=0;while(i0)sum=sum+i第35页/共105页例5:从BLOCK单元开始有一个无符号数数据块,其长度存于LEN单元,试求出数据块中最大的数并存入MAX单元。解:该问题解决方法与例4相同,所不同的是无符号数个数增加,即搜索寻找最大值的范围扩大了。因此,本例题采用直到型单重循环的程序结构方式比较合理。程序框图如
17、图314所示。第36页/共105页图 3 14 例 5 程序框图 第37页/共105页程序清单:LOOP:ORG2000HMOVR0,BLOCK;数据块首址送R0MOVR1,LEN;数据块长度送R1MOVMAX,00H;存最大数单元清零LOOP1:MOVA,MAX;(A)(MAX)CLRC;清CSUBBA,R0;(MAX)(R0)JNCNEXT;若(MAX)(R0),则转移MOVMAX,R0;若(MAX)(R0),则(MAX)(R0)NEXT:INCR0;修改地址指针DJNZR1,LOOP1;若(R1)0则循环搜索RET第38页/共105页例6:设计100ms延时程序。解:计算机执行一条指令需
18、要一定的时间,由一些指令组成一段程序,并反复循环执行,利用计算机执行程序所用的时间来实现延时,这种程序称为延时程序。如当系统使用12MHz晶振时,一个机器周期为1s,执行一条双字节双周期DJNZ指令的时间为2s,因此,执行该指令50000次,就可以达到延时100ms的目的。对于50000次循环可采用外循环、内循环嵌套的多重循环结构。本例题的程序流程如图315所示。第39页/共105页图 3 15 例 6 程序框图 第40页/共105页程序清单:START:ORG1000HMOVR6,0C8H;外循环200次LOOP1:MOVR7,0F8H;内循环248次NOP;时间补偿LOOP2:DJNZR7
19、,LOOP2;延时2s248=496sDJNZR6,LOOP1;延时500s200=100msRET以上程序执行MOVRn,data指令的时间为1s,DJNZ指令2s,NOP指令1s,所以,内循环延迟时间:1s+1s+2s248=498s,外循环延迟时间:1s+(内环延时+2s)200=100.001ms。第41页/共105页子程序结构程序设计在一个程序中,将反复出现的程序段编制成一个个独立的程序段,存放在内存中,这些完成某一特定任务可被重复调用的独立程序段被称为子程序。子程序的作用:(1)代码复用(2)结构清晰、易于维护在汇编语言源程序中使用子程序,需要强调注意两个问题,即子程序中参数传递和
20、现场保护的问题。第42页/共105页一般在汇编语言中采用的参数传递方法有以下3种。(1)用累加器或工作寄存器来传递参数。速度快、传递数据量较小(2)用指针寄存器传递参数。使用r1或者r0作为指针、数据量大(3)用堆栈来传递参数。数据量大、使用sp作为指针两种指针在使用时有区别第43页/共105页例7:将HEX单元存放的两个十六进制数分别转换成ASCII码,并存入ASC和ASC+1单元。解:由于伪指令DB在汇编后,使字节以ASCII码形式存放,所以采用查表子程序的方式来实现十六进制数到ASCII码的转换。转换子程序为HASC,调用时传递参数采用堆栈来完成。程序清单如下:ORG2000HPUSHH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 汇编
限制150内