第3章 MCS-51单片机指令系统1_第1页
第3章 MCS-51单片机指令系统1_第2页
第3章 MCS-51单片机指令系统1_第3页
第3章 MCS-51单片机指令系统1_第4页
第3章 MCS-51单片机指令系统1_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

05:09,1,单片机原理与接口技术,第3章MCS-51单片机指令系统,05:09,2,本章教学要求,熟悉MCS-51单片机指令系统的分类、格式;熟悉MCS-51指令系统的七种寻址方式;掌握MCS-51指令系统的数据传送、算术运算、逻辑运算、转移操作、布尔运算等指令的功能;掌握MCS-51指令系统的各种指令对寄存器资源的占用情况。,第3章MCS-51单片机指令系统,05:09,3,本章目录,3.1指令系统简介3.1.1指令系统的分类3.1.2指令格式3.1.3指令中的常用符号3.1.4寻址方式,第3章MCS-51单片机指令系统,3.2指令系统3.2.1数据传送指令3.2.2算术运算指令3.2.3逻辑运算指令3.2.4控制转移指令3.2.5位操作指令习题与思考题,05:09,4,3.1指令系统简介,指令系统计算机所有指令的集合,称为该计算机的指令系统,它是表征计算机性能的重要标志。每种计算机都有它自己特有的指令系统。指令是指计算机执行某种操作(如传送数据、做算术运算等)的命令。,-指令系统,05:09,5,要让计算机工作,就得向计算机发出指令。指令的格式是机器码指令格式,如:75905B,即数字格式。另一种指令格式,即汇编指令格式,如:MOVP1,#5BH,-指令的两种格式,3.1指令系统简介,05:09,6,-MCS-51汇编语言指令格式,操作码操作数1,操作数2;注释,MCS-51单片机的汇编语言使用40多种助记符表征30多种指令功能。MCS-51单片机能够识别并执行的指令共有111条。这111条指令,构成了MCS-51单片机的指令系统。,3.1指令系统简介,05:09,7,-特点,1)指令执行时间短。只需1个机器周期的指令有64条,2个机器周期的指令有45条,而4个机器周期的指令仅有2条(既乘法和除法指令)。2)指令字节少。单字节指令有49条,双字节指令有46条,三字节指令有16条。3)位操作指令极为丰富,这体现了MCS-51单片机具有面向控制的特点。,3.1指令系统简介,05:09,8,3.1.1指令系统的分类,MCS-51单片机能够识别并执行的指令共有111条。按指令所占字节数、指令执行时间和指令功能进行分类。1按指令所占字节数分类1)单字节指令(49条)2)双字节指令(46条)3)三字节指令(16条),-按指令所占存储空间分类,05:09,9,2按指令执行时间分类,1)单周期指令(65条)2)双周期指令(44条)3)四周期指令(2条),3.1.1指令系统的分类,-按指令执行时间可分类,05:09,10,1)数据传送类指令(29条)2)算术运算类指令(24条)3)逻辑运算类指令(24条)4)控制转移类指令(17条)5)位操作类指令(17条),3.1.1指令系统的分类,-按指令功能分类,3按指令功能分类,05:09,11,3.1.2指令格式,指令由操作码和操作数组成。操作码用来规定要执行的操作的性质,操作数为指令的操作提供数据和地址。1指令的基本格式符号地址:操作码操作数1,操作数2,操作数3;注释其中符号地址和操作码之间用“:”作为分隔符,也可再加上若干空格。操作码和操作数之间用空格作为分隔符。操作数之间用“,”作为分隔符。注释之前用“;”作为分隔符。,-基本格式,05:09,12,一条指令必须在一行中写完。例如:MAIN:MOVA,#10H;主程序段MAIN为符号地址;MOV为操作码;A、#10H为二个操作数;最后是注释。指令在送入计算机执行之前,必须先转换成机器语言形式。转换成机器语言的过程称为汇编,汇编有机器汇编和手工汇编两种方法。,3.1.2指令格式,-基本格式,05:09,13,3.1.3指令中的常用符号,为了便于阅读指令,MCS-51指令助记符中的一些常用符号约定如下。Rn:表示当前工作寄存器R0R7中的一个。Ri:表示寄存器间接寻址,常作间接寻址的地址指针。其中Ri代表R0和R1寄存器中的一个。direct:表示内部数据存贮器单元的地址及特殊功能寄存器SFR的地址,对SFR而言,既可使用它的物理地址,也可直接使用它的名字。,05:09,14,#date:表示8位立即数,即8位常数,取值范围为#00H#0FFH。date16:表示16位立即数,即16位常数,取值范围为#0000H#0FFFFH。addr16:表示16位地址。addr11:表示11位地址。rel:用补码形式表示的地址偏移量,取值范围为-128+127。bit:表示内部RAM和SFR中的具有位寻址功能的位地址。,3.1.3指令中的常用符号,05:09,15,:表示间接寻址寄存器或基址寄存器的前缀符号。$:表示当前指令的地址。/:位操作数的前缀,表示对该位操作数取反,如:/bit。(x):表示存储单元x的内容。(x):表示以寄存器或存储单元x的内容作为地址的存储单元的内容。:表示数据传送方向。,3.1.3指令中的常用符号,05:09,16,3.1.4寻址方式,如何找到参与运算的操作数据或数据所在的地址称为寻址方式。所以寻址方式是在地址范围内如何找到所需要的操作数的地址。MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。,05:09,17,立即寻址是将操作数直接写在指令中,作为指令的一部分存放在代码段里,位置在程序存储器中。立即寻址中的操作数,称为立即数。例如:MOVA,#30H;30HA,1.立即寻址,3.1.4寻址方式,-立即寻址,05:09,18,2.直接寻址,直接寻址是将操作数的地址直接存放在指令中。这种寻址方式的操作数指的是内部数据存储器中存放数据的地址,或存放数据的一个特殊功能寄存器地址。例如:MOVA,30H;(30H)A,3.1.4寻址方式,-直接寻址,05:09,19,直接寻址方式可访问的范围,1)特殊功能寄存器。这部分存储单元既可以用单元地址给出,也可以用寄存器符号的形式给出。如:MOVA,90H或MOVA,P1为同一条指令的两种写法(特殊功能寄存器只能用直接寻址方式访问)。2)内部数据存储器的低128个字节单元。直接以单元地址的形式给出对于8032/8052等单片机,其内部高128字节RAM(80HFFH)不能用直接寻址方式访问。,3.1.4寻址方式,-访问范围,05:09,20,3)位地址空间片内RAM中20H2FH中的128个位地址,以及SFR中的11个可进行位寻址的寄存器中的位地址(可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。4)在一些程序控制指令中,可采用直接寻址方式提供程序转移的目标地址。,3.1.4寻址方式,-访问范围,直接寻址方式可访问的范围,05:09,21,-寄存器寻址,寄存器寻址是指操作数存放在寄存器中,并且寻址时的寄存器已隐含在指令的操作码中。例如:MOVA,R5,3.1.4寻址方式,3.寄存器寻址,05:09,22,寄存器寻址方式的寻址范围:(1)4个工作寄存器组共32个通用寄存器(在指令中只能使用当前寄存器组)(2)部分特殊功能寄存器。如A,B,DPTR。,-寄存器寻址,3.1.4寻址方式,05:09,23,-寄存器寻址,4.寄存器间接寻址寄存器间接寻址是指操作数据存放在以寄存器内容为地址的单元中。如:MOVA,R0;(R0)A指令功能为将R0所指出的内部RAM单元内容送入累加器A中,执行过程如图所示。图中设R0=60H。,3.1.4寻址方式,05:09,24,寄存器间接寻址的寻址范围:,1)内部低128字节单元(只能使用R0、R1作间址寄存器)。2)外部数据存储器(64KB字节,使用DPTR作间址寄存器。另外,外部低128B单元也可用R0、R1作间址寄存器寻址)。3)在堆栈操作指令(PUSH、POP)中,以堆栈指针SP作间址寄存器,寻址空间为片内RAM。,3.1.4寻址方式,-寻址范围,05:09,25,-基址变址寻址,基址变址寻址是指操作数存放在以变址寄存器和基址寄存器的内容相加形成的数为地址的单元中。其中累加器A作变址寄存器、程序计数器PC或寄存器DPTR作基址寄存器。基址加变址寻址方式常用于查表操作。如:MOVCA,A+PC;PC+1PC,(A+PC)AMOVCA,A+DPTR;(A+DPTR)A,3.1.4寻址方式,5.基址变址寻址,05:09,26,相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。例如:JC80H;C=1则跳转,-相对寻址,3.1.4寻址方式,6.相对寻址,05:09,27,-位寻址,位寻址是指对片内RAM中20H2FH中的128个位地址,以及SFR中的11个可进行位寻址的寄存器中的位地址寻址(可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0P3)。例如:MOVC,20H此指令是将RAM中位寻址区20H位地址中的内容,送给位累加器Cy。位寻址指令不同于字节地址寻址指令,例如:MOVA,20H,3.1.4寻址方式,7.位寻址,05:09,28,-位寻址的表示形式,1)直接使用位地址包括位寻址区的位地址00H7FH和部分特殊功能寄存器的位地址。例如,PSW寄存器第2位的位地址为D2H。2)位名称表示法专用寄存器中的一些寻址位是有符号名的,对其进行位寻址时可用其符号名,例如,PSW寄存器的第2位可用OV表示。3)单元地址加位表示法例如,2F单元的第1位,可表示为2FH.1。再如,D0H单元(PSW)的第2位,可表示为D0H.2。,3.1.4寻址方式,05:09,29,4)专用寄存器名称加位表示法例如,PSW寄存器的第2位可表示为:PSW.2。对于可位寻址的特殊功能寄存器,上面4种表示法是等效的。以读取PSW第二位为例的4种位寻址指令如下:MOVC,0D2H;直接使用位地址寻址MOVC,OV;使用位名称寻址MOVC,0D0H.2;使用单元地址加位表示法寻址MOVC,PSW.2;使用专用寄存器名称加位表示法寻址,3.1.4寻址方式,-位寻址的表示形式,05:09,30,在MCS-51单片机的指令系统中,指令对哪一个存储器空间进行操作,是由指令的操作码和寻址方式确定的。1)对程序存储器只能采用立即寻址和基址加变址寻址方式;2)对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址;,3.1.4寻址方式,-总结,05:09,31,3)对8032/8052等单片机内部RAM的高128个字节(80HFFH),只能采用寄存器间接寻址,不能使用直接寻址方式;4)对位操作指令只能对位寻址区操作;5)外部扩展的数据存储器只能用MOVX指令访问;6)内部RAM的低128个字节(00H7FH)既能用直接寻址,也能用间接寻址。,3.1.4寻址方式,-总结,05:09,32,存储空间对应的寻址方式,3.1.4寻址方式,-寻址范围,05:09,33,3.2指令系统,MCS-51的数据传送指令共有29条。助记符有MOV、MOVC、MOVX、XCH、XCHD、PUSH、POP。数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令。数据传送指令不影响标志Cy、AC和OV,但可能会对奇偶标志P有影响。,3.2.1数据传送类指令,-传送指令,05:09,34,-传送指令列表,3.2.1数据传送类指令,05:09,35,-传送指令列表,3.2.1数据传送类指令,05:09,36,助记符功能说明MOVA,Rn;(Rn)ARn中的内容送到累加器A中MOVA,direct;(direct)A直接地址单元中的内容送到累加器A中MOVA,Ri;(Ri)ARi内容指向的地址单元中的内容送到累加器A中MOVA,#data;dataA立即数送到累加器A中功能:将源操作数指定内容送到累加器A中。,-传送指令列表,3.2.1数据传送类指令,1以累加器为目的操作数的指令(4条),05:09,37,助记符功能说明MOVRn,A;(A)Rn累加器A中的内容送到寄存器Rn中MOVRn,direct;(direct)Rn直接寻址单元中的内容送到寄存器Rn中MOVRn,#data;dataRn立即数直接送到寄存器Rn中功能:将源操作数指定的内容送到所选定的工作寄存器Rn中。,-传送指令列表,3.2.1数据传送类指令,2以寄存器Rn为目的操作数的指令(3条),05:09,38,助记符功能说明MOVdirect,A;(A)direct累加器A中的内容送到直接地址单元中MOVdirect,Rn;(Rn)direct寄存器Rn中的内容送到直接地址单元中MOVdirect1,direct2;(direct2)direct1直接地址单元2中的内容送到直接地址1中MOVdirect,Ri;(Ri)direct以寄存器Ri中的内容为地址的单元中内容送到直接地址单元中MOVdirect,#data;datadirect立即数送到直接地址单元中,-传送指令列表,3.2.1数据传送类指令,3以直接地址为目的操作数的指令(5条),05:09,39,功能:将源操作数指定的内容送到由直接地址指出的片内存储单元中。如:MOV20H,A;累加器A中的内容送到20H直接地址单元中MOV20H,R1;寄存器R1中的内容送到20H直接地址单元中MOV20H,30H;30H直接地址单元中的内容送到20H直接地址单元中MOV20H,R1;以寄存器R1中的内容为地址的单元中内容送到20H直接地址单元中MOV20H,#34H;立即数送到20H直接地址单元中MOVP2,#34H;立即数送到P2直接地址单元中,-传送指令列表,3.2.1数据传送类指令,05:09,40,助记符功能说明MOVRi,A;(A)(Ri)累加器A中内容送到以Ri中内容为地址的RAM单元中MOVRi,direct;(direct)(Ri)直接地址单元中内容送到以Ri中内容为地址的RAM单元中MOVRi,#data;data(Ri)立即数送到以Ri中内容为地址的RAM单元中,-传送指令列表,3.2.1数据传送类指令,4以间接地址为目的操作数的指令(3条),05:09,41,功能:将源操作数指定的内容送到以R0或R1为地址指针的片内RAM存储单元中。如:MOVR0,A;累加器A中内容送到以R0中内容为地址的RAM单元中MOVR1,20H;20H单元中内容送到以R1中内容为地址的RAM单元中MOVR0,#34H;立即数34H送到以R0中内容为地址的RAM单元中,-传送指令列表,3.2.1数据传送类指令,05:09,42,助记符功能说明MOVDPTR,#data16;dataHDPH,dataLDPL;16位常数的高8位送到DPH,低8位送到DPL功能:将一个16位的立即数送到DPTR中去。其中高8位送入DPH,低8位送入DPL。如:MOVDPTR,#1234H;指令执行后DPH中的值为12H,DPL中的值为34H,-传送指令列表,3.2.1数据传送类指令,516位数的传递指令(1条),05:09,43,如果我们分别向DPH和DPL送数,则结果也一样。如下面两条指令:MOVDPH,#12HMOVDPL,#34H就相当于执行了MOVDPTR,#1234H。MCS-51是一种8位机,这是唯一的一条16位立即数传递指令。,-传送指令列表,3.2.1数据传送类指令,05:09,44,助记符功能说明MOVXA,Ri;(Ri)A寄存器Ri指向的片外RAM单元中的内容送到累加器A中MOVXRi,A;A(Ri)累加器A中内容送到寄存器Ri指向的片外RAM单元中MOVXA,DPTR;(DPTR)A数据指针指向的片外RAM单元中的内容送到累加器A中MOVXDPTR,A;(A)(DPTR)累加器A中内容送到数据指针指向的片外RAM单元中,-传送指令列表,3.2.1数据传送类指令,6累加器A与片外RAM数据传送指令(4条),05:09,45,功能:在MCS-51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必须通过A传送,而所有要读入的外部RAM中的数据也必须通过A读入。在此我们可以看出内外部RAM的区别,内部RAM间可以直接进行数据传递,而外部RAM则不行。例如,要将外部RAM中某一单元(假设为0100H单元的数据)送入另一个单元(假设为0200H单元),则必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。,-传送指令列表,3.2.1数据传送类指令,05:09,46,要读或写外部RAM,必须要知道16位的RAM地址。在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址,此时,高8位地址要由P2口来提供。使用时应先将要读或写的地址送入DPTR或Ri(高8位地址送到P2口)中,然后再用读/写指令。,-传送指令列表,3.2.1数据传送类指令,05:09,47,例3-1将外部RAM的100H单元中内容送入外部RAM的200H单元中。MOVDPTR,#0100HMOVXA,DPTRMOVDPTR,#0200HMOVXDPTR,A,-传送指令应用,3.2.1数据传送类指令,05:09,48,助记符功能说明MOVCA,A+DPTR;(A)+(DPTR)A表格地址;单元中的内容送到累加器A中MOVCA,A+PC;(PC)+1PC,(A)+(PC)A;表格地址单元中的内容送到累加器A中功能:将ROM中的数据送到A中。常用此指令来查一个已存储在ROM中的数据表格。这组指令也称为查表指令。,-传送指令应用,3.2.1数据传送类指令,7读程序存储器指令(2条),05:09,49,以DPTR或PC为基址,以A为变址,在不断修改A中内容(等值增量)的同时,执行该指令,实现对ROM中存储的一块区域数据的读取。以PC为基址时,不用设置PC的值,只需根据A的内容,就可以查出表格中的数据。但表格只能放在该条查表指令后面的256个单元之中,表格的大小受到限制,而且表格只能被一段程序所利用。而以DPTR为基址时,表格的大小和位置可以在64KB的ROM中任意安排,并且表格可被任意程序块所共享。说明:查找到的结果放在A中,因此,这类指令执行前后,A中的值不一定相同。,-传送指令应用,3.2.1数据传送类指令,05:09,50,例3-2有一个110的平方表存放在0100H开始的ROM中,用DPTR和R0基址+变址的寻址方式实现查表功能,确定110(在R0中)的平方值。MOVDPTR,#0100HMOVA,R0MOVCA,A+DPTR.ORG0100;ORG是指明后面数据块的起始地址DB0,1,4,9,16,25,36DB49,64,81,100;DB是定义字节指令,-传送指令应用,3.2.1数据传送类指令,05:09,51,助记符功能说明PUSHdirect;(SP)+1SP,(direct)(SP);堆栈指针首先加1,直接寻址单元;中的数据送到堆栈指针SP所指的;单元中POPdirect;(SP)direct,(SP)-1SP;堆栈指针SP所指的单元中的数据;送到直接寻址单元中,堆栈指针;SP再进行减1操作,-传送指令应用,3.2.1数据传送类指令,8堆栈操作(2条),05:09,52,功能:第1条为压入堆栈指令,就是将direct中的内容送入堆栈中;第2条为弹出堆栈指令,就是将堆栈中的内容送回到direct中。如:MOVSP,#5FHMOVA,#100MOVB,#20PUSHACCPUSHB,-传送指令应用,3.2.1数据传送类指令,其中,PUSHACC指令是这样执行的:将SP中的值加1,即变为60H,然后将A中的值送到60H单元中,因此执行完本条指令后,内存60H单元中的值就是100。同样,执行PUSHB时,是将SP中的值加1,即变为61H,然后将B中的值送入到61H单元中,即执行完本条指令后,61H单元中的值变为20。,05:09,53,助记符功能说明XCHA,Rn;(A)(Rn)累加器与工作寄存器Rn中的内容互换XCHA,direct;(A)(direct)累加器与直接地址单元中的内容互换XCHA,Ri;(A)(Ri)累加器与工作寄存器Ri所指存储单容互换元中的内容互换,-传送指令应用,3.2.1数据传送类指令,9交换指令(5条),05:09,54,XCHDA,Ri;(A.3A.0)(Ri.3Ri.0)累加器与工作寄存器Ri所指存储单元中的低半字节内容互换SWAPA;(A.3A.0)(A.7A.4)累加器中内容高低半字节互换功能:前4条指令是把累加器A中的内容与源操作数所指的数据相互交换。最后一条指令将累加器A中的内容高低半字节互换。,-传送指令应用,3.2.1数据传送类指令,05:09,55,例3-3假设A中内容为34H,R0指向的单元内容为56H。执行下列指令后看结果。MOVR6,#29H;R6=29HXCHA,R6;A=29H,R6=34HSWAPA;A=92HXCHA,R6;A=34H,R6=92HXCHDA,R0;A=36H,(R0)=54H,-传送指令应用,3.2.1数据传送类指令,05:09,56,3.2.2算术运算类指令,MCS-51的算术运算指令共有24条。助记符有ADD、ADDC、SUBB、DA、INC、DEC、MUL、DIV。算术运算主要是执行加、减、乘、除法四则运算。,05:09,57,3.2.2算术运算类指令,-运算指令列表,05:09,58,3.2.2算术运算类指令,-运算指令列表,05:09,59,3.2.2算术运算类指令,-运算指令对标志位的影响,05:09,60,例3-4设1067H存在于R1R0中,30A0H存在于R3R2中,计算R1R0+R3R2,结果存于R5R4中。MOVA,R0ADDA,R2;R0+R2A和CyMOVR4,AMOVA,R1ADDCA,R3;R1+R3+CyA和CyMOVR5,A,R1R0+R3R2R5R4,3.2.2算术运算类指令,-运算指令应用,05:09,61,例3-5设A=12H,R0=33H,(21H)=32H,(34H)=22H,DPTR=1234H。连续执行下面指令后看相应寄存器和单元中的结果。INCA;A=13HINCR0;R0=34HINC21H;(21H)=33HINCR0;(34H)=23HINCDPTR;DPTR=1235H,3.2.2算术运算类指令,-运算指令应用,05:09,62,3.2.3逻辑运算类指令,逻辑运算和移位指令共有24条,助记符有ANL、ORL、XRL、CLR、CPL、RL、RLC、RR、RRC。有与、或、异或、求反、左/右移位、清0等逻辑操作,有直接、寄存器和寄存器间址等寻址方式。这类指令一般不影响程序状态字(PSW)标志。MCS-51指令系统的逻辑运算指令见表3-5。,05:09,63,逻辑运算类指令列表,05:09,64,逻辑运算类指令列表,05:09,65,助记符功能说明ORLA,Rn;(A)(Rn)AORLA,direct;(A)(direct)AORLA,Ri;(A)(Ri)AORLA,#data;(A)dataAORLdirect,A;(direct)(A)directORLdirect,#data;(direct)datadirect,3.2.3逻辑运算类指令,1逻辑或指令(6条),05:09,66,3.2.3逻辑运算类指令,功能:将两个单元中的内容执行逻辑或操作。如果目的操作数的直接地址是I/O地址,则为“读修改写”操作。如:MOVA,#45H;A=45HMOVR1,#25H;R1=25HMOV25H,#39H;(25H)=39HORLA,R1;45H39H=7DH,A=7DHORL25H,#13H;39H13H=3BH,(25H)=3BHORL25H,A;3BH7DH=7FH,(25H)=7FH,05:09,67,3.2.3逻辑运算类指令,助记符功能说明ANLA,Rn;(A)(Rn)AANLA,direct;(A)(direct)AANLA,Ri;(A)(Ri)AANLA,#data;(A)dataAANLdirect,A;(direct)(A)directANLdirect,#data;(direct)datadirect,2逻辑与指令(6条),05:09,68,3.2.3逻辑运算类指令,功能:将两个单元中的内容执行逻辑与操作。如果目的操作数的直接地址是I/O地址,则为“读修改写”操作。如:MOVA,#45H;A=45HMOVR1,#25H;R1=25HMOV25H,#79H;(25H)=79HANLA,R1;45H79H=41H,A=41HANL25H,#15H;79H15H=11H,(25H)=11HANL25H,A;11H41H=01H,(25H)=01H,05:09,69,3.2.3逻辑运算类指令,助记符功能说明XRLA,Rn;(A)(Rn)AXRLA,direct;(A)(direct)AXRLA,Ri;(A)(Ri)AXRLA,#data;(A)dataAXRLdirect,A;(direct)(A)directXRLdirect,#data;(direct)datadirect,3逻辑异或指令(6条),05:09,70,3.2.3逻辑运算类指令,功能:将两个单元中的内容执行逻辑异或操作。如果直接地址是I/O地址,则为“读修改写”操作。如:MOVA,#45H;A=45HMOVR1,#25H;R1=25HMOV25H,#39H;(25H)=39HXRLA,R1;45H39H=7CH,A=7CHXRL25H,#13H;39H13H=2AH,(25H)=2AHXRL25H,A;2AH7CH=56H,(25H)=56H,05:09,71,3.2.3逻辑运算类指令,助记符功能说明清零:CLRA;0A,这条指令将累加器A中的内容清零。取反:CPLA;/(A)A,这条指令将累加器A中的内容按位取反。如:若A=5CH,执行CPLA后的结果是A=A3H。,4清零与取反指令(2条),05:09,72,3.2.3逻辑运算类指令,RLA;累加器A中的内容向左环移1位RLCA;累加器A中的内容带进位标志位向左环移1位,5循环移位指令(4条),05:09,73,3.2.3逻辑运算类指令,RRA;累加器A中的内容向右环移1位RRCA;累加器A中的内容带进位标志位向右环移1位,5循环移位指令(4条),05:09,74,3.2.3逻辑运算类指令,功能:对累加器A中的内容进行简单的逻辑操作。除了带进位标志位的移位指令外,其他都不影响Cy,AC,OV等标志位。如:若A=5CH,Cy=1,执行RLCA后,结果为A=B9H,Cy=0,P=1。对RLC和RRC指令,在Cy=0时:RLC相当于乘以2,RRC相当于除以2。,5循环移位指令(4条),05:09,75,3.2.4控制转移类指令,控制转移指令有17条,助记符有:ACALL、LCALL、RET、RETI、AJMP、LJMP、SJMP、JMP、CJNE、DJNZ、JZ、JNZ、NOP。控制转移指令用于控制程序的流向,所控制的范围即为程序存储器区间。,05:09,76,控制转移类指令列表,3.2.4控制转移类指令,05:09,77,3.2.4控制转移类指令,控制转移类指令列表,05:09,78,3.2.4控制转移类指令,控制转移类指令列表,05:09,79,MOVDPTR,#TAB;将TAB代表的地址送入DPTRJMPA+DPTR;跳转TAB:AJMPROUT0;A=0时,跳转到ROUT0TAB+2:AJMPROUT1;A=2时,跳转到ROUT1TAB+4:AJMPROUT2;A=4时,跳转到ROUT2TAB+6:AJMPROUT3;A=6时,跳转到ROUT3.ROUT0:.ROUT1:.ROUT2:.ROUT3:.,3.2.4控制转移类指令,例3-6利用间接转移指令实现散转程序结构。,05:09,80,例3-7条件转移程序结构举例。MOVA,R0JZL1MOVR1,#00HAJMPL2L1:MOVR1,#0FFHL2:SJMPL2在执行上面这段程序前,如果R0=0,结果是R1=0FFH;如果R00,结果是R1=00H。把上面例子中的JZ改成JNZ后,如果R0=0,结果是R1=00H;如果R00,结果是R1=0FFH。,3.2.4控制转移类指令,05:09,81,MOVA,R0CJNEA,#10H,L1;如R010H,则转移至标号L1MOVR1,#0;如R0=10H,则不转移,00HR1AJMPL3L1:JCL2;如Cy=1,即R010H,0AAHR1AJMPL3L2:MOVR1,#0FFH;R010H,则R1=0AAH;如果R010H,则R1=0FFH。,3.2.4控制转移类指令,例3-8比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论