书签 分享 收藏 举报 版权申诉 / 52
上传文档赚钱

类型MCS51单片机指令系统课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4290524
  • 上传时间:2022-11-26
  • 格式:PPT
  • 页数:52
  • 大小:396.25KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《MCS51单片机指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    MCS51 单片机 指令系统 课件
    资源描述:

    1、 标号:标号:操作码操作码 操作数操作数1 1,操作数,操作数22;注释;注释 换行表示一条指令结束。换行表示一条指令结束。例:例:LOOPLOOP:MOV A MOV A,#40H#40H;取参数取参数1.1.标号:标号:指令的符号地址指令的符号地址2.2.操作码:操作码:指明指令功能。指明指令功能。3.3.操作数:操作数:指令操作对象指令操作对象数据、地址、寄存器名及约定符号。数据、地址、寄存器名及约定符号。4.4.注释行:注释行:说明指令在程序中的作用。说明指令在程序中的作用。操作码和操作数操作码和操作数是指令主体。是指令主体。MOV_move传送传送XCH_exchange交换交换AN

    2、L_and logic与逻辑运算与逻辑运算XRL_exclusive or异或运算异或运算MUL_Multiply乘法乘法RR_rotate right右循环右循环SJMP_short jump短跳转短跳转RET_return 子程序返回子程序返回操作码操作码 操作数操作数1 1 操作数操作数22有单字节、双字节和三字节指令。有单字节、双字节和三字节指令。汇编语言指令中操作码和操作数是指令主体,称为汇编语言指令中操作码和操作数是指令主体,称为指令可执行部分,指令表中可查出对应指令代码。指令可执行部分,指令表中可查出对应指令代码。举例:举例:汇编语言:汇编语言:机器语言:机器语言:MOV AMO

    3、V A,R0R0E8HE8HMOV R6MOV R6,#32H#32H7E 32H7E 32HMOV 40HMOV 40H,#100#10075 40 64H75 40 64H111010000111111000110010011101010100000001100100位位(b)b)位寻址区中的一位二进制数据位寻址区中的一位二进制数据字节字节(B)8B)8位二进制数据位二进制数据字字(W)16W)16位双字节数据位双字节数据一一.立即寻址方式立即寻址方式指令中给出实际操作数据指令中给出实际操作数据(立即数立即数),一般用于为,一般用于为寄存器或存储器赋常数初值。寄存器或存储器赋常数初值。举例

    4、:举例:8 8位立即数:位立即数:MOV AMOV A,#40H#40H ;A A 40H40H 1616位立即数:位立即数:MOV DPTRMOV DPTR,#2100H#2100H;DPTRDPTR 2100H2100H二二.直接寻址方式直接寻址方式指令操作数是存储器单元地址,数据在存储器单元中。指令操作数是存储器单元地址,数据在存储器单元中。MOV AMOV A,40H40H;A A(40H)(40H)直接寻址方式对数据操作时,地址是直接寻址方式对数据操作时,地址是固定值,而地址所指定的单元内容为固定值,而地址所指定的单元内容为变量形式。变量形式。41H 78H40H 56H56H 例:

    5、例:设存储器两个单元的内容如图所示,设存储器两个单元的内容如图所示,执行指令执行指令 MOV AMOV A,40H40H后后 A=A=?思考题:思考题:直接寻址方式指令和立即寻址方式指令的形直接寻址方式指令和立即寻址方式指令的形式有什么不同?式有什么不同?三三.寄存器寻址方式寄存器寻址方式指令操作数为寄存器名,数据在寄存器中。指令操作数为寄存器名,数据在寄存器中。例例:MOV AMOV A,R0R0;A A R0R0设指令执行前设指令执行前 A=20HA=20H,R0=40HR0=40H,执行指令后,执行指令后,A=A=?,?,R0=R0=?四四.寄存器间接寻址方式寄存器间接寻址方式 指令的操

    6、作数为寄存器名,寄存器中为数据地址。指令的操作数为寄存器名,寄存器中为数据地址。存放地址的寄存器称为间址寄存器或数据指针。存放地址的寄存器称为间址寄存器或数据指针。例例:MOV AMOV A,R0R0;A A(R0)(R0)设指令执行前设指令执行前 A=20HA=20H,R0=40HR0=40H,地址为地址为4040H H存储器存储器单元内容如图所示单元内容如图所示。执行指令后,执行指令后,A=A=?,R0=,R0=?,(40H)=,(40H)=?41H 67H 40H 34H34H40H34H40H40H0100 0000A0010 0000R00100 0000R0五五.变址间接寻址方式变

    7、址间接寻址方式 数据在存储器中,指令给出的寄存器中为数据的基数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。地址和偏移量。数据地址数据地址=基地址基地址+偏移量。偏移量。例:例:MOVC AMOVC A,A+DPTRA+DPTR;A A(A+DPTR)(A+DPTR)设指令执行前设指令执行前 A=09HA=09H,DPTR=2000HDPTR=2000H,存储器单元内容存储器单元内容如图所示。执行指令后,如图所示。执行指令后,A=A=?DPTR=DPTR=?12H2000H六六.相对寻址方式相对寻址方式可以修改可以修改PCPC值值 指令给出地址的相对偏移量指令给出地址的相对偏移量re

    8、lrel,在加上,在加上PCPC中的当前中的当前值,如此得到真正的数据地址。值,如此得到真正的数据地址。例:例:1000H1000H:JCJC 55H55H;若若CyCy为为1 1,则转移,则转移 设指令执行前设指令执行前 Cy=1Cy=1,指令在程序存储器单元中情况如指令在程序存储器单元中情况如图,执行指令后,图,执行指令后,PC=PC=?1057H1057H2008H 89H2009H 12H1002H 010000001001H 010101011000H 01000000七七.位寻址方式位寻址方式 指令给出位地址。一位数据在存储器位寻址区。指令给出位地址。一位数据在存储器位寻址区。例:

    9、例:MOV C,40H;Cy(位地址位地址40H)设指令执行前设指令执行前 Cy=1,位地址位地址40H存储器单元如存储器单元如图,执行指令后,图,执行指令后,Cy=?思考:思考:比较指令比较指令 MOV A,40H 和和 MOV C,40H的区的区别。别。28H 0110001029H 11010111位寻址区指令功能分类:指令功能分类:数据传送、数据操作、布尔处理、程序控制。数据传送、数据操作、布尔处理、程序控制。3-4-13-4-1 数据传送指令数据传送指令实现寄存器、存储器之间的数据传送。实现寄存器、存储器之间的数据传送。一一.内部传送指令内部传送指令:片内数据存储器数据传送。片内数据

    10、存储器数据传送。二二.外部传送指令外部传送指令:片外数据存储器数据传送。片外数据存储器数据传送。三三.交换指令交换指令:片内数据存储器数据传送。片内数据存储器数据传送。四四.堆栈操作指令堆栈操作指令:片内数据存储器数据传送。片内数据存储器数据传送。五五.查表指令查表指令:程序存储器数据传送。程序存储器数据传送。(一一)内部传送指令内部传送指令:实现片内数据存储器中数据传送。:实现片内数据存储器中数据传送。指令格式指令格式:MOVMOV 目的目的操作数,操作数,源源操作数操作数 寻址方式寻址方式:立即寻址、直接寻址、寄存器寻址、寄存:立即寻址、直接寻址、寄存器寻址、寄存器间址。器间址。习题习题1

    11、 1:找出配对指令,实现反向传送。找出配对指令,实现反向传送。指令机器码:指令机器码:1110111101rrr rrr E8E8EFEF11100101 n 11100101 n E5E5 n n1110011i 1110011i E6E6、E7E7 01110100 01110100 d d 74 74 d d 10101rrr n10101rrr n 1010011i n 1010011i n 85 n1 n2 85 n1 n2 90 90 d1 d2d1 d2MOV AMOV A,Rn Rn ;AARnRn,RnRn=R=R0 0R R7 7 MOV AMOV A,n n ;A(n)A

    12、(n),MOV AMOV A,RiRi ;A(A(RiRi),RiRi=R=R0 0、R R1 1 MOV AMOV A,#data#data ;AdataAdata,MOV MOV RnRn,n ,n ;RnRn(n)(n)MOV MOV RiRi,n ,n ;(RiRi)(n)(n)MOV n1MOV n1,n2 n2;(n1)(n2)(n1)(n2)MOV DPTRMOV DPTR,#d1d2#d1d2;DPTRd1d2DPTRd1d2例例3-4-13-4-1:顺序执行下列指令序列,求每一步执行结果顺序执行下列指令序列,求每一步执行结果。MOV AMOV A,#30H#30HMOV 4F

    13、HMOV 4FH,A AMOV R0MOV R0,#20H#20HMOV R0MOV R0,4FH4FHMOV 21HMOV 21H,20H20H地址内容60H32H32H58H习题习题2 2:用两种寻址方式实现,将片内用两种寻址方式实现,将片内RAM RAM 6060H H单元的数单元的数据传送给累加器据传送给累加器A A。解:解:MOV A,#60HMOV A,#60HMOV R0MOV R0,#60H#60H MOV AMOV A,R0R0;A=30HA=30H;(4FH)=30H(4FH)=30H;R0=20HR0=20H;(20H)=30H(20H)=30H;(21H)=30H(21

    14、H)=30HMOV R0MOV R0,60H 60H MOV AMOV A,R0R0解:解:MOV A,60HMOV A,60H说明:说明:只有指令表中的指令才有对应指令代码,计算机才只有指令表中的指令才有对应指令代码,计算机才能执行。编程时,不能随意创造发明指令。能执行。编程时,不能随意创造发明指令。1.一条指令中不能同时出现两个工作寄存器:一条指令中不能同时出现两个工作寄存器:非法非法指令:指令:MOV R1MOV R1,R2R2MOV R2MOV R2,R0R02.间址寄存器只能使用间址寄存器只能使用 R0R0、R1R1。非法非法指令:指令:MOV AMOV A,R2R23.SFRSFR

    15、区只能直接寻址,不能用寄存器间接寻址。区只能直接寻址,不能用寄存器间接寻址。非法非法指令:指令:MOV R0MOV R0,#80H#80HMOV AMOV A,R0R04.指令表:指令表:指令字节数,机器周期数指令字节数,机器周期数(二)(二)外部传送指令外部传送指令实现片外数据存储器和实现片外数据存储器和A A累加器之间的数据传送。累加器之间的数据传送。指令格式:指令格式:MOVXMOVX 目的目的操作数,操作数,源源操作数操作数寻址方式:片外数据存储器用寄存器间址方式。寻址方式:片外数据存储器用寄存器间址方式。1.1.DPTRDPTR作作1616位数据指针,寻址位数据指针,寻址6464KB

    16、KB片外片外RAMRAM空间空间MOVX AMOVX A,DPTRDPTR;A(DPTR)A(DPTR)MOVX DPTRMOVX DPTR,A A;(DPTR)A(DPTR)A2.2.RiRi作低作低8 8位数据指针,寻址位数据指针,寻址256256B B片外片外RAMRAM空间空间MOVXMOVX A A,RiRi;A(A(RiRi)MOVXMOVX RiRi,A A;(RiRi)A)A注意:此时高注意:此时高8 8位地址由位地址由P2P2口寄存器值决定口寄存器值决定例例3-4-23-4-2:实现片外数据存储器数据传送实现片外数据存储器数据传送(2000(2000H)H)(2100H)(2

    17、100H)。MOV DPTRMOV DPTR,#2000H#2000HMOVX AMOVX A,DPTRDPTRMOV DPTRMOV DPTR,#2100H#2100HMOVX DPTRMOVX DPTR,A A片外RAM地址内容2000HXDPTR2100H片外RAM地址内容2000HXDPTR2100HX习题习题3:将片外将片外RAM 0000HRAM 0000H单元的数据传送单元的数据传送到片内到片内RAMRAM的的 6060H H单元单元。;DPTR=2000HDPTR=2000H;A=X A=X;DPTR=2100H DPTR=2100H;(2100H)=X(2100H)=X片外数

    18、据存储器不能直接片外数据存储器不能直接寻址。下列为寻址。下列为非法非法指令:指令:MOVX AMOVX A,2000H 2000H MOVX 2100H MOVX 2100H,2000H2000H思考题:思考题:为什么对为什么对DPTRDPTR的数据传送使用内部传送指令?的数据传送使用内部传送指令?(三)(三)交换指令交换指令 实现片内实现片内RAMRAM区的数据双向传送。区的数据双向传送。1.1.字节交换指令字节交换指令XCH AXCH A,RnRn ;A A RnRnXCH AXCH A,RiRi;A A (RiRi)XCH AXCH A,n n ;A A (n)(n)片内 RAM 地址

    19、内容 2BH 35H 2AH 38H 20H 习题习题4 4:将片内将片内RAMRAM6060H H单元与单元与6161H H单元的数据交换。单元的数据交换。例:例:设设A=29HA=29H,执行指令执行指令 XCH AXCH A,2AH2AH后,后,A=A=?(2AH)=(2AH)=?38H29HXCH 60HXCH 60H,61H 61H 对吗?对吗?29 H2.2.半字节交换指令半字节交换指令XCHD AXCHD A,RiRi;A A0 03 3 (RiRi)0 03 3SWAP ASWAP A ;A A4 47 7 A A0 03 3例例3-4-33-4-3:将片内将片内RAM RAM

    20、 2 2AH(AH(十位)和十位)和2 2BHBH(个位)单元个位)单元中的单字节中的单字节BCDBCD码转换成压缩式码转换成压缩式BCDBCD码存入码存入2020H H单元。单元。压压缩缩 式式BCD码码千位 百位十位 个位A0000000000H00001000100000001000010108H80H85HMOV A,#0MOV R0,#2AHMOV R1,#2BHXCHD A,R0SWAP AXCHD A,R1XCH A,20H0000000000H0000000000H85HR1R0单单字字节节 BCD0000 千位0000 百位0000 十位0000 个位习题:习题:交换片内交换

    21、片内RAM RAM 4040H H单元和单元和 41 41H H单元的低半字节。单元的低半字节。片内RAM地址内容2BH05H2AH08H20H(四)堆栈操作指令(四)堆栈操作指令 入栈指令:入栈指令:PUSH n PUSH n ;SPSP SP+1SP+1,(SP)(SP)(n)(n)出栈指令:出栈指令:POPPOP n n ;(n)(n)(SP)(SP),SPSP SP-1SP-1例:例:设设 A=02A=02,B=56HB=56H,执行下列指令后,执行下列指令后,SP=SP=?,?,A=A=?,B=?B=?片内RAM34H33H32H31H30H SPSP SP 02 SP 56H 02

    22、 56H 02HSP SP 56H 02 SP 56H 02 56H SP 02 02HA00H02H00H02H02HSBRSBR:MOV SP MOV SP,#30H#30H;设栈底;设栈底 PUSH APUSH A PUSH B PUSH B MOV A MOV A,#0#0 MOV MOV B B,#01#01 POP POP B B POP A POP A (五五)查表指令查表指令 实现从程序存储器读取数据到实现从程序存储器读取数据到A A累加器累加器,只能使用变只能使用变址间接寻址方式址间接寻址方式。多用于查常数表程序,可直接求取常数表中的函数值。多用于查常数表程序,可直接求取常数

    23、表中的函数值。1 1DPTRDPTR为基址寄存器为基址寄存器MOVCMOVC A A,A+DPTR A+DPTR;A A(A+DPTR)(A+DPTR)查表范围为查表范围为 64 64KB KB 程序存储器任意空间,称为远程程序存储器任意空间,称为远程查表指令查表指令 。2 2PCPC为基址寄存器为基址寄存器MOVCMOVC A A,A+PCA+PC;A A(A+PC)(A+PC)常数表只能在查表指令后常数表只能在查表指令后256256B B范围内。范围内。例:查表法求例:查表法求Y=XY=X2 2。设设X(0X15)X(0X15)在片内在片内RAMRAM的的2020H H单单元中,要求将查表

    24、求元中,要求将查表求Y Y,存入片内存入片内RAM RAM 2121H H单元。单元。1 1)ORG 1000HORG 1000HSQU:SQU:MOV DPTRMOV DPTR,#TAB#TAB;确定表首地址(基地址);确定表首地址(基地址)MOV AMOV A,20H20H;取取X X(偏移量偏移量MOVC AMOVC A,A+DPTRA+DPTR;查表求查表求Y=XY=X2 2MOV 21HMOV 21H,A A;保存保存Y YRETRET;子程序结束子程序结束;其它程序段;其它程序段ORG 3000HORG 3000H;常数表格首地址常数表格首地址TAB:TAB:DB 00DB 00,

    25、0101,0404,0909,225225;平方表平方表2 2)指令地址指令地址 源程序源程序 ORG 1000HORG 1000H ;程序起始地址程序起始地址 1000 1000H H SQU:SQU:MOV A MOV A,20H20H;取取X X 1002H 1002H ADD A ADD A,#3#3 ;修正偏移量修正偏移量 1004 1004H H MOVC AMOVC A,A+PCA+PC ;查表查表求求Y=XY=X2 2 1005H1005H MOV 21H MOV 21H,A A;存结存结果果 1007 1007H H RET RET ;子程子程序结束序结束 1008 1008

    26、H H TAB:TAB:DB 00 DB 00,0101,04 04;平方平方表表 100 100BHBH DB 09 DB 09,225 225 思考题:思考题:当当00X255X255时,如何用查表法编程求时,如何用查表法编程求Y=XY=X2 2。例:例:查表法求查表法求Y=XY=X2 2。设设X(0X15)X(0X15)在片内在片内RAMRAM的的2020H H单单元中,要求将查表求元中,要求将查表求Y Y,存入片内存入片内RAM RAM 2121H H单元。单元。习题:习题:找出指令错误并改正:找出指令错误并改正:1 1MOV AMOV A,#1000H#1000H;A1000HA10

    27、00H2 2MOVX AMOVX A,1000H1000H;A(1000H)A(1000H)片外片外RAM3 3MOVC AMOVC A,1000H1000H;A(1000H)A(1000H)片外片外ROM4 4MOVX 60HMOVX 60H,A A;片外片外RAM(60H)ARAM(60H)A5 5MOV R0MOV R0,60H60H;片内片内RAMRAM:(61H)(60H)(61H)(60H)MOV 61H MOV 61H,R0R06.6.XCH R1 XCH R1,R2R2;R1R2R1R27.7.MOVX DPTR MOVX DPTR,#2000H#2000H;DPTR2000H

    28、DPTR2000H8.8.MOVX 60H MOVX 60H,DPTRDPTR;片内片内RAMRAM片外片外RAMRAM与数据传送指令不同,多数算术运算指令会影响与数据传送指令不同,多数算术运算指令会影响标志位的状态,即标志位的状态,即CPUCPU执行算术运算指令后,根据执行算术运算指令后,根据数据操作情况自动设置标志位的状态。数据操作情况自动设置标志位的状态。CyACF0RS1RS0OVPMCS-51 MCS-51 的程序状态字寄存器的程序状态字寄存器 PSW PSW 为标志寄存器。为标志寄存器。其格式如下:其格式如下:1 1标志位标志位(自动设置状态自动设置状态)1 1)CyCy:进位标志

    29、位:进位标志位保存运算后最高位的进位保存运算后最高位的进位/借位状态,当有进位借位状态,当有进位/借位,借位,Cy=1Cy=1,否则否则Cy=0Cy=0。2 2)ACAC:辅助进位标志位:辅助进位标志位保存低半字节的进位保存低半字节的进位/借位状态,当借位状态,当D D3 3产生进位产生进位/借位,借位,AC=1AC=1,否则否则AC=0AC=0。用于十进制调整。用于十进制调整。3 3)OVOV:溢出标志位:溢出标志位OV=CyOV=Cy7 7 CyCy6 6,补码运算产生溢出补码运算产生溢出OV=1OV=1,否则否则OV=0OV=0。4 4)P P:奇偶标志位:奇偶标志位反映累加器反映累加器

    30、A A中数据的奇偶性。当中数据的奇偶性。当1 1的个数为奇数,的个数为奇数,P=1P=1,否则否则P=0P=0。2 2用户选择位用户选择位(编程设置状态编程设置状态)1 1)F0F0:用户自定义标志位。:用户自定义标志位。2 2)RS1RS1、RS0RS0:工作寄存器区选择位。工作寄存器区选择位。复位时,复位时,PSW=00HPSW=00HRS1 RS0 RS1 RS0 工作寄存器工作寄存器 0 0 0 0 0 0区区 0 1 1 0 1 1区区 1 0 2 1 0 2区区 1 1 3 1 1 3区区例:例:复位后,设置使用工作寄存器复位后,设置使用工作寄存器2 2区,其余标志位不变。区,其余

    31、标志位不变。解:解:MOV PSWMOV PSW,#CyACF0RS1RS0OVP 1 10H0H3-4-2 3-4-2 算术运算指令算术运算指令完成片内完成片内 RAM RAM 和和 A A 中数据的加减乘除运算中数据的加减乘除运算。一一加减指令加减指令1.加法指令加法指令 0011 10110011 1011 +0011 10110011 1011 0111 01100111 01107676H 0 0 1 1H 0 0 1 11 1)不带进位加法:)不带进位加法:ADDADD A A,源源操作数操作数ADD AADD A,R2 R2 ;AA+R2AA+R2,影响影响CyCy、OVOV、A

    32、CAC、P P 例例1 1:A=3BHA=3BH,PSW=0PSW=0,执行指令执行指令 ADD AADD A,#3BH#3BH求:求:A=A=,Cy=Cy=,OV=OV=,AC=AC=,P=P=,PSW=PSW=?01000001=41HCyACF0RS1RS0OVP 1001 10101001 1010 1110 00111110 0011 +0 0 1 1 0111 11010111 11012 2)带进位加法:带进位加法:ADDC AADDC A,源源操作数操作数ADDC AADDC A,R2 R2 ;AA+R2+CyAA+R2+Cy,影响影响CyCy、OVOV、ACAC、P P7 7

    33、DH 1 1 0 0DH 1 1 0 0例例2 2:A=9AHA=9AH,R2=E3HR2=E3H,PSW=0PSW=0,执行指令执行指令ADDC AADDC A,R2R2 后求:后求:A=A=,Cy=Cy=,OV=OV=,AC=AC=,P=P=,PSW=PSW=?10000100=84HCyACF0RS1RS0OVP例:例:设双字节数设双字节数 X X 存在片内存在片内RAMRAM 4141H H、40H40H单元,单元,Y Y存在存在4242H H、43H43H单元,编程求单元,编程求 Z=X+YZ=X+Y,并存入片内并存入片内RAMRAM单元单元4444H H、45H45H、46H46H

    34、。片片 内内 RAM地地 址址内内 容容46HZH45HZM44HZL43HYH42HYL41HXH40HXLADDSADDS:MOV AMOV A,40H40HADD AADD A,42H42HMOV 44HMOV 44H,A AMOV AMOV A,41H41HADDC AADDC A,43H43HMOV 45HMOV 45H,A AMOV AMOV A,#0#0ADDC AADDC A,#0#0MOV 46HMOV 46H,A ARETRET;取被加数低字节取被加数低字节;加上加数低字节;加上加数低字节;保存和的低字节;保存和的低字节;取被加数高字节;取被加数高字节;加上加数高字节;加上

    35、加数高字节;保存和的高字节;保存和的高字节;求高字节进位;求高字节进位;子程序结束;子程序结束;低字节相加;低字节相加;高字节相加;高字节相加;计算高字节进位;计算高字节进位;子程序结束;子程序结束十进制加法指令十进制加法指令:ADD AADD A,源操作数源操作数DA ADA A带进位十进制加法指令带进位十进制加法指令:ADDC AADDC A,源操作数源操作数DA ADA A作业作业:BCDBCD码加法编程。码加法编程。设设X X、Y Y为为4 4位压缩位压缩BCDBCD码,求码,求 Z=X+YZ=X+Y。BCDBCD调整指令:调整指令:DADAA A;对对 A A 中加法结果进行调整中加

    36、法结果进行调整2减法指令减法指令SUBB ASUBB A,源源操作数操作数;带借位减法指令;带借位减法指令SUBB ASUBB A,R2R2;AA-R2-CyAA-R2-Cy,;影响影响CyCy、OVOV、ACAC、P P00 0 0 0 000 0 0 0 0习题:习题:编程求双字节减法编程求双字节减法。设设X X、Y Y存在片内存在片内 RAM 60HRAM 60H起始单元,计算起始单元,计算 Z=X-Y Z=X-Y。例:例:A=5AHA=5AH,R2=5AHR2=5AH,Cy=0Cy=0,执行下列指令执行下列指令SUBB ASUBB A,R2R2求:求:A=A=,Cy=Cy=,OV=OV

    37、=,P=P=,AC=AC=?3.增量、减量指令增量、减量指令INCINC 单操作数单操作数如:如:INC R2 INC R2;R2R2+1R2R2+1DECDEC 单操作数单操作数 如:如:DEC R2 DEC R2;R2R2-1R2R2-1 INC INC DPTRDPTR;DPTRDPTR+1DPTRDPTR+1 不影响标志位状态不影响标志位状态。注意:注意:没有指令没有指令 DEC DPTR DEC DPTR 可用指令可用指令 DEC DPL DEC DPL 代替代替4.4.乘除指令乘除指令MUL ABMUL AB;BAABAAB B,Cy0Cy0,;当积高字节当积高字节B=0B=0,O

    38、V0OV0;B0B0,则则OV1OV1例:例:A=96(60H),B=192(C0H)A=96(60H),B=192(C0H),执行指令执行指令 MUL AB MUL AB 后,后,求:求:A=A=,B=B=,Cy=Cy=,OV=OV=,P=P=?解:解:96 96 192=18432(4800192=18432(4800H)H)0000H 48H 0 1 0H 48H 0 1 01212H 0CH 0 0 0H 0CH 0 0 0例:例:A=156(F6H)A=156(F6H),B=13(0DH)B=13(0DH),执行指令执行指令 DIV AB DIV AB 后后求:求:A=A=,B=B=

    39、,Cy=Cy=,OV=OV=,P=P=?解:解:156 156 13=18(12 13=18(12H)H),余数余数=12(12(0 0CH)CH)。思考题:思考题:如何实现多字节数据的乘除运算。如何实现多字节数据的乘除运算。DIV AB DIV AB;A AB B,AA商,商,BB余数,余数,Cy0Cy0,;当除数当除数B=0B=0,OV1OV1;B0B0,则则OV0OV0一一.单操作数指令(单操作数指令(A A累加器为操作数)累加器为操作数)1.A A清清0 0指令:指令:CLR A CLR A ;A0A02.A A取反指令:取反指令:CPL A CPL A ;A/AA/A 3.循环移位指

    40、令:循环移位指令:1)8 8位循环指令:位循环指令:RL ARL A ;A A循环左移一位循环左移一位RR ARR A ;A A循环右移一位循环右移一位2)9 9位循环指令:位循环指令:RLC ARLC A;带带CyCy循环左移一位循环左移一位RRC ARRC A;带带CyCy循环右移一位循环右移一位例例3-4-73-4-7:设设 A=11000101 A=11000101,Cy=0Cy=0,分别执行下列单分别执行下列单条指令:条指令:CPL ACPL A 求:求:A=A=,Cy=Cy=RL ARL ARLC ARLC A 00111010 000111010 010001011 010001

    41、011 010001010 110001010 1 用用9 9位循环指令实现多字节移位位循环指令实现多字节移位例:例:编程将寄存器编程将寄存器 R6R5 R6R5 中的双字节数中的双字节数X X左移一位。左移一位。CLR CMOV A,R5RLC AMOV R5,AMOV A,R6RLC AMOV R6,A0CyR6R5Cy;Cy=0Cy=0,设设 R6=55H R6=55H,R5=AAHR5=AAH;R6=01010101R6=01010101,R5=10101010R5=10101010,Cy=0Cy=0;R6=01010101R6=01010101,R5=01010100R5=01010

    42、100,Cy=1Cy=1;R6=10101011R6=10101011,R5=01010100R5=01010100,Cy=0Cy=0思考题:思考题:如何将寄存器如何将寄存器R6R5R6R5中的双字节数中的双字节数X X右移一位。右移一位。(二二)双操作数逻辑运算指令双操作数逻辑运算指令(对位逻辑运算对位逻辑运算):ANLANL、ORLORL、XRLXRL习题习题1 1:如何将累加器如何将累加器A A中的数据高中的数据高4 4位清位清0 0,低位不变?,低位不变?习题习题2 2:如何将寄存器如何将寄存器R2R2中的数据奇数位取反,偶数位中的数据奇数位取反,偶数位不变?不变?例例3-5-8 A=

    43、01B,表示随机状态,为表示随机状态,为1或或0,执行下述一组指令执行后,执行下述一组指令执行后A的值如何的值如何?XRL A,#0C0H;将累加器将累加器A的内容的内容D7、D6取反取反 ORL A,#03H;将累加器将累加器A的内容的内容D1、D0置置1ANL A,#0E7H;将累加器将累加器A的内容的内容D4、D3清清0 解解:执行上述指令后,执行上述指令后,A=100011B。对片内对片内RAMRAM中位寻址区操作。位累加器中位寻址区操作。位累加器CyCy和位地址和位地址b b。一位传送位传送MOVMOV C C,b b ;CyCy(b)(b)MOV MOV b b,C C ;(b)(

    44、b)CyCy26H1 0 1 1 0 1 0 125H1 0 0 0 0 1 1 024H0 1 1 1 0 0 0 0例:将位地址例:将位地址2020H H的一位数传送到位地址的一位数传送到位地址3030H H中:中:MOV CMOV C,20H20H MOV 30HMOV 30H,C C二位清二位清0 0、置、置1 1、取反:、取反:CLRCLR、SETBSETB、CPLCPL:CLR C CLR C;CyCy00,CLR 40HCLR 40H;(位地址位地址4040H)H)0 0三逻辑运算:三逻辑运算:ANLANL、ORLORL:ANL CANL C,40H 40H ;CC(40H)CC

    45、(40H)ANL CANL C,/40H /40H ;CC/(40H)CC/(40H)例:设例:设 Cy=1Cy=1,(位地址位地址4040H)=1H)=1,执行指令执行指令 ANL CANL C,/40H /40H 后,后,Cy=Cy=?,(位地址位地址4040H)=H)=?位地址表示法位地址表示法:位地址位地址 4040H H,位寄存器位寄存器 F0F0,字节加位字节加位 ACC.0ACC.00习题习题:设累加器:设累加器A A中数据为中数据为 29 29H H,Cy=0Cy=0,执行指令执行指令 ORL CORL C,0E3H0E3H 后,后,Cy=?Cy=?1ACC.3ACC.3 转移

    46、指令通过改写转移指令通过改写PCPC的当前值,从而改变的当前值,从而改变CPUCPU执执行程序的顺序,使程序发生跳转。行程序的顺序,使程序发生跳转。按转移条件分类:按转移条件分类:1)1)无条件转移无条件转移:执行无条件转移指令,程序无条件转移到指定处。执行无条件转移指令,程序无条件转移到指定处。2)2)条件转移条件转移:指令中给出转移条件,执行指令时,先测试条件,指令中给出转移条件,执行指令时,先测试条件,若满足条件,则程序发生转移,否则,仍顺序执行若满足条件,则程序发生转移,否则,仍顺序执行程序。程序。按转移方式分类:按转移方式分类:1000H SJMP021004H1 1)绝对转移绝对转

    47、移:指令给出转移目的的绝对地址:指令给出转移目的的绝对地址 nnnn,执行指令后,执行指令后,PCPC nnnn。2)相对转移相对转移:指令给出转移目的与转移指令的相对偏:指令给出转移目的与转移指令的相对偏移量移量e e,执行指令后,执行指令后,PCPC PCPC +e e。例:例:地址地址源程序源程序10001000H H LJMP 2000HLJMP 2000H1003H1003H 2000H2000H ;转移目的指令转移目的指令例:例:地址地址 源程序源程序10001000H SJMP 02 H SJMP 02 1004H1004H ;转移目的指令转移目的指令一一.无条件转移指令无条件转

    48、移指令 1.1.长转移指令:长转移指令:LJMPLJMP nnnn ;PC PC nn nn 指令机器码:指令机器码:02 02 nnnnH H nn nnL L指令转移范围:指令转移范围:6464KBKB 2.2.绝对转移指令:绝对转移指令:AJMPAJMP pnpn;PCPC PC+2PC+2;PCPC10100 0 pnpn10100 0;PCPC15151111不变不变指令机器码:指令机器码:pnpn10108 8 0000100001,pnpn7 70 0 指令转移范围:指令转移范围:2 2KBKB转移时要求转移前后保持转移时要求转移前后保持 PCPC15151111不变。不变。相对

    49、偏移量相对偏移量 e e 的计算式的计算式:e=e=目的指令地址目的指令地址-(-(转移指令地址转移指令地址+指令字节数指令字节数)=目的地址目的地址-PCPC当前值当前值 3.3.短转移指令:短转移指令:SJMPSJMP e e ;PCPC PC+2PC+2,PCPC PC+ePC+e指令机器码:指令机器码:8080H H,e e 相对偏移量相对偏移量 e e为为8 8位补码。位补码。指令转移范围:前指令转移范围:前128128后后127127字节字节 编程时,用编程时,用标号标号代替转移目的地址,转移指令的操作代替转移目的地址,转移指令的操作数交给汇编程序计算。数交给汇编程序计算。LJMP

    50、 NEXT LJMP NEXT AJMP NEXTAJMP NEXT SJMP NEXTSJMP NEXT NEXT NEXT:例例1 1:计算转移指令的相对偏移量计算转移指令的相对偏移量 e e,并判断是否超并判断是否超出转移范围。出转移范围。例例2 2:求原地踏步指令的指令代码求原地踏步指令的指令代码HEREHERE:SJMP HERE SJMP HERE 求出指令代码为:求出指令代码为:80 80 FE HFE H相对偏移量相对偏移量=2150=2150H-(2130H+2)=001EHH-(2130H+2)=001EH,只只取低取低8 8位:位:e=1EHe=1EH 指令机器码:指令机

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:MCS51单片机指令系统课件.ppt
    链接地址:https://www.163wenku.com/p-4290524.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库