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

下载本文档

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

文档简介

单片机原理与应用第3章MCS-51单片机

指令系统10/16/20231共51本章教学要求熟悉MCS-51单片机指令系统的分类、格式;熟悉MCS-51指令系统的七种寻址方式;掌握MCS-51指令系统的数据传送、算术运算、逻辑运算、转移操作、布尔运算等指令的功能;掌握MCS-51指令系统的各种指令对寄存器资源的占用情况。第3章MCS-51单片机指令系统10/16/20232共51本章目录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位操作指令习题与思考题10/16/20233共513.1指令系统简介指令系统计算机所有指令的集合,称为该计算机的指令系统,它是表征计算机性能的重要标志。每种计算机都有它自己特有的指令系统。指令是指计算机执行某种操作(如传送数据、做算术运算等)的命令。------指令系统10/16/20234共51要让计算机工作,就得向计算机发出指令。指令的格式是机器码指令格式,如:11100101B,即数字格式。另一种指令格式,即汇编指令格式,如:MOVP1,#5BH------指令的两种格式3.1指令系统简介10/16/20235共51-----MCS-51汇编语言指令格式[标号段:]操作码段[操作数段][;注释段][操作数1[,操作数2]…]MCS-51单片机能够识别并执行的指令共有111条。这111条指令,构成了MCS-51单片机的指令系统。3.1指令系统简介10/16/20236共51-----特点1)

指令执行时间短。只需1个机器周期的指令有64条,2个机器周期的指令有45条,而4个机器周期的指令仅有2条(既乘法和除法指令)。2)指令字节少。单字节指令有49条,双字节指令有46条,三字节指令有16条。3)位操作指令极为丰富,这体现了MCS-51单片机具有面向控制的特点。3.1指令系统简介10/16/20237共513.1.1指令系统的分类MCS-51单片机能够识别并执行的指令共有111条。按指令所占字节数、指令执行时间和指令功能进行分类。1.按指令所占字节数分类1)单字节指令(49条)2)双字节指令(46条)3)三字节指令(16条)-----按指令所占存储空间分类10/16/20238共512.按指令执行时间分类1)单周期指令(65条)2)双周期指令(44条)3)四周期指令(2条)3.1.1指令系统的分类-------按指令执行时间可分类10/16/20239共511)数据传送类指令(29条)2)算术运算类指令(24条)3)逻辑运算类指令(24条)4)控制转移类指令(17条)5)位操作类指令(17条)3.1.1指令系统的分类------按指令功能分类3.按指令功能分类10/16/202310共513.1.2指令格式指令由操作码和操作数组成。操作码用来规定要执行的操作的性质,操作数为指令的操作提供数据和地址。1.指令的基本格式[符号地址:]操作码[操作数1[,操作数2][,操作数3]][;注释]其中符号地址和操作码之间用“:”作为分隔符,也可再加上若干空格。操作码和操作数之间用空格作为分隔符。操作数之间用“,”作为分隔符。注释之前用“;”作为分隔符。-----基本格式10/16/202311共51一条指令必须在一行中写完。例如:MAIN:MOVA,#10H;主程序段MAIN为符号地址;MOV为操作码;A、#10H为二个操作数;最后是注释。指令在送入计算机执行之前,必须先转换成机器语言形式。转换成机器语言的过程称为汇编,汇编有机器汇编和手工汇编两种方法。3.1.2指令格式-------基本格式10/16/202312共513.1.3指令中的常用符号为了便于阅读指令,MCS-51指令助记符中的一些常用符号约定如下。Rn:表示当前工作寄存器R0~R7中的一个。@Ri:表示寄存器间接寻址,常作间接寻址的地址指针。其中Ri代表R0和R1寄存器中的一个。@DPTR:表示以DPTR为数据指针的间接寻址,用于对外部64RAM/ROM寻址。direct:表示内部数据存贮器单元的地址及特殊功能寄存器SFR的地址,对SFR而言,既可使用它的物理地址,也可直接使用它的名字。10/16/202313共51#data:表示8位立即数,即8位常数,取值范围为#00H~#0FFH。data16:表示16位立即数,即16位常数,取值范围为#0000H~#0FFFFH。addr16:表示16位地址。addr11:表示11位地址。rel:用补码形式表示的地址偏移量,取值范围为-128~+127。bit:表示内部RAM和SFR中的具有位寻址功能的位地址。3.1.3指令中的常用符号10/16/202314共51@:表示间接寻址寄存器或基址寄存器的前缀符号。$: 表示当前指令的地址。/: 位操作数的前缀,表示对该位操作数取反,如:/bit。(x):表示存储单元x的内容。((x)):表示以寄存器或存储单元x的内容作为地址的存储单元的内容。→:表示数据传送方向。3.1.3指令中的常用符号10/16/202315共513.1.4寻址方式如何找到参与运算的操作数据或数据所在的地址称为寻址方式。所以寻址方式是在地址范围内如何找到所需要的操作数的地址。MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、基址加变址寻址、相对寻址和位寻址等七种。10/16/202316共51立即寻址是将操作数直接写在指令中,作为指令的一部分存放在代码段里,位置在程序存储器中。立即寻址中的操作数,称为立即数。例如:MOVA,#30H;30H→A1.立即寻址3.1.4寻址方式-----立即寻址10/16/202317共512.直接寻址直接寻址是将操作数的地址直接存放在指令中。这种寻址方式的操作数指的是内部数据存储器中存放数据的地址,或存放数据的一个特殊功能寄存器地址。例如:MOVA,30H;(30H)→A3.1.4寻址方式-----直接寻址10/16/202318共51直接寻址方式可访问的范围1)特殊功能寄存器。这部分存储单元既可以用单元地址给出,也可以用寄存器符号的形式给出。如:MOVA,90H或MOVA,P1为同一条指令的两种写法(特殊功能寄存器只能用直接寻址方式访问)。2)内部数据存储器的低128个字节单元。直接以单元地址的形式给出[对于8032/8052等单片机,其内部高128字节RAM(80H~FFH)不能用直接寻址方式访问]。3.1.4寻址方式-----访问范围10/16/202319共513)位地址空间片内RAM中20H~2FH中的128个位地址,以及SFR中的11个可进行位寻址的寄存器中的位地址(可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0~P3)。4)在一些程序控制指令中,可采用直接寻址方式提供程序转移的目标地址。3.1.4寻址方式-----访问范围直接寻址方式可访问的范围10/16/202320共51----寄存器寻址寄存器寻址是指操作数存放在寄存器中,并且寻址时的寄存器已隐含在指令的操作码中。例如:MOVA,R53.1.4寻址方式3.寄存器寻址10/16/202321共51寄存器寻址方式的寻址范围:(1)4个工作寄存器组共32个通用寄存器(在指令中只能使用当前寄存器组)(2)部分特殊功能寄存器。如A,B,DPTR。----寄存器寻址3.1.4寻址方式10/16/202322共51----寄存器寻址4.寄存器间接寻址寄存器间接寻址是指操作数据存放在以寄存器内容为地址的单元中。如:MOVA,@R0;((R0))→A指令功能为将R0所指出的内部RAM单元内容送入累加器A中,执行过程如图所示。图中设R0=60H。3.1.4寻址方式10/16/202323共51寄存器间接寻址的寻址范围:1)内部低128字节单元(只能使用R0、R1作间址寄存器)。2)外部数据存储器(64KB字节,使用DPTR作间址寄存器。另外,外部低128B单元也可用R0、R1作间址寄存器寻址)。3)在堆栈操作指令(PUSH、POP)中,以堆栈指针SP作间址寄存器,寻址空间为片内RAM。3.1.4寻址方式-----寻址范围10/16/202324共51----基址变址寻址基址变址寻址是指操作数存放在以变址寄存器和基址寄存器的内容相加形成的数为地址的单元中。其中累加器A作变址寄存器、程序计数器PC或寄存器DPTR作基址寄存器。基址加变址寻址方式常用于查表操作。如:MOVCA,@A+PC;PC+1→PC,((A+PC))→AMOVCA,@A+DPTR;((A+DPTR))→A3.1.4寻址方式5.基址变址寻址10/16/202325共51相对寻址是将程序计数器PC的当前值与指令第二字节给出的偏移量相加,从而形成转移的目标地址。例如:JC80H;C=1则跳转----相对寻址3.1.4寻址方式6.相对寻址10/16/202326共51------位寻址位寻址是指对片内RAM中20H~2FH中的128个位地址,以及SFR中的11个可进行位寻址的寄存器中的位地址寻址(可位寻址的特殊功能寄存器有B、ACC、PSW、IP、IE、SCON、TCON、P0~P3)。例如:MOVC,20H此指令是将RAM中位寻址区20H位地址中的内容,送给位累加器Cy。位寻址指令不同于字节地址寻址指令,例如:MOVA,20H3.1.4寻址方式7.位寻址10/16/202327共51----位寻址的表示形式1)直接使用位地址包括位寻址区的位地址00H~7FH和部分特殊功能寄存器的位地址。例如,PSW寄存器第2位的位地址为D2H。2)位名称表示法专用寄存器中的一些寻址位是有符号名的,对其进行位寻址时可用其符号名,例如,PSW寄存器的第2位可用OV表示。3)单元地址加位表示法例如,2F单元的第1位,可表示为2FH.1。再如,D0H单元(PSW)的第2位,可表示为D0H.2。3.1.4寻址方式10/16/202328共514)专用寄存器名称加位表示法例如,PSW寄存器的第2位可表示为:PSW.2。对于可位寻址的特殊功能寄存器,上面4种表示法是等效的。以读取PSW第二位为例的4种位寻址指令如下:MOVC,0D2H;直接使用位地址寻址MOVC,OV;使用位名称寻址MOVC,0D0H.2;使用单元地址加位表示法寻址MOVC,PSW.2;使用专用寄存器名称加位表示法寻址3.1.4寻址方式----位寻址的表示形式10/16/202329共51在MCS-51单片机的指令系统中,指令对哪一个存储器空间进行操作,是由指令的操作码和寻址方式确定的。1)对程序存储器只能采用立即寻址和基址加变址寻址方式;2)对特殊功能寄存器只能采用直接寻址方式,不能采用寄存器间接寻址;3.1.4寻址方式----总结10/16/202330共513)对8032/8052等单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;4)对位操作指令只能对位寻址区操作;5)外部扩展的数据存储器只能用MOVX指令访问;6)内部RAM的低128个字节(00H~7FH)既能用直接寻址,也能用间接寻址。3.1.4寻址方式----总结10/16/202331共51存储空间对应的寻址方式3.1.4寻址方式------寻址范围10/16/202332共513.2指令系统MCS-51的数据传送指令共有28条。助记符有MOV、MOVC、MOVX、XCH、XCHD、PUSH、POP。数据传送指令一般的操作是把源操作数传送到目的操作数,指令执行完成后,源操作数不变,目的操作数等于源操作数。如果要求在进行数据传送时,目的操作数不丢失,则不能用直接传送指令,而采用交换型的数据传送指令。数据传送指令不影响标志Cy、AC和OV,但可能会对奇偶标志P有影响。3.2.1数据传送类指令-----传送指令10/16/202333共51------传送指令列表3.2.1数据传送类指令10/16/202334共51------传送指令列表3.2.1数据传送类指令10/16/202335共51助记符 功能说明MOVA,Rn ;(Rn)→A Rn中的内容送到累加器A中MOVA,direct ;(direct)→A 直接地址单元中的内容送到累加器A中MOVA,@Ri ;((Ri))→ARi内容指向的地址单元中的内容送到累加器A中MOVA,#data ;data→A 立即数送到累加器A中功能:将源操作数指定内容送到累加器A中。------传送指令列表3.2.1数据传送类指令1.以累加器为目的操作数的指令(4条)10/16/202336共51助记符 功能说明MOVRn,A ;(A)→Rn累加器A中的内容送到寄存器Rn中MOVRn,direct ;(direct)→Rn 直接寻址单元中的内容送到寄存器Rn中MOVRn,#data ;data→Rn立即数直接送到寄存器Rn中功能:将源操作数指定的内容送到所选定的工作寄存器Rn中。------传送指令列表3.2.1数据传送类指令2.以寄存器Rn为目的操作数的指令(3条)10/16/202337共51助记符 功能说明MOVdirect,A ;(A)→direct累加器A中的内容送到直接 地址单元中MOVdirect,Rn ;(Rn)→direct 寄存器Rn中的内容 送到直接地址单元中MOVdirect1,direct2;(direct2)→direct1直接地址单元2 中的内容送到直接地址1中MOVdirect,@Ri;((Ri))→direct以寄存器Ri中的内容为 地址的单元中内容送到直接地址单元中MOVdirect,#data;data→direct立即数送到直接地址 单元中------传送指令列表3.2.1数据传送类指令3.以直接地址为目的操作数的指令(5条)10/16/202338共51功能:将源操作数指定的内容送到由直接地址指出的片内存储单元中。如: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数据传送类指令10/16/202339共51助记符 功能说明MOV@Ri,A ;(A)→(Ri) 累加器A中内容送到以Ri 中内容为地址的RAM单元中MOV@Ri,direct;(direct)→(Ri) 直接地址单元中内 容送到以Ri中内容为地址的RAM单元中MOV@Ri,#data;data→(Ri)立即数送到以Ri中内容 为地址的RAM单元中------传送指令列表3.2.1数据传送类指令4.以间接地址为目的操作数的指令(3条)10/16/202340共51功能:将源操作数指定的内容送到以R0或R1为地址指针的片内RAM存储单元中。如:MOV@R0,A ;累加器A中内容送到以R0中内容为\ 地址的RAM单元中MOV@R1,20H ;20H单元中内容送到以R1中内容为 地址的RAM单元中MOV@R0,#34H;立即数34H送到以R0中内容为地 址的RAM单元中------传送指令列表3.2.1数据传送类指令10/16/202341共51助记符 功能说明MOVDPTR,#data16 ;dataH→DPH,dataL→DPL ;16位常数的高8位送到DPH,低8位送到DPL功能:将一个16位的立即数送到DPTR中去。其中高8位送入DPH,低8位送入DPL。如:MOVDPTR,#1234H ;指令执行后DPH中的值为 12H,DPL中的值为34H------传送指令列表3.2.1数据传送类指令5.16位数的传递指令(1条)10/16/202342共51如果我们分别向DPH和DPL送数,则结果也一样。如下面两条指令:MOVDPH,#12HMOVDPL,#34H就相当于执行了MOVDPTR,#1234H。MCS-51是一种8位机,这是唯一的一条16位立即数传递指令。------传送指令列表3.2.1数据传送类指令10/16/202343共51助记符功能说明MOVXA,@Ri;((Ri))→A寄存器Ri指向的片外RAM单 元中的内容送到累加器A中MOVX@Ri,A;A→(Ri)累加器A中内容送到寄存器Ri指 向的片外RAM单元中MOVXA,@DPTR;((DPTR))→A数据指针指向的片外 RAM单元中的内容送到累加器A中MOVX@DPTR,A;(A)→(DPTR)累加器A中内容送到数 据指针指向的片外RAM单元中------传送指令列表3.2.1数据传送类指令6.累加器A与片外RAM数据传送指令(4条)10/16/202344共51功能:在MCS-51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必须通过A传送,而所有要读入的外部RAM中的数据也必须通过A读入。在此我们可以看出内外部RAM的区别,内部RAM间可以直接进行数据传递,而外部RAM则不行。例如,要将外部RAM中某一单元(假设为0100H单元的数据)送入另一个单元(假设为0200H单元),则必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。------传送指令列表3.2.1数据传送类指令10/16/202345共51要读或写外部RAM,必须要知道16位的RAM地址。在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址,此时,高8位地址要由P2口来提供。使用时应先将要读或写的地址送入DPTR或Ri(高8位地址送到P2口)中,然后再用读/写指令。------传送指令列表3.2.1数据传送类指令10/16/202346共51例3-1将外部RAM的100H单元中内容送入外部RAM的200H单元中。 MOV DPTR,#0100H MOVX A,@DPTR MOV DPTR,#0200H MOVX @DPTR,A------传送指令应用3.2.1数据传送类指令10/16/202347共51助记符 功能说明MOVCA,@A+DPTR ;((A)+(DPTR))→A表格地址 ;单元中的内容送到累加器A中MOVCA,@A+PC ;(PC)+1→PC,((A)+(PC))→A ;表格地址单元中的内容送到累加器A中功能:将ROM中的数据送到A中。常用此指令来查一个已存储在ROM中的数据表格。这组指令也称为查表指令。------传送指令应用3.2.1数据传送类指令7.读程序存储器指令(2条)10/16/202348共51以DPTR或PC为基址,以A为变址,在不断修改A中内容(等值增量)的同时,执行该指令,实现对ROM中存储的一块区域数据的读取。以PC为基址时,不用设置PC的值,只需根据A的内容,就可以查出表格中的数据。但表格只能放在该条查表指令后面的256个单元之中,表格的大小受到限制,而且表格只能被一段程序所利用。而以DPTR为基址时,表格的大小和位置可以在64KB的ROM中任意安排,并且表格可被任意程序块所共享。说明:查找到的结果放在A中,因此,这类指令执行前后,A中的值不一定相同。------传送指令应用3.2.1数据传送类指令10/16/202349共51例3-2有一个1~10的平方表存放在0100H开始的ROM中,用DPTR和R0基址+变址的寻址方式实现查表功能,确定1~10(在R0中)的平方值。 MOV DPTR,#0100H MOV A,R0 MOVC A,@A+DPTR .… ORG 0100H;ORG是指明后面数据块的起始地址 DB 0,1,4,9,16,25,36 DB 49,64,81,100;DB是定义字节指令------传送指令应用3.2.1数据传送类指令10/16/202350共51助记符功能说明PUSHdirect ;(SP)+1→SP,(direct)→(SP) ;堆栈指针首先加1,直接寻址单元 ;中的数据送到堆栈指针SP所指的 ;单元中POPdirect ;((SP))→direct,(SP)-1→SP ;堆栈指针SP所指的单元中的数据 ;送到直接寻址单元中,堆栈指针 ;SP再进行减1操作------传送指令应用3.2.1数据传送类指令8.堆栈操作(2条)10/16/202351共51功能:第1条为压入堆栈指令,就是将direct中的内容送入堆栈中;第2条为弹出堆栈指令,就是将堆栈中的内容送回到direct中。如:MOV SP,#5FHMOV A,#100MOV B,#20PUSH ACCPUSH BPOPACCPUSHB------传送指令应用3.2.1数据传送类指令其中,PUSHACC指令是这样执行的:将SP中的值加1,即变为60H,然后将A中的值送到60H单元中,因此执行完本条指令后,内存60H单元中的值就是100。同样,执行PUSHB时,是将SP中的值加1,即变为61H,然后将B中的值送入到61H单元中,即执行完本条指令后,61H单元中的值变为20。10/16/202352共51助记符功能说明XCHA,Rn;(A)←→(Rn)累加器与工作寄存器Rn中的内容互换XCHA,direct;(A)←→(direct)累加器与直接地址单元中的内容互换XCHA,@Ri;(A)←→((Ri))累加器与工作寄存器Ri所指存储单容互换元中的内容互换------传送指令应用3.2.1数据传送类指令9.交换指令(4条)10/16/202353共51XCHDA,@Ri ;(A.3~A.0)←→((Ri.3~Ri.0))累加器 与工作寄存器Ri所指存储单元中的低 半字节内容互换功能:这4条指令是把累加器A中的内容与源操作数所指的数据相互交换。类似指令:SWAPA;(A.3~A.0)←→(A.7~A.4)累加器中内容高低半字节互换。------传送指令应用3.2.1数据传送类指令10/16/202354共51例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数据传送类指令10/16/202355共513.2.2算术运算类指令MCS-51的算术运算指令共有24条。助记符有ADD、ADDC、SUBB、DA、INC、DEC、MUL、DIV。算术运算主要是执行加、减、乘、除法四则运算。10/16/202356共513.2.2算术运算类指令-----运算指令列表10/16/202357共513.2.2算术运算类指令-----运算指令列表10/16/202358共513.2.2算术运算类指令-----运算指令对标志位的影响10/16/202359共51例3-4设1067H存在于R1R0中,30A0H存在于R3R2中,计算R1R0+R3R2,结果存于R5R4中。MOVA,R0ADDA,R2 ;R0+R2→A和CyMOVR4,AMOVA,R1ADDCA,R3 ;R1+R3+Cy→A和CyMOVR5,AR1R0+R3R2R5R43.2.2算术运算类指令-----运算指令应用10/16/202360共51例3-5设A=12H,R0=33H,(21H)=32H,(34H)=22H,DPTR=1234H。连续执行下面指令后看相应寄存器和单元中的结果。INCA ;A=13HINCR0 ;R0=34HINC21H ;(21H)=33HINC@R0 ;(34H)=23HINCDPTR ;DPTR=1235H3.2.2算术运算类指令-----运算指令应用10/16/202361共513.2.3逻辑运算类指令逻辑运算和移位指令共有25条,助记符有ANL、ORL、XRL、CLR、CPL、RL、RLC、RR、RRC,SWAP。有与、或、异或、求反、左/右移位、清0等逻辑操作,有直接、寄存器和寄存器间址等寻址方式。这类指令一般不影响程序状态字(PSW)标志。MCS-51指令系统的逻辑运算指令见下表。10/16/202362共51逻辑运算类指令列表10/16/202363共51逻辑运算类指令列表10/16/202364共51助记符 功能说明ORLA,Rn ;(A)∨(Rn)→AORLA,direct ;(A)∨(direct)→A ORLA,@Ri ;(A)∨((Ri))→A ORLA,#data ;(A)∨data→A ORLdirect,A ;(direct)∨(A)→directORLdirect,#data ;(direct)∨data→direct 3.2.3逻辑运算类指令1.逻辑或指令(6条)10/16/202365共513.

温馨提示

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

评论

0/150

提交评论