




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 汇编语言程序设计基础,4-1 汇编语言程序设计方法,4-2 汇编语言程序结构,4-3 汇编语言的编辑与汇编,4-1 汇编语言程序设计方法,2 程序设计步骤,1 程序及程序设计,1 程序及程序设计,例如:计算63+56+36+14=? MOV A,#63 ;数63送入寄存器A ADD A,#56 ;数56与A中的数63相加,其结果119送A ADD A,#36 ;数36与A中的数119相加,其结果155送A ADD A,#14 ;数155与A中的数14相加,其结果169保存在A中,程序是一系列指令的有序集合 程序设计则是编制程序的过程,程序设计:就是人们用计算机能接受的语言,把欲解决问题的算法和步骤描述出来的过程。,编程语言 机器语言汇编语言高级语言(字符型图形化),2、 程序设计步骤,分析课题确定算法和数据结构确定操作步骤画流程图编制源程序调试程序,分析课题:对具体问题具体分析,并抽象出数学模型 确定算法:解决同一问题有多种方法,从中选择一种最佳的方法 确定数据结构:合理安排数据结构,合理选择和分配内存空间、工作寄存器以及I/O接口地址 程序模块:把整个问题分成若干个功能模块,画出层次图及通信 画流程图:以图示形式表示解决具体问题的思路和方法 编制源程序:精心挑选合适的指令和操作数的寻址方式 用注释行说明程序,便于阅读、调试和修改。 调试程序:,流程图图例,起止框 处理框 判断框 连线,4-2 汇编语言程序结构,程序设计方法 结构化设计,三种基本控制结构, 顺序结构 选择结构 循环结构 一个子程序结构 子程序 中断服务子程序,程序开发方法 自顶向下方法先顶层开发 先写主程序,后写子程序 自底向上方法先底层开发 先写子程序,后写主程序 混合方法,程序设计:就是人们用计算机能接受的语言,把欲解决问题的算法和步骤描述出来的过程。,编程语言 机器语言汇编语言高级语言(字符型图形化),4-2 汇编语言程序结构,4-2-1 顺序结构程序设计,4-2-2 分支结构程序设计,4-2-3 循环结构程序设计,4-2-4 子程序结构程序设计,4-2-1 顺序结构程序设计,顺序结构是按照指令在存储器中存放的先后顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。 特点: 程序中无转移、调用、分支、循环指令; 程序按编写的先后顺序执行,程序流向不变 PC自动加1 在实际编程中应注意 如何正确选择指令、寻址方式和合理使用工作寄存器,包括数据存储器。 数据传送和交换程序、简单运算程序、查表程序,【例4-1】拆字、拼字程序 将片内RAM 50H单元的低4位取出当作高4位,与51H单元的低4位合成一个字节后存入52H单元。,STR EQU 50H ;头文件 ORG 0000H MOV R1,#STR MOV A,R1 ;取50H单元中的数据 ANL A,#0FH ;拆字,屏蔽高4位 SWAP A ;高、低4位互换 INC R1 ;指向51H单元 XCH A,R1 ;51H单元内容与累加器内容互换 ANL A,#0FH ;拆字,取原51H单元的低4位 ORL A,R1 ;拼字 INC R1 MOV R1,A ;存结果 RET END,【例4-1】拆字、拼字程序 将片内RAM 50H单元的低4位取出当作高4位,与51H单元的低4位合成一个字节后存入52H单元。,STR EQU 50H ;头文件 ORG 0000H MOV R1,#STR ;指向50H单元 MOV A,R1 ;取50H单元中的数据 SWAP A ;高、低4位互换 INC R1 ;指向51H单元 XCHD A,R1 ;拆字,拼字;51H单元的低4位 ;与A的低4位内容互换 INC R1 ;指向52H单元 MOV R1,A ;存结果 RET END,【例4-2】数制转换 将片内RAM 30H单元的无符号二进制数转换成BCD码数,结果按高低顺序依次存放到33H、32H、31H单元。,ORG 0000H HEX_D: MOV A, 30H ;取原数据数 MOV B, #10 DIV AB ;二进制数除10 MOV 31H, B ;将余数(BCD码的个位)送31H MOV B, #10 DIV AB ;商再继续除10 MOV 32H, B ;将余数(BCD码的十位)送32H MOV 33H, A ;将商(BCD码的百位)送33H RET,【例4-3】查表程序 关键在:组织具有规律性的表格 求R1中数(015)的平方,结果仍放回到R1中。,ORG 0000H TAB1: MOV A, R1 ADD A, #02H ;加上地址偏移量 MOVC A, A+PC ;查表 MOV R1,A RET DB 00H, 01H, 04H, 09H ;平方表 DB 10H, 19H, 24H, 31H ;续表 DB 40H, 51H ;续表,【例4-3】查表程序 求R1中数(015)的平方,结果仍放回到R1中。,ORG 0000H TAB2: PUSH DPH ;保存DPTR的原值 PUSH DPL MOV DPTR, #TAB ;取平方表首地址 MOV A, R1 MOVC A, A+DPTR ;查平方表 MOV R1, A POP DPL ;恢复DPTR的原值 POP DPH RET TAB: DB 00H, 01H, 04H, 09H ;平方表 DB 10H, 19H, 24H, 31H DB 40H, 51H,以PC为指针查表程序 输入参数:R2 输出参数:R3R4,TB1: mov A,R2 add A,R2;? mov R3,A add A,#08H;? movc A,A+PC xch A,R3 add A,#03H ;? Inc A ;? movc A,A+PC mov R4,A sjmp $,TAB1: DW 1520,3721,4264 DW 7850,3483,32657 DW 883,9943,1000 DW 4051,6785,8931 DW 4468,5871 DW 13284,27808 END,以DPTR为指针查表程序 输入参数:R2R3 输出参数:R2R3,LTB2: mov DPTR,#TAB2 mov A,R3 clr C rlc A mov R3,A xch A,R2 rlc A xch A, R2 add A,DPL mov DPL,A mov A,DPH addc A,R2 mov DPH,A,clr A movc A,A+DPTR mov R2,A clr A inc DPTR movc A,A+DPTR mov R3,A ret TAB2: DW 520H,3721H,4264H DW 7850H,3483H,3265H DW 883H,9943H,1000H,4-2-2 分支结构程序设计,特点:程序中含有转移类指令 关键:正确选用转移指令,无条件分支程序 程序设计者事先设计好的流向 LJMP、AJMP 、SJMP、JMP、LCALL、ACALL、RET(I) 有条件分支程序 根据程序执行过程中对标志位、A、内部RAM的某些单元或位的影响结果决定程序的流向。使cpu具有判断决策能力 JZ/JNZ、CJNE、DJNZ、位控制转移类指令的有机配合,注意 使用条件转移指令形成分之前一定安排可供条件转移指令进行判别的条件。JC LOOP 正确选定所用的转移条件、转移目标地址(标号)及转移范围,一、单重分支程序,一个判断决策框,程序有两条出路,二选一。 由一个条件转移指令实现,有三种典型单分支结构:,补码绝对值,例 求R2中补码绝对值,正数不变,负数变补。 MOV A,R2 JNB ACC.7,NEXT;为正数? CPL A ;负数变补 INC A MOV R2,A NEXT:SJMP NEXT ;结束,JNB,【例4-4】无符号数的比较 比较外部RAM Data1和Data2单元的两个无符号数,并将大数存入Data3单元中, Data1、Data2和Data3为连续的单元,ORG 0000H COM1:MOV A, 40H CJNE A, 41H, L1;两数比较 L1: JC J2 ;C=1,则A小转BIG2 BIG1 MOV 42H, A ;大数送42H RET BIG2: XCH A, 41H ;大数送A SJMP BIG1 END,先看数据放在内部RAM的情况,data1 equ 1000h com1:mov dptr, #data1 movx a, DPTR mov b,a inc DPTR movx a, DPTR cjne a, b, l1 l1: jc big2 ;c=1,则a小 big1: inc dptr movx dptr, a ret big2: xch a, b sjmp big1 end,【例4-5】代码转换程序设计1 一位十六进制数与ASCII码之间的转换 1、一位十六进制数转换为ASCII码 2、ASCII码转换为一位十六进制数,09的ASCII码:3039H,AF的ASCII码:4146H。 09与09之间的差值30h AF与AF之间的差值37h;,1、十六进制转换成ASCII码 输入:R2中存放一位十六进制;出口:R2返回ASCII值 ORG 0000H HEXASC:MOV A, R2 ;将该十六进制数暂存于A中 CJNE A, #0AH, $+3 JNC ADD_37;若大于等于0AH,则加37H ADD_30:ADD A, #30H;若小于0AH,则加30H MOV R2, A ;保存结果 RET ;子程序返回 ADD_37:ADD A, #37H;大于或等于0AH,则加37H MOV R2, A ;保存结果 RET ;子程序返回,2、ASCII码转换成十六进制 输入:R2中存放ASCII码 输出:R2中返回十六进制 ASCHEX:mov A,R2 clr c subb A,#30h cjne A,#10,$+3 jc A, HEXASC1 ;A10转移 subb A,#07h ASCHEX1: ret,二、 多重分支程序,程序有两条以上的出路,多选一。,2、按分支号转移,使用散转指令 JMP A+DPTR (1)转向地址表法:DW (2)转向地址偏移量表法:DB (3)查表与RET指令结合 MOVC和RET (4)转移指令表法:LJMP或AJMP,1、多次使用条件转移指令,形成两个以上判断框。 CJNE指令和JC、JNC有机配合 JB、JNB、JBC JZ、JNZ,1、多次使用条件转移指令,形成两个以上判断框。,例 求符号函数Y=SGN(X) 输入X存入40H,输出Y存入41H中 +1 当 X0 Y= SGN(X)= 0 当 X=0 -1 当 X0,SYMB: MOV A,40H ;取X JZ STOR ;X=0,Y=X JB ACC.7,MINUS;X0 MOV A,# 1 ;X0,Y=+1 STOR: MOV 41H,A ;保存Y RET MINUS:MOV A,#0FFH ;X0,Y= -1 SJMP STOR,要点:将流程图按条件NO优先方式拉直 在流程图汇合处和转移目的地址处加标号,比较内部RAM Data1和Data2单元内以补码形式表示的带符号数,并将大数存入BIG单元,小数存入SMALL单元,若相等,则建立起标志位F0,Data1 EQU 40h Data2 EQU 41h BIG EQU 30H SMALL EQU 31H ORG 0000H COM2: MOV A, Data1 XRL A, Data2 JNZ STEP1 ;两数不等,转STEP1 SETB F0 ;两数相等,F0置位 RET STEP1: JB ACC.7, TEST;两数异号,转TEST XRL A, Data2 ;两数同号,恢复Data1 SUBB A, Data2 ;比较 JC STEP3 ; Data1小,转STEP3 STEP2: MOV BIG, Data1 ; Data1大 MOV SMALL, Data2 RET TEST: XRL A, Data2 ;恢复Data1 JNB ACC.7, STEP2 ; Data1为正,大,转STEP2 STEP3: MOV SMALL, Data1 MOV BIG, 41H RET,【例4-6】带符号数的比较: XRL指令和JNZ、JB、JNC有机配合,分支号R2=0,程序转移到PROG0处;当分支号R2=1,程序转移到PROG1处;当分支号R2=n,程序转移到PROGn处。,【例4-7】散转程序:使用JMP 实现多分支程序转移,ORG 0000H MOV DPTR, #TAB ;取转移地址表首地址 MOV A, R2 ;取变量值 ADD A, R2 ;对变量乘2修正 JMP A+DPTR TAB: AJMP PROG0 AJMP PROG1 AJMP PROGn-1 AJMP PROGn,行李计价: 当G5,M=G3; 当G5,M=G3+(G-5)(5-3),FRT: MOV A,40H ;取行李重量计价单位kg MOV R3,A MOV B,#03H ;M=G3 MUL AB MOV R2,A ;暂存3G MOV A,R3 ;取回G CJNE A,#05H,L1;G5 ? WETC:MOV 41H,R2 ;存结果M RET L1:JC WETC ;是,转至WETC SUBB A,#05H ;否则M=3G+2(G-5) RLC A ADD A,R2 MOV R2,A SJMP WETC,例:某车站托运行李,规定重量不超过5kg,每公斤按3元计价,若超过5kg,其超重部分每公斤加收2元。试编制程序,当行李重量为G时,计算托运费M,CJNE指令和JC、JNC有机配合,2、按分支号转移,如:分支号A=0,程序转移到ADDR0处;当分支号A=1,程序转移到ADDR1处;当分支号A=n,程序转移到ADDRn处。,(1)、 (3)用转向地址表法。由PUSH同RET指令配合; 设分支号已存入A。 MTJS: MOV DPTR,#TAB ;取表首地址 CLR C ;分支号2 RLC A JNC LOW ;若A127,则转移 INC DPH ;若A127,则DPTR加256 LOW: MOV R2,A ;修正值送R2保存 MOVC A,A+DPTR ;取分支地址高8位 XCH A,R2 ;AR2 INC A MOVC A,A+DPTR ;取分支地址低八位 PUSH ACC ;分支地址低八位入栈保存 MOV A,R2 PUSH ACC ;分支地址高8位入栈保存 RET ;分支地址PC,转移 TAB: DW ADDR0 ;分支转移地址表 DW ADDR1 ;高字节地址,低字节地址 ADDR0: ;程序段0 ,2、按分支号转移,JMP4: mov R2,#1 mov DPTR,#TBL4 mov A,R2 add A,R2 jnc NADD inc DPH NADD:mov R3,A movc A,A+DPTR xch A,R3 inc A movc A,A+DPTR mov DPL,A mov DPH,R3 clr A jmp A+DPTR,(1)用转向地址表法。设分支号已存入R2, 使用movc A,A+DPTR和 jmp A+DPTR散转指令配合。,TBL4: DW PRG0 DW PRG1 DW PRG2 DW PRG3 PRG0: mov R0,#0 sjmp Halt PRG1: mov R0,#1 sjmp Halt PRG2: mov R0,#2 sjmp Halt PRG3: mov R0,#3 Halt: sjmp $,(2)用地址偏移量表法。 巧妙利用JMP A+DPTR和MOVC A,A+DPTR两条指令配合; 设R7=分支号,MTJS:MOV DPTR,#TAB ;指向表首地址 MOV A,R7 ;分支号送A MOVC A,A+DPTR;查表内容送A JMP A+DPTR ;实现多分支转移 TAB:DB ADDR0 -TAB ;地址偏移量表 DB ADDR1 -TAB DB ADDRn -TAB ADDR0: ;程序段0 ADDR1: ;程序段1 ADDR n: ;程序段n ,PC = DPTR+A = TAB+ADDRn-TAB = ADDRn,(4)转移指令表法。用分支转移指令 JMP A+DPTR。设R7R6=分支号,MTJS:MOV DPTR,#TAB;指向表首地址 MOV A,R7 ;分支号高字节3 MOV B,#03H MUL AB ;乘积不超过1字节 ADD A,DPH MOV DPH,A MOV A,R6 ;分支号低字节3 MOV B,#03H MUL AB XCH A,B ADD A,DPH ;DPHDPH+(R7、R6)3)高字节 MOV DPH,A XCH A,B ;A(R7、R6)3)低字节 JMP A+DPTR ;实现多分支转移 TAB: LJMP ADDR0 ;转移指令表 LJMP ADDR1 LJMP ADDRN ADDR0: ;程序段0 ADDR1: ;程序段1 ,4-2-3 循环结构程序设计,主要特点: 大大缩短程序,减少占用程序空间; 程序结构优化,清晰易读,循环结构使程序紧凑; 可以实现多重循环控制,循环嵌套; 循环程序主要由循环常数初始化部分、循环体、结束部分三部分组成,一、循环程序的构成 二、单重循环程序 三、多重循环程序,一、 循环程序的构成,一初始化部分 循环准备工作。如:清结果单元、设指针、设循环控制变量初值等。,二循环体 循环执行部分:需多次重复处理的工作。 循环控制部分: 1.修改指针和循环控制变量。 2.检测循环条件:满足循环条件,继续循环,否则退出循环。 三.结束部分 分析、处理和保存循环结果。 至少1次循环的循环结构:选用先执行后判断的循环结构。 允许0次循环的循环结构:选用先判断后执行的循环结构。,二、单重循环程序 简单循环结构:循环体中不套循环。,【例4-8】 :计算1+2+10的和并保存在内RAM的Y单元,Y EQU 20H ORG 0000H CLR A ;清部分和 MOV R0, #01 ;置累计初值 LOOP:CJNE R0, #11, AD ;判断是否完成 MOV Y, A ;保存结果 RET ;结束 AD: ADD A, R0 ;计算部分和 INC R0 ;修改循环计数器 SJMP LOOP ;循环,设有一组数存放在内RAM从DATA开始的连续单元中,数据长度放在DATA1单元中,使编写程序找出其中的最大数,并存入DATA2单元,Data2 EQU 40H Data1 EQU 41H Data EQU 42H ORG 0000H MOV R0, #Data ;设置地址指针,并指向存放数据的起始单元 MOV Data2, R0 ;将第一个数当作当前最大数 DEC Data1 ;修改剩余的数据个数 NEXT: INC R0 ;指向下一个数据单元 MOV A, R0 ;取当前数据 CJNE A, Data2, COMP;比较当前数与当前最大数 COMP: JC CON ;若当前数小于当前最大数,则继续。 MOV Data2, A ;否则,把当前数当作最大数 CON: DJNZ Data1, NEXT ;判断数据是否比较完毕 RET ;比较结束,【例4-9】 :求最大数,三、多重循环程序,注意循环嵌套 允许外重循环嵌套内重循环 循环体不能交叉 不能从循环程序外部跳入循环程序内部,【例4-10】软件延时程序 1s延时程序(设时钟f=12MHz,T=1s),DEL1s: MOV R3, #10 ;单周期,1T DEL1: MOV R4, #200 ;单周期,1T DEL2: MOV R5, #248 ;单周期,1T DEL3: DJNZ R5, DEL3 ;双周期,2T NOP ;单周期,1T DJNZ R4, DEL2 ;双周期,2T DJNZ R3, DEL1 ;双周期,2T RET ;双周期,2T,t=(2T248)+4T)200+3T)10+3T)1s=1000033s1s,1、什么叫程序设计? 程序设计:就是人们把欲解决问题的算法和步骤用计算机能接受的语言描述出来的过程,复习提问,问题,分析,算法,确定,步骤,写出,流程图,画出,源程序,编制,目标程序,汇编,程序存储器,编程,人 解决问题,计算机 解决问题,复习提问,2、汇编语言程序的四种基本结构是什么? 顺序结构:按编写的先后顺序执行、PC自动加1 分支结构:含有转移类指令、具有判断决策能力 循环结构:重复执行某段程序 子程序结构:具有特定功能的独立程序段,4-2-4 子程序结构程序设计,子程序:能完成某项特定功能的独立程序段,可被反复调用。 具有通用性、完整性和独立性.,一、子程序结构,三、子程序参数传递,二、子程序的调用与返回,1.提供足够的调用信息: 如:子程序名、子程序功能、入口参数和出口参数、子程序占用的硬件资源、子程序中调用的其他子程序名。 2.子程序第一条指令必须为标号 标号作为子程序入口地址 作为子程序名供主程序调用 3.子程序最后一条指令必须为RET(I) 恢复断点,返回主程序,,一、子程序结构,标准子程序的格式: ;子程序名 ;子程序功能: ;入口参数: ;出口参数: ;占用资源: ;调用的其他子程序名 子程序名: . ; . . RET(I),入口参数:调用子程序之前,需要主程序传给子程序的参数。 出口参数:子程序送回给主调程序的结果参数。,1、调用子程序之前:设置好堆栈,配好入口参数。 2、主程序通过调用指令:ACALL、 LCALL进入子程序 注意现场的保护 PUSH PSW、A、B、改变R组 执行子程序操作嵌套:注意嵌套深度与堆栈区大小的问题 注意现场的恢复 POP B 、 A、 PSW 3、子程序用返回指令RET(I)结束子程序 并保证堆栈栈顶为调用程序的返回地址。,二、子程序的调用与返回,注意 防止自然进入子程序和自然退出子程序,入口参数传递 无参数传递: 主程序和子程序之间不需要参数传递 通过寄存器传递 主程序将参数存入A、Rn、DPTR 子程序从A、Rn、DPTR中取参数 通过地址传递 主程序将参数存入RAM的单元中 子程序从RAM的单元中取参数 通常用R0、R1、DPTR的间接寻址 通过堆栈传递 主程序用PUSH将参数压入堆栈; 子程序按堆栈指针来间接访问参数,三、子程序参数传递 主程序子程序,出口参数传递 无参数传递: 通过寄存器传递 通过地址传递 通过堆栈传递,通过寄存器和地址传递,方法简单、通用性强 例: ORG 0000H Main: MOV SP,#30H MOV R0,#40h MOV R7,#10H LCALL Zero SJMP $,;子程序名:Zero ;功能:对内部数据区清零 ;入口参数:R0内部数据区首地址 ; R7内部数据区长度 ;出口参数:无 ;占用资源:R0,R7 ;调用的其他子程序名:无 Zero:push A ;现场的保护 clr A Loop:mov R0,A inc R0 djnz,R7,Loop POP A ;现场的恢复 ret,【例4-11】通过寄存器传递,试编程计算y=a12+a22+a102;ai存放在内RAM20H单元中且小于10,结果按高低顺序存放在R2、R3中。,【例4-11】通过寄存器传递,ORG 0000H MAIN: MOV SP, #60H;堆栈初始化 MOV R0, #20H;设置数据指针 MOV R7, #10 ;设置循环计数器 MOV R3, #00H;清结果低字节单元 MOV R2, #00H;清结果高字节单元 NEXT: MOV A, R0 ;取数据 ACALL SQRT ;调用求平方数子程序 ADD A, R3 ;平方部分和 MOV R3, A ;保存低字节 CLR A ;部分和高字节加 ADDC A, R2 ;部分和低字节产生的进位 MOV R2, A ;保存高字节 INC R0 ;指向下一个数据单元 DJNZ R7, NEXT;未完,继续 SJMP $,试编程计算y=a12+a22+a102;ai存放在内RAM20H单元中且小于10,结果按高低顺序存放在R2、R3中。,【例4-11】通过寄存器传递,试编程计算y=a12+a22+a102;ai存放在内RAM20H单元中且小于10,结果按高低顺序存放在R2、R3中。,;子程序名: SQRT ;功能:求A平方的子程序 ;入口参数:A ;出口参数:A ;占用资源:DPTR ;调用的其他子程序名:无 SQRT:MOV DPTR, #TAB ;取平方表首地址 MOVC A, A+DPTR ;查平方表 RET ;子程序返回 TAB: DB 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 END,【例4-10】通过堆栈传递参数,码制转换2:将内RAM 20H单元中十六进制数转换为两位ASCII,结果高低顺序存入21H与22H单元。,54,PCL,PCH,SP,34,SP,SP,34,ORG 0000H MAIN: MOV SP, #60H;设置堆栈初值 MOV A, 20H ;取被转换的16进制数 SWAP A ;交换位置,以便对高位进行转换 PUSH ACC ;压入堆栈 ACALL HEXASC;调用转换子程序,对高位进行转换 POP 21H ;从堆栈中取出转换结果 PUSH 20H ;将将原数据压入堆栈 ACALL HEXASC;调用转换子程序,对低位进行转换 POP 22H ;从堆栈中取出转换结果 SJMP $ ;转换结束,等待,HEXASC: MOV R1, SP ;转移堆栈指针,因SP不可修改 DEC R1 ;下移指针,以便指向被转换数据单元 DEC R1 MOV A, R1 ;从栈区中取出被转换数据 ANL A, #0FH ;屏蔽高半字节,只对低半字节转换 ADD A,#02H ;修正查表指针 MOVC A, A+PC;查ASCII表 MOV R1, A ;保存转换结果到栈区 RET ;转换子程序返回 TAB: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H DB 38H, 39H, 41H, 42H, 43H, 44H, 45H, 46H END,4.3 汇编语言的编辑与汇编,4.3.1、汇编语言源程序的编辑 4.3.2、源程序的汇编,4.3.1、汇编语言源程序的编辑,源程序的编写要依据8051汇编语言的基本规则(指令系统),特别要用好常用的汇编命令(即伪指令),例如下面的程序段: ORG 0040H MOV A,#7F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢材公司的合同范本
- 委托转租门面合同范本
- 2017租房协议合同范本
- 青少年读本出版合同
- 新租赁厂房合同范本
- 入户空间租房合同范本
- 公路承包开挖合同范本
- 混合型肠易激综合征护理查房
- 成套电器销售合同范本
- 2008租赁合同范本
- 英汉互译单词练习打印纸
- 四川JS-004竣工验收报告
- 花卉栽植施工方案
- 水工闸门课件
- 水泥生产企业生产安全事故综合应急预案
- 全自动血液细胞分析仪产品技术要求深圳迈瑞
- 找对英语学习方法的第一本书
- 安徽涵丰科技有限公司年产6000吨磷酸酯阻燃剂DOPO、4800吨磷酸酯阻燃剂DOPO衍生品、12000吨副产品盐酸、38000吨聚合氯化铝、20000吨固化剂项目环境影响报告书
- 《诺丁山》经典台词
- 对铁路机车乘务员规章培训的探讨与实践
- 临床医学实验室 仪器设备一览表格模板
评论
0/150
提交评论