欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    计算机原理与汇编汇编语言基础.ppt

    • 资源ID:6023472       资源大小:606KB        全文页数:76页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机原理与汇编汇编语言基础.ppt

    汇编语言概述,一、概述1.高级语言与汇编语言比较,高级语言:语句变量说明/定义int y,a=25,b=3,c=76;给变量赋值y=2(a+b)-c,汇编语言:指令分配寄存器分配存储单元数据传递,2.汇编程序结构数据段堆栈段代码段,;设置数据段DATA SEGMENTADB25;数据ABDB3;数据BCDB76;数据CYDB?;存放结果DATAENDS;设置堆栈段STACK1 SEGMENTPARA STACKDW 20HDUP(0)STACK1ENDS,示例:,y=2(a+b)-c,;设置代码段COSEGSEGMENTASSUME CS:COSEG,DS:DATA,SS:STACK1START:MOV AX,DATA;装填段寄存器DSMOV DS,AXMOV AL,A;取数据AADD AL,B;计算(A+B)SALAL,1;计算 2(A+B)SUBAL,C;计算 2(A+B)-CMOVY,AL;存结果MOVAH,4CH;结束用户程序,返回操作系统INT21HCOSEGENDSENDSTART,示例:,汇编语言:是汇编格式指令,伪指令的集合及其表示,使用这些指令的一组规则。机器语言:用二进制编码的机器指令的集合及一组使用规则,它是CPU能直接识别的唯一语言。MOV DS,AX 汇编语言 8E D8 机器语言(目标代码),汇编语言与机器语言,汇编语言与目标代码的对应,与机器语言相关效率高编写源程序繁琐调试困难,汇编语言特点,(1)程序执行占用较短的时间,或者占用较小存储容量的场合。(2)程序与计算机硬件密切相关,程序直接控制硬件的场合。(3)需提高大型软件性能的场合。(4)没有合适的高级语言的场合。,汇编语言的主要应用场合:,二、汇编语言语句种类,语句种类 指令语句:又叫可执行语句,在汇编时产生一个目标代码,对应机器的一种操作。伪指令语句:又叫命令语句。用于指示汇编程序如何汇编源程序,没有目标代码与之对应。宏指令语句:由用户自定义的指令。(指令的扩展),格式:名字 操作符 操作数;注释指令语句:标号:助记符 操作数,操作数;注释伪指令语句:名字 定义符 参数,.,参数;注释命名规则:可以用?,_,数字和英文字符。名字的第一个字符不能是数字。名字的长度不受限制,但只有前31个字符有效。不允许用保留字作名字(指令,伪指令,寄存器名等)。,二、汇编语言语句格式,指令语句:标号:助记符 操作数,操作数;注释,1标号:标号是机器指令语句存放地址的符号表示,代表该指令目标代码的第一个字节地址,后面必须紧跟冒号“:”。2指令助记符:指令助记符为语句的核心成分,表示了该语句的操作类型。“MOV”3操作数:操作数表示指令助记符的操作对象。4注释:注释均以分号开始,它可占一行或多行,一般放在一条语句的后面。,伪指令语句:名字 定义符 参数,.,参数;注释,1名字(符号名):伪指令语句的一个可选项,空格表示结束,不得使用冒号。2定义符(伪指令符):指定汇编程序要完成的具体操作,如数据定义伪指令DB、DW、DD,段定义伪指令SEGMENT,假定伪指令ASSUME等。3参数(操作数):伪指令后面的操作数可以是常数、字符串、变量、表达式等,其个数由具体的伪指令决定,各个操作数之间必须以“逗号”分隔。4注释:伪指令的注释必须以“;”开始,其作用同指令语句中的注释部分。,三、符号定义语句,1.等值语句格式:符号 EQU 表达式 表达式:常数或数值表达式 地址表达式 变量或标号CONST EQU 10ADR1 EQU DS:BP+14HADR2 EQU CONST+10COUN EQU VAR 同一符号不能用EQU重新定义。汇编时,作为替代符号用,不产生目标代码,不占用存储单元。,2.等号语句格式:符号=表达式 CONT=5 NUM=10H NUM=NUM+20H表达式形式同上,但可多次重新定义同一符号。,三、符号定义语句,例:DATASEGMENTDA1DB9AHDA2DW5678HDA3DD12345678HDATAENDS,变量的属性:段属性SEG偏移属性OFFSET类型属性TYPE,四、数据定义语句,格式:变量名 DB/DW/DD 表达式1,表达式2,.保留存储空间,并可以完成数据的初始化。,格式:变量名 DB/DW/DD 表达式1,表达式2,.表达式:(1)数值(2)字符/字符串(3)?表达式:分配相应数量的存储单元,但不初始化。(4)带DUP的表达式:使用重复数据操作符DUP,能方便地定义连续的存储单元。格式:变量名 DB/DW/DD 表达式1,DUP(表达式2)次数 内容操作符DUP可以嵌套使用:DA_B3 DB 10H DUP(4 DUP(3),8),四、数据定义语句,DA_BYTE1DB50HDA_BYTE2DB10H,20H,30H,40HDA_WORD1DW0A34HDA_WORD2DW1234H,5678H,9ABCHDA_DWORDDD12345678H,9ABCDEFH,数值表达式,STRING1DBSTRINGSTRING2DWST,RI,NGSTRING3DDST,RI,NG,字符串表达式,DA_BYTE3 DB?,?DA_WORD3 DW?,?,?表达式,DA_B1DB10HDUP(?)DA_B2DB20HDUP(ABCD)DA_W1DW10DUP(4)DA_W2DW10DUP(-1,1),带DUP表达式,格式:变量名 DB/DW/DD 表达式1,DUP(表达式2)操作符DUP可以嵌套使用DB 10H DUP(4 DUP(3),8);3,3,3,3,8重复10H次,次数,内容,数据类型,字节BYTE1字WORD2双字DWORD4四字QWORD8十字节TBYTE10,DBDWDDDQDT,1.常数数值常数:二、八、十、十六进制 B,O,D,H字符串常数2.变量 用数据定义语句定义并预置初值后,变量代表存储单元的数据,并作为该单元的符号地址。变量引用:(1)在指令语句的操作数字段中,引用的变量名作为地址表达式的组成部分之一。地址表达式的值:存放操作数的存储单元偏移量。地址表达式的类型:同变量名的类型。(2)在用DW或DD的数据定义语句中,若操作数字段引用了变量名,则在分配的存储单元中,预置被引用的变量名的地址部分 偏移量(DW;DD,前两个字节)段基值(DD,后两个字节),五、汇编语言数据与运算符,3.标号:一条指令的符号地址。段属性 偏移属性 类型属性 NEAR/FAR 类型属性设置:(1)隐含方式:NEXT:MOV AX,3000(2)用LABEL伪指令设置类型属性:标号伪指令LABEL格式:名字 LABEL 类型 与指令语句配合使用:名字(新标号)LABEL 类型(NEAR/FAR)SUB1_FAR LABEL FAR SUB1:MOV AX,1234H 与数据定义语句配合使用:名字(新变量名)LABEL 类型(BYTE/WORD/DWORD)DATA _BYTE LABEL BYTE DATA _WORD DW 20H DUP(563H),运算符,+*/MODSHRSHL,运算格式,运算功能,+表达式表达式表达式1+表达式2表达式1 表达式2表达式1*表达式2表达式1/表达式2表达式1 MOD 表达式2表达式1 SHR 次数表达式1 SHL 次数,正数(单项运算符)负数(单项运算符)加法减法乘法除法(取商)模除(取余数)右移左移,(1)算术运算符,4.运算符,只有减法运算可以用同一段内的两个变量相减,SHR、SHL不能对某寄存器或存储单元内容进行移位运算。,示例NUM=11011011BDATA1DWNUMSHL 3,NUM SHR 2.MOVAX,NUM SHL 3MOVBX,NUM SHR 2MOVCX,NUM SHL 8MOVCX,NUM SHL 16MOVDX,NUM SHR 8MOVDX,NUM SHR 16DATA1DW6D8H,36H.MOVBX,00110110BMOVCX,0MOVDX,0MOVDX,0,算术运算符,移位运算符不能对寄存器或存储单元进行移位运算MOV AX,CX SHL 5MOV DX,DATA1 SHR 3,逻辑运算符只能对一个具体数据进行逻辑运算,不能对一个寄存器操作数或存储器操作数进行逻辑运算。,示例MOVAL,NOT0F0HMOVDX,NOT0F0HMOVBL,55H OR0F0HANDBH,55H AND 0F0HXORCX,55H XOR 50H,MOVAL,0FHMOVDX,0FF0FHMOVBL,0F5HANDBH,50HXORCX,5,全1为真,全0为假比较时,若为常数按无符号数比较;如果是变量,按偏移量比较,示例DATASEGMENTORG 10HNUM1=1234NUM2=1234HDA_BYTEDB10HDUP(0)DA_WORDDW10HDUP(0)DA_VAR1DWNUM2+DA_BYTEGTNUM1+DA_WORDDA_VAR2DBNUM1 LE NUM2DATAENDS.MOVAX,NUM1 LT NUM2MOVBL,NUM1 GE NUM2MOV CX,DA_WORD GT DA_BYTE.,.DA_VAR1DW0FFFFHDA_VAR2DB0FFH.MOVAX,0FFFFHMOVBL,0MOV CX,0FFFFH.,可以对两个常数进行比较,不能用常数与偏移量进行比较,格式:运算对象是存储器操作数,由变量名或标号组成地址表达式SEG:返回变量所在的段值OFFSET:返回变量所在偏移TYPE:返回变量的类型LENGTH:返回数组变量的元素个数SIZE:返回数组变量所占的总字节数 SIZE=TYPE*LENGTH,(4)数值返回运算符,示例 假设DATA的段基址是7A4EHDATASEGMENTORG30HDA1DB20HDUP(12H)DA2DWDA1.DATAENDS.MOVAX,SEGDA1MOVBX,SEGDA2MOVSI,OFFSETDA1MOVCX,DA2MOVDI,OFFSETDA2MOVDX,OFFSET DA1+4,MOVAX,7A4EHMOVBX,7A4EHMOVSI,30HMOVCX,DA2MOVDI,50HMOVDX,34H,用数字形式表示变量和标号的类型属性,示例DA_BYTE DB 12HDA_WORD DW 3456HDA_DWORDDD789AH.MOVAL,TYPEDA_BYTEMOVBL,TYPE DA_WORDMOVCL,TYPE DA_DWORD.MOVAL,1MOVBL,2MOVCL,4,LENGTH与SIZE运算符,LENGTH运算符返回数组变量的元素个数如果变量用DUP定义,Length为外层DUP的值如果没有DUP定义,结果为1SIZE运算符数组变量所占的总字节数SIZE是LENGTH和TYPE的乘积,示例DATASEGMENTVAR1DB10HDUP(0)VAR2DB10H,20H,30H,40HVAR3DW10HDUP(A,4 DUP(3)VAR4DBCOMPUTER.DATAENDS.MOVAL,LENGTHVAR1;MOVAH,SIZEVAR1;MOVBL,LENGTHVAR2;MOVBH,SIZEVAR2;MOVCL,LENGTHVAR3;MOVCH,SIZEVAR3;MOVDL,LENGTHVAR4;MOVDH,SIZEVAR4;,(AL)=10H(AH)=10H(BL)=1(BH)=1(CL)=10H(CH)=20H(DL)=1(DH)=1,例:求数组ARRAY的各数据项的累加和,从数组最后一个数据项开始进行累加。ARRAYDW20HDUP(4).XORAX,AXMOVSI,OFFSET ARRAYADDSI,SIZE ARRAY-TYPE ARRAYMOVCX,LENGTH ARRAYLOP:ADDAX,SISUBSI,TYPE ARRAYLOOP LOP,(5)属性运算符PTR:类型 PTR 地址表达式类型可以是:BYTE,WORD,DWORD 或NEAR FAR仅在当前语句中有效,是一种临时设置。DA_BYTE DB 20H DUP(0)DA_WORD DW 10H DUP(0)MOV WORD PTR DA_BYTE 10,AXADD BYTE PTR DA_WORD DI,BLINC BYTE PTR SISUB WORD PTRBX,30HJMP FAR PTR SUB1,THIS:THIS 类型THIS常与等值语句EQU一起用,形成新变量名或标号,使它们具有THIS后所指的类型,而段基值和偏移量与紧接的变量名或标号相同。例:DATA _BYTE EQU THIS BYTE DATA _WORD DW 20H DUP(0)JUMP_FAR EQU THIS FAR JUMP_NEAR:XOR AX,AX,(6)分离字节运算符HIGH表达式 LOW表达式分离运算对象的高字节和低字节部分表达式必须具有常量值,如常数、地址表达式的偏移量,不能是存储器操作数或寄存器内容.,示例DATASEGMENTORG20HCONSTEQU0ABCDHDATA1DB10HDUP(?)DATA2DW20HDUP(?).DATAENDS.MOVAH,HIGHCONSTMOVAL,LOWCONSTMOVBH,HIGH(OFFSETDATA1)MOVBL,LOW(OFFSETDATA2)MOVCL,LOW(CONSTSHL3),MOVAH,0ABHMOVAL,0CDHMOVBH,0MOVBL,30HMOVCL,68H,错误:MOV CH,HIGH DATA1MOV CL,LOW DATA1MOV DH,HIGH BPMOV DL,LOW AX,存储器,寄存器,六、段结构伪指令,1.段定义伪指令段名 SEGMENT定位类型 组合类型 类别名.段名 ENDS定位类型(Align Type):PAGE(页):本段从一个页的边界开始,起始地址能被256整除。PARA(节):本段从一个节的边界开始,起始地址能被16整除。WORD(字):本段从偶字节地址开始。BYTE(字节):本段从任意地址开始。,组合类型(Combine Type):表示段与段之间的连接:None:本段与其它段无连接关系,是独立的。PUBLIC:本段与其它同段名同类型的段相连接在一起,然后为所有这些段指定一个共同的段基地址,形成一个新的逻辑段。COMMON:本段与其它同段名同类型的段设置相同的段基址,共享相同的存储区,段长度由同名段中最大的段确定。(覆盖段),组合类型(Combine Type):,STACK:与PUBLIC段相似,但此段为堆栈段,系统自动对SS寄存器和SP指针初始化。AT表达式:本段的起始单元可以定位在表达式所示的节边界上。MEMORY:本段定位在所有其它段的最高地址,有多个段,只把第一个遇到的当作此段。类别名(Class):用户给定,在链接时把相同的段存储在连续的存储区。,2.段寻址伪指令ASSUME 段寄存器名:段名,段寄存器名:段名,.DS_DATASEGMENTVAR1 DB12HDS_DATAENDSES_DATASEGMENTVAR2 DB34HES_DATAENDSCODESEGMENTVAR3DB56H,ASSUME CS:CODE,DS:DS_DATASTART:.INC VAR1 INC VAR2 INC VAR3.CODE ENDS ENDSTART,可用关键字NOTHING取消前面的某些设置。例:ASSUME DS:NOTHING;取消对DS的设置 ASSUME NOTHING;取消全部4个段R的设置,,ES:ES_DATA,3.段寄存器的装入 DS,ES的装入DATA_DSSEGMENTDB1DB10HDUP(?)DATA_DSENDSDATA_ESSEGMENTDB2DB20HDUP(?)DATA_ESENDSCODESEGMENTASSUME CS:CODE,DS:DATA_DS,ES:DATA_ESSTART:MOVAX,DATA_DS;设置DSMOVDS,AXMOVAX,DATA_ES;设置ESMOVES,AX.CODEENDS,SS的装入(1)STACK1SEGMENTPARASTACKDW20HDUP(?)STACK1ENDS(2)STACK2SEGMENTDW 30H DUP(?)TOPLABELWORD STACK2ENDS.CODESEGMENT.MOVAX,STACK2;设置SSMOVSS,AXMOVSP,OFFSET TOP;修改SP,自动装入,执行程序装入,CS的装入(1)结束伪指令.CODESEGMENTASSUMECS:CODE,.START:.CODEENDSEND START(2)CALL,RET;JMP;IRET,七、过程定义伪指令过程名 PROC NEAR/FAR.RET过程名 ENDP有三个属性一个过程内,至少有一条返回指令RET调用过程使用CALL 过程名段内返回与段间返回,八、其它伪指令,1.ORG,$ORG 表达式 将表达式的值赋给位置计数器$存放位置计数器的当前值,DATASEGMENTORG30H;$=30HDB1DB12H,34H;$=32H ORG$+20H;$=52HSTRINGDBSTRING.DATAENDS-,ORG,$举例,CODESEGMENT.ORG50HMOVAX,OFFSET$MOVBX,OFFSET$.CODEENDS,MOVAX,0050HMOVBX,0053H,DATASEGMENTDA1DB10HDUP(?)DA2DB12H,34HDA3DW56H,$+10H,78H,$+20H.DATAENDS,;$=10H,;$=12H,;$=1AH,八、其它伪指令,2.EVEN 伪指令定位偶地址3.INCLUDE伪指令 INCLUDE 文件名 INCLUDE 文件名例:INCLUDEFILE.MACINCLUDEB:MASMABC.ASM,4.PUBLIC PUBLIC 符号1,符号2,.,PUBLIC NUM1,STRING,SUB1,LOOP1DATA1SEGMENTNUM1EQU1234H.STRINGDBCHARACTER STRING.DATA1ENDS.CODE1SEGMENT.SUB1PROC FAR.SUB1ENDPLOOP1:.CODE1ENDSEND,5.EXTRN 伪指令EXTRN符号 1:类型,符号 2:类型,.例:,EXTRNNUM1:ABS,STRING:BYTEEXTRNSUB1:FAR,LOOP1:NEAR:CODE2SEGMENT:MOVAX,NUM1LEABX,STRING:CALL SUB1:JMPFAR PTR LOOP1:CODE2ENDSEND,八、其它伪指令,5.TITLE(标题)伪指令,指定一个标题 格式:TITLE 文本字符不超过80个例:TITLE EXAMPLEPROGRAM,九、宏指令,例:MULTAX10MACROPUSHBXSALAX,1MOVBX,AXSALAX,1SALAX,1ADDAX,BXPOP BXENDM,九、宏指令1.宏定义宏名 MACRO 形参1,形参2,.ENDM,EXCHANG EMACRO MEM1,MEM2,REG MOVREG,MEM1 XCHGREG,MEM2 MOV MEM1,REG ENDM,2.宏调用 宏名 实参1,实参2,.EXCHANGEDA_BY1,DA_BY2,AL3.宏展开,;宏定义MULTAX10MACROPUSHBXSALAX,1MOVBX,AXSALAX,1SALAX,1ADDAX,BXPOPBXENDM;-EXCHANGEMACRO MEM1,MEM2,REGMOVREG,MEM1XCHGREG,MEM2MOV MEM1,REGENDM,;设置数据段DATASEGMENTDA_W01DW1234HDA_W02DW5678HDATAENDS;设置堆栈段STACK1SEGMENTPARASTACKDW20HDUP(?)STACK1ENDS;设置代码段COSEGSEGMENTASSUMECS:COSEG,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AX.MULTAX10;宏指令语句+PUSHBX+SALAX,1,+MOV BX,AX+SAL AX,1+SAL AX,1+ADDAX,BX+POPBX.EXCHANGEDA_W01,DA_W02,CX:宏指令语句+MOVCX,DA_W01+XCHGCX,DA_W02+MOVDA_W01,CX.COSEGENDSENDSTART,4.宏操作符连接操作符&定义:SHIFT_VAR MACRO R_M,DIRECT,COUNT MOV CL,COUNT S&DIRECT R_M,CL ENDM调用:SHIFT_VAR AX,HL,2 SHL AX,CL SHIFT_VAR AX,HR,2 SHR AX,CL,SHIF0MACROCNTMOVCL,CNTENDMSHIF1MACRO REG,DIRECT,NUMCOUNT=NUMSHIF0%COUNTS宏调用SHIF1AX,HL,2SHIF1BL,AR,3,表达式操作符%格式:%表达式;获取表达式的值(出现在宏调用中),;宏展开SHIF1AX,HL,2+MOVCL,2+SHLAX,CLSHIF1 BL,AR,3+MOVCL,3+SARBL,CL,文本操作符 EXCHANGE,AL宏展开MOVAL,BYTE PTR DA_WORD1XCHGAL,BYTE PTR DA_WORD2MOV BYTE PTR WORD1,AL字符操作符!格式:!字符宏定义:PROMPT MACRO NUM,TEXT PROMP,5.LOCAL伪指令,LOCAL 在汇编过程中,宏定义中的内容会在每一次宏调用处展开。因此当多次调用一个宏时,宏定义中的标号会造成标号重复定义。在宏定义中使用LOCAL伪指令可以使标号被局部化,从而避免重复定义。LOCAL伪指令只能用在宏定义中,并且它必须是宏定义中紧跟在MACRO伪指令之后的第一个语句。,用连续相加的办法实现无符号数乘法运算MULTIPMACRO MULT1,MULT2,MULT3LOCAL LOP,EXIT0MOVDX,MULT1MOVCX,MULT2XORBX,BXXORAX,AXJCXZEXIT0LOP:ADDBX,DXADCAX,0LOOPLOPEXIT0:MOVMULT3,BXMOVMULT3+2,AXENDM,设数据段有如下定义的变量:DA1DW1234H,5678HDA2DW120H,210HDA3DW4 DUP(?),宏展开:.MULTIPDA1,DA2,DA3+MOVDX,DA1+MOVCX,DA2+XORBX,BX+XORAX,AX+JCXZ?0001+?0000:ADDBX,DX+ADCAX,0+LOOP?0000+?0001:MOVDA3,BX,+MOVDA3+2,AX.MULTIPDA1+2,DA2+2,DA3+4+MOVDX,DA1+2+MOVCX,DA2+2+XORBX,BX+XORAX,AX+JCXZ?0003+?0002:ADD BX,DX+ADCAX,0+LOOP?0002+?0003:MOVDA3+4,BX+MOVDA3+6,AX.,6.宏嵌套宏定义嵌套嵌套的宏定义:JUMPMACROCONDJ&COND&SMACRODEST LOCALNEXT,EXIT J&CONDNEXT JMPEXITNEXT:JMPDESTEXIT:ENDM ENDM,外层宏调用为:JUMP EJUMP NEJUMP GJUMP GE内层宏调用为::JESSUB1;等于0转移:JGES SUB2;大于或等于转移:,当宏汇编程序对内层宏展开后,可得到如下结果:JE?0000JMP?0001?0000:JMPSUB1?0001:JGE?0002JMP?0003?0002:JMPSUB2?0003:,两个宏定义:对32位数左移一位SHIFTMACRONUM1,NUM2SALNUM2,1RCLNUM1,1ENDM对32位数乘以12MULT12MACROM_R1,M_R2,REG1,REG2PUSHFPUSHREG1PUSHREG2SHIFTM_R1,M_R2 SHIFTM_R1,M_R2 MOVREG1,M_R1MOVREG2,M_R2,宏定义内嵌套宏调用,SHIFTM_R1,M_R2ADDM_R2,REG2ADCM_R1,REG1POPREG2POPREG1POPFENDM某数据段已定义变量:在程序中可以编写宏指令语句::MULT12DA_WORD+2,DA_WORD,AX,BX:MULT12AX,BX,CX,DX:7.宏库,P205 1,3P206 5,7,9P208 14,作 业,

    注意事项

    本文(计算机原理与汇编汇编语言基础.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开