AT89S52单片机寻址方式及指令系统.ppt

上传人:za****8 文档编号:15798508 上传时间:2020-09-06 格式:PPT 页数:67 大小:1.23MB
返回 下载 相关 举报
AT89S52单片机寻址方式及指令系统.ppt_第1页
第1页 / 共67页
AT89S52单片机寻址方式及指令系统.ppt_第2页
第2页 / 共67页
AT89S52单片机寻址方式及指令系统.ppt_第3页
第3页 / 共67页
点击查看更多>>
资源描述
学习情景二,AT89S52单片机 寻址方式及指令系统,学习目标: 熟练掌握MCS-51单片机的寻址方式和指令系统 能编写简单完整的程序 掌握标志位 技能目标: 能够对工作任务进行分析,找出相应算法,绘制流程图。 能够根据流程图编写程序。 会使用Keil C51 Vision2集成开发环境,观察与修改存储器。,项目一 片内存储器及特殊功能寄存器,第一部分 项目要求 在Keil C51 Vision2集成开发环境下,在编辑窗口编辑给定程序,观察片内RAM工作寄存器区、内部RAM位寻址区、RAM间接与直接寄存器区、内部RAM间接寻址区、内部RAM特殊功能寄存器区、外部RAM区(XRAM)的数据,并根据要求进行修改,说明每条指令的寻址方式。,第二部分 相关知识,AT89S52单片机寻址方式 AT89S52单片机指令寻址 AT89S52单片机标志位 MSC-51单片机指令系统简介,一、AT89S52单片机寻址方式,寻址方式是指CPU寻找操作数或操作数地址的方法。具体来说寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法,它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。,二、AT89S52单片机指令寻址,存放指令代码的地址称指令地址。指令存放是在程序存储器中,是按顺序存放的,执行时也是按指令地址顺序执行,除非是转移。 存放数据的地址称操作数地址。数据的存放是任意的,无规律。 操作数的来源为: A操作数在指令中 B操作数在存储器中 C操作数在寄存器中 D操作数在I/O端口中,寻址方式:7种 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址,(一)立即寻址 是指操作数在指令操作数域直接给出,例:MOV A, #25H ; A 25H MOV DPTR,#1856H ;DPTR1856H,图2.1 立即寻址(MOV A,#25H),DPH,DPL,图2.2 立即寻址(MOV DPTR, #1856H),(二)直接寻址 是指操作数的地址直接在指令操作数域给出,可访问种地址空间 (1) 内部RAM低128单元:007FH MOV A, 3CH ;A (3CH) (2)特殊功能寄存器SFR,唯一方式800FF MOV A, P1 ;A (P1口) MOV A, 90H (3) 211个位地址空间 MOV C,30H ;Cy(30H) MOV A,30H ;A (30H),例: MOV A ,30H;机器码为E530H 指令功能是把直接地址30H单元的内容送累加器A,即(30H) (A)如图所示。,34H,34H,例: MOV DPTR,#1234h (DPH)=12H (DPL)=34H,注意:立即数前加“ # ”号,以区别直接地址。 例如: MOV A,#30H ;(A) 30H MOV A, 30H ; (A) (30H),(三)寄存器寻址操作数存放在寄存器中,MOV A,R0 MOV R0,#01001111B,工作寄存器(00H1FH) RS1 RS0 寄存器组 片内RAM地址 寄存器 0 0 第0组 00H07H R0R7 0 1 第1组 08H0FH R0R7 1 0 第2组 10H17H R0R7 1 1 第3组 18H1FH R0R7,SETB RS0 MOV R3,#56H,寄存器为 R0R7, A,B , DPTR,C,【例2-6】 MOV A,R1 ;A (R1),例如:MOV A , R3 ;机器码为 0EBH 指令功能是把当前R3中的操作数送累加器A。 指令执行示意图如图所示。设(R3)=12H,(四)寄存器间接寻址,是指操作数存放在以寄存器内容为地址的单元中。寄存器中存放的是操作数的地址,而操作数在存储器中,通过寄存器可间接得到。用符号“”表示。 寄存器间接寻址可寻址范围如下: (1)内部RAM低128单元,地址范围00H7FH,用Ri(i=0,1)和SP作为间址寄存器; (2)与P2口配合使用,用Ri指示低8位地址,可寻址片外数据存储器或I/O口的64kB区域; (3)DPTR间接寻址寄存器,可寻址片外程序存储器或数据存储器包括I/O口的各自的64kB区域。,可间接寻址的寄存器为R0, R1,SP,DPTR,例如: MOV A ,R1 ;机器码 E7H 设(R1)=60H , (60H)=50H , 执行结果 (A)=50H,该指令执行过程如图所示。,(五)变址寻址,基址寄存器变址寄存器的间接寻址方式 DPTR/PC A MOVC A, A+DPTR (A) (DPTR) + (A) MOVC A, A+PC (A) (PC) + (A) ) JMP A+DPTR (PC)=(A)+(DPTR),MOVC A,A+DPTR ;A (A)+(DPTR) 指令功能为DPTR中的内容与A中的内容相加,其和所指示的单元的数送入累加器A,如图所示。,图2.6 变址寻址(MOVC A, A+DPTR),(六)相对寻址 是以程序计数器PC的当前值为基地址,加上指令中给出的偏移量rel作为转移目的地址。 转移目的地址=下一条指令地址+rel 【例2-9】 JC 80H,JC rel; 4085H 设rel=85H ,Cy=1,目标地址,PC当前值,(七)位寻址 bit,位寻址是指对一些内部RAM和特殊功能寄存器进行位操作时的寻址方式。 位寻址范围: (1)内部RAM的位寻址区,共16个单元的128位,单元地址为20H2FH,位地址为00H7FH。可用直接位地址或字节地址加位的表示方法。,例如: MOV C , 7AH 或 MOV C , 2FH.2,(2) 特殊功能寄存器SFR可供位寻址的专用寄存器共11个,实有位地址位83位。位地址有4种表达方式 。 以对程序状态寄存器PSW辅助进位位AC进行操作为例: PSW Cy AC F0 RS1 RS0 OV P D0H D7H D6H D0H,1)直接使用位地址 3)单元地址加位的表示法 MOV C ,0D6H MOV C ,0D0H.6 2)位名称表示法 4)专用寄存器符号加位的表示法 MOV C , AC MOV C , PSW.6,寻址方式与寻址空间,寻址方式与寻址空间(续),三、AT89S52 单片机标志位,四、AT89S52单片机指令系统简介,80C51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。 指令分类: 数据传送类指令(28)传送类指令举例 算术运算类指令(24) 逻辑运算类指令(25) 控制转移类指令 (17) 布尔处理类指令(17),指令是指单片机执行某种操作的命令。指令系统(或指令集)是指单片机能够识别和执行的全部指令。用汇编语言编写的程序称为源程序。为完成某项任务,人们按要求编排的指令操作序列称为程序。 【例2.11】 要做“10+20” 的加法,可写成: 汇编语言程序 机器语言程序 MOV A,#0AH 74 0AH ADD A,#14H 24 14H,(一)指令及程序的概念,1. 汇编语言指令格式 标号:操作码 目的操作数,源操作数;注释 例如: Loop: ADD A, R0 ;A + (R0) (A) 2机器语言指令格式,(二)指令格式,(三)指令系统中使用的常用符号 Rn:当前寄存器工作区中的寄存器,其中,n=07; direct:内部数据存储器地址,可指定一个内部RAM单元(0127)或一个专用寄存器(128255); Ri:通过R1或R0间接寻址,指定数据存储器RAM中的一个单元(0255); #data:在指令中指明8位常数; #datal6:在指令中指明16位常数; addrll:11位目的地址,用在ACALL或AJMP指令中,表示调用或转移地址,寻址范围为2KB; addrl6:16位目的地址,用在LCALL或LJMP指令中,表示调用或转换地址,寻址范围为64KB; rel:8位偏移量,用补码表示,用在SJMP等转移指令中,寻址范围为128127; bit:表示位寻址空间中的位地址,8位,寻址范围为0FFH。,(四)AT89S52指令系统助记符,指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。按指令的功能可分为五大类。为了便于理解,加强记忆,给出每个助记符的解释。,1. 数据传送类指令(7种助记符,28条指令),MOV:对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送。 MOVC:读程序存储器数据表格的数据传送。 MOVX:对外部RAM的数据传送。 XCH:字节交换。 XCHD:低半字节交换。 PUSH:入栈。 POP:出栈。,【例1】 MOV A,40H ;A(40H) MOV A,#40H ;A40H 注意 40H和#40H的区别 【例2】 MOV A, R1 ;A (R1) MOV A,R1 ;A (R1) 注意 R1和R1的区别 【例3】 MOV 90H, #40H ;P140H MOV P1, #40H ;PI40H MOV R0, #90H ;R090H MOV R0, #40H ;(90H)40H 注意: (1) 目的操作数不能采用立即寻址。 (2) Ri中的i范围为0和1。 (3) Rn中的n的范围为07。 (4) 每条指令中最多只能有1个Rn或Ri。,【例4】 以下指令都是错误的。 MOV #30H, 40H MOV A, R2 MOV R1, R3 MOV R1, R0 MOV R1, R2 MOV R0, R1 【例5】 MOV A, 60H ; A(60H),目的操作数为寄存器寻址 MOV 0E0H, 60H ; A(60H),目的操作数为直接寻址 MOV 09H, #40H ;09H40H,目的操作数为直接寻址 MOV R1, #40H ;R140H, 目的操作数为寄存器寻址,【例6】 分析程序的执行结果。 设内部RAM中30H单元的内容为80H,试分析执行下面程序后各有关单元的内容。 MOV 60H,#30H ; 60H30H MOV R0, #60H ; R060H MOV A, R0 ; A30H MOV R1, A ; R130H MOV 40H,R1 ; 40H80H 程序执行结果为: (A)=30H,(R0)=60H,(R1)=30H,(60H)=30H,(40H)=80H,(30H)=80H,【例7】 将内部RAM 80H单元的内容送入外部RAM 70H单元。程序如下: MOV R0,#80H MOV A,R0 MOV R0,#70H MOVX R0,A 此例中访问内部RAM和访问外部RAM均通过R0间接寻址,不同的是访问内部RAM用操作码MOV,访问外部RAM使用操作码MOVX,二者不能混淆。,PUSH direct ; sp (sp)+1, (sp) (direct) POP direct ; direct (sp) ,(sp) (sp)-1,堆栈操作指令,1、堆栈 一种数据结构,是 “先进后出”线性表。 2、堆栈操作: 压入 PUSH , 弹出 POP 3、堆栈区: 占片内RAM 中连续的存储单元复位后,系统自动将SP指针指向07H 用户可将堆栈区设在30H7FH数据缓冲区内, MOV SP,#5FH,堆栈有两种类型:向上生长型和向下生长型,如图所示。 向上生长型堆栈,栈底在低地址单元。随着数据进栈,地址递增,SP 的内容越来越大,指针上移;反之,随着数据的出栈,地址递减,SP的内容越来越小,指针下移。如(b)图所示。,栈顶,栈顶,2.算术运算类指令 (8种助记符,24条指令),ADD:加法。 ADDC:带进位加法。 SUBB:带借位减法。 DA:十进制调整。 INC:加1。 DEC:减1。 MUL:乘法。 DIV:除法。,【例8】 设20H21H单元存放一个16位二进制数X1(高8位存于21H单元),30H31H单元存放另一个16位二进制数X2(高8位存于31H单元)。求X1+X2,和存于20H21H,设两数之和不超过16位。 解:程序如下: ORG 2000H MOV R0,#20H MOV R1,#30H MOV A, R0 ;取被加数低8位 ADD A, R1 ;求和的低8位 MOV R0,A ;存和的低8位 INC R0 ;指向被加数高8位 INC R1 ;指向加数高8位 MOV A, R0 ;取被加数高8位 ADDC A, R1 ;求和的高8位 MOV R0,A ;存和的高8位 SJMP $ ;停机 END 运算结果高8位存于21H单元,低8位存于20H单元。,【例9】 试分析执行以下程序后,各有关单元的结果。 解:程序如下: MOV R1,#7FH MOV 7EH,#00H MOV 7FH,#40H DEC R1 DEC R1 DEC R1 执行结果: (R1)=7EH (7EH)=0FFH (7FH)=3FH, 十进制调整指令 DA A ;调整累加器内容为BCD码 这条指令跟在ADD或ADDC指令后,将相加后存放在累加器中的结果进行十进制调整,完成十进制加法运算功能。 用BCD码表示的十进制数在进行相加时,应该是逢十进一,但AT89S52指令系统中没有逢十进一的指令,只有满十六进位的指令。 所以用ADD和ADDC做加法后,要跟一个DA A指令进行十进制调整。,DA A ;若AC=1或(A)309,则A(A)+06H ;若Cy=1或(A)749,则A(A)十60H 调整原则: 形式上非BCD码 需要加 06H、60H、66H调整 形式上是BCD码时: CY AC 调整原则 0 0 不调整 0 1 +06H 1 0 +60H 1 1 +66H,【例10】 编写程序完成78+93的BCD码加法程序,并对调整过程进行分析。 解:相应BCD码加法程序为: ORG 3000H MOV A,#78H ;(A)78H ADD A,#93H ;(A)78H+93H=0BH DA A SJMP $ END 执行结果: (A)=71H ,考虑进位标志(Cy)=1, 操作结果为171。,例11:已知第一个BCD码1234存放在30H和31H单元,其中(30H)= 34H,(31H)=12H; 第二个BCD码5678存放在40H和41H单元,其中(40H)= 78H,(41H)=56H, 求两数之和,结果存放在50H、51H单元中。 分析: 1 2 3 4 + 5 6 7 8 6 9 1 2 (51H)= 69H,(50H)=12H,CLR C ;清C MOV A,30H ;A=34H ADD A,40H ;A=34H+78H=ACH DA A ;低4位:C9 A=A+06H=ACH+06H=B2H 高4位:B9 A=A+60H=B2H+60H=12H CY=1 MOV50H,A ;(50H)= 12H MOVA,31H ; A=12H ADDCA,41H ; A=12H+56H+CY=69H DAA ;低4位:9 不用调整 高4位:6 不用调整 MOV51H,A ;(51H)=69H, 乘法指令,MUL AB ;AAB低字节,BAB高字节 指令功能:是把累加器A和寄存器B中两个8位无符号二进制数相乘,积的低8位存在累加器A中,积的高8位存在B寄存器中。 运算结果将对Cy、OV、P标志位产生如下影响: (1)进位标志位Cy总是清“0”; (2)P标志仍为A累加器的奇偶校验位; (3)当积大于255(B中的内容不为0)时,则OV=1, 否则OV=0。 【例12】 设(A)=80H,(B)=21H,执行指令: MUL A B 结果为 (A)=80H,(B)=16H,OV=1,Cy=0,P=1, 除法指令,DIV AB :AAB(商),BAB(余数) 该指令把累加器A中的8位无符号整数除以寄存器B中8位无符号整数,所得商存在A中,余数存在B中。对标志位的影响如下: (1)对Cy和P标志的影响与乘法时相同; (2)当除数为0时,除法没有意义,OV=1,否则OV=0,表示除法操作是合理的。 【例13】 设(A)=0B6H,(B)=0FH,执行指令: DIV AB 结果为 (A)=0CH,(B)=02H,OV=0,Cy=0,P=0,3. 逻辑运算及位移类指令(10种助记符,17条指令),ANL:逻辑与。 ORL:逻辑或。 XRL:逻辑异或。 CRL:清0。 CPL:取反。 RL:循环左移。 RLC:带进位循环左移。 RR:循环右移。 RRC:带进位循环右移。 SWAP:低4位与高4位交换。,【例14】 将累加器A中的压缩BCD码拆成二个字节的非压缩BCD码,低位放入30H,高位放人31H单元中。 程序如下: PUSH ACC ;保存A中的内容 ANL A,#0FH ;清除高4位,保留低4位 MOV 30H,A ;低位存人30H POP ACC ;恢复A中原数据 SWAP A ;高、低4位互换 ANL A,#0FH ;清除高4位,保留低4位 MOV 31H,A ;高位存入31H,例15:将累加器A中的高4位由P1口的高4位输出,P1口的低4位不变。 编程如下: ANL A ,#11110000B ;(A)#11110000BA,保存A中的高4位,低4位为0 MOV 40H , A ;(A) 40H, MOV A ,P1 ;(P1)A ANL A ,#00001111B ;(A) #00001111BA,保存P1中的低4位。 ORL A ,40H ;(40H)(A)A保留了A中的高4位,P1中的低4位 MOV P1,A ;(A)P1 由P1输出指定的内容 END,【例16】 编制程序把累加器A中低4位送人P1口低4位,P1口高4位不变。 程序如下: ANL A,#0FH ;取出A中低4位,高4 位为0 ANL P1,#0F0H ;使P1口低4位为0,高4 位不变 ORL P1,A ;字节装配,【例17】 执行下面的程序段,观察累加器A中内容的变化。 MOV A,#01H ;(A)01H RL A ;(A)02H RL A ;(A)04H RL A ;(A)08H,【例18】 编制程序将M1、M1+1单元中存放的16位二进制数扩大到二倍。(设该数低8位在M1单元中,扩大后小于65536)。 CLR C ;Cy0 MOV R0,#M1 ;操作数低8位地址送R0 MOV A,R0 ;A操作数低8位 RLC A ;低8位操作数左移,低位补0,最高位在Cy中 MOV R0,A ;送回M1单元 INC R0 ;R0指向MI+1单元 MOV A,R0 ;A操作数高8位 RLC A ;高8位操作数左移,M1最高位通过Cy移入最低位 MOV R0,A ;送回M1+1单元,4. 控制转移类指令(18种助记符,17条指令),ACALL:子程序绝对调用。 LCALL:子程序长调用。 RET:子程序返回。 RETI:中断返回。 AJMP:绝对转移。 LJMP:长转移。 SJMP:短转移。 JMP:转移。 CJNE:比较不相等则转移。,DJNZ:减1后不为0则转移。 JZ:结果为0则转移。 JNZ:结果不为0(结果为1)则转移。 JC:有进位位则转移。 JNC:无进位位则转移。 JB:位为1则转移。 JNB:位为0则转移。 JBC:位为1则转移,并清除该位。 NOP:空操作。,1) 16位地址的无条件转移指令 LJMP addrl6 ;PCaddrl6 实现在64KB全地址空间范围内的无条件转移,因而又称为长转移指令。 2) 11位地址的无条件转移指令 AJMP addrll ;PC(PC)2,PC100addrl1 转移范围:2K,PC1511不变 指令常称为绝对转移指令。因为地址高5位保持不变,仅低11位发生变化,因此寻址范围为该指令地址加2后,向下的2K区域。, 无条件转移指令(4条),00001a10a9a8,a7a6 . a0,2FFFH AJMP L1 当前(PC)=2FFFH+2=3001H 转移地址 PC=00110 保持高5位不变,L1地址标号范围 3000H37FFH 若L1=35BCH (5页),则指令码为A1BCH 例:判断下面两种情况,AJMP是否能正确转移到L0处去。 AJMP L0 L0:MOVA,#12H 设“AJMP L0”存放在程序存储器27F0H单元,“MOV A,#12H”存放在程序存储器2800H单元。,设“AJMP L0”存放在程序存储器27FEH单元, “MOV A,#12H”存放在程序存储器2FBCH单元。 分析: 第一种情况:CPU执行到该条指令时,(AJMP是二字节指令) PC的当前值 = 27F0H+2 = 27F2H = 0010011111110010 目的地址 = 2800H = 0010100000000000 因为两条指令PC值的高5位不相同,所以无法正确转移。 第二种情况: PC的当前值 = 27FEH+2 = 2800H = 0010100000000000 目的地址 = 2FBCH = 0010111110111100 因为两条指令PC值的高5位相同,所以可以正确转移。,例19:根据累加器A中命令键键值,设计命令键操作程序入口跳转表: CLR C ;清进位 RLC A ;键值乘2,左移 MOV DPTR, #JPTAB ; 指向命令键跳转表首址 JMP A+DPTR ;散转入命令键入口 JPTAB: AJMP CCS0 ;双字节指令 AJMP CCS1 ;双字节指令 AJMP CCS2 ;双字节指令 从程序中看出,当(A)=00H,散转到CCS0;当(A)=01H时,散转到CCS1;由于AJMP是双字节指令,散转前A中键值先乘2。,【例20】 设累加器A中存放待处理命令的编号(0n;n85)程序存储器中存放着标号为PGTB的转移表,则执行以下程序,将根据A内命令编号转向相应的命令处理程序。 PG: MOV B,#3 ;A(A)*3 MUL AB MOV DPTR,#PGTB ;DPTR转移表首址 JMP A十DPTR PGTB: LIMP PG0 ;转向命令0处理入口 LIMP PGl ;转向命令1处理入口 LJMP PGn ;转向命令n处理入口,【例21】 编制程序,将内部RAM 70H字节起始的16个数送外部RAM 1000H字节起始的16个单元。 MOV R7,#16 ;数据长度送R7 MOV R0,#70H ;数据块起始地址送R0 MOV DPTR,#1000H ;存放区起始地址送DPTR LOOP: MOV A,R0 ;从内RAM取数据 MOVX DPTR,A ;数据送外RAM INC R0 ;修改数据地址 INC DPFR ;修改存放地址 DJNZ R7,LOOP ;数据未送完,则继续送,否则结束。,5. 位操作指令(布尔操作) (1种助记符,17条指令),位传送指令 位修正指令 位逻辑运算指令 位条件转移指令,位地址范围:片内RAM字节地址20H0FH单元中连续的128个位,11个特殊功能寄存器。在80HFFH字节地址中。凡是能被8整除的特殊功能寄存器都具有可寻址的位地址。位累加器即为进位标志Cy, 位传送指令(2条) MOV C,bit ;Cy(bit) MOV bit,C ;bit(Cy) 位修正指令(6条) 位修正指令包括位清0、位置l和位取反。 (1) 位清0指令 CLR C ;Cy0 CLR bit ;bit0 (2) 位置l指令 SETB C ;Cy1 SETB bit ;bit1 (3) 位取反指令 CPL C ;Cy /Cy CPL bit ;bit(/bit ), 位逻辑运算指令(4条) 位逻辑运算指令包括按位“与”和按位“或”。 (1) 按位“与”指令 ANL C,bit ;Cy(Cy)(bit) ANL C,/bit ;Cy(Cy)(/bit ) 双字节指令,功能是把位累加器Cy中的内容与指定位中的内容或其反码“与”,结果在Cy中 (2) 按位“或”指令 ORL C,bit ;Cy(Cy)(bit) ORL C,/bit ;Cy(Cy)(/bit ) 双字节指令,功能是把位累加器Cy中的内容与指定位中的内容或其反码“或”,结果在Cy中。, 位条件转移指令(5条),1) 判布尔累加器C转移指令 JC rel ;若Cy=1,则PC(PC)+2+ re1 ;若Cy=0,则PC(PC)+2 JNC rel ;若Cy=0,则PC(PC)+2+ re1 ;若Cy=1,则PC(PC)+2 (2) 判位变量转移指令 JB bit,rel ;若(bit)=1,则PC(PC)+3+ re1 ;若(bit)=0,则PC(PC)+3 JNB bit,rel ;若(bit)=0,则PC(PC)+3+ re1 ;若(bit)=1,则PC(PC)+3 (3)判位变量并清0转移指令 JBC bit,rel ;若(bit)=1,则PC(PC)+3+ re1,且bit0 ;若(bit)=0 ,则PC(PC)+3,对讨论题1交通信号灯控制器进行编程并调试。交通信号灯显示规则见下表。要求用软件实现延时,计算延时时间。并说明在设计过程中遇到的问题,是如何解决的。,讨论题2,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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