




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 8086的汇编语言,4.1 8086汇编语言源程序的格式,4.1.1 汇编语言(Assembly language) 汇编语言是一种面向机器的程序设计语言,不同类型的CPU,其汇编指令也不尽相同。它是对机器语言的符号化描述,是一门低级语言。用汇编语言编写的程序叫“汇编语言程序”或“汇编语言源程序”。这种程序较机器语言直观、易懂、便于交流和维护。与其他高级语言一样,汇编语言源程序不能直接被计算机识别并运行,它必须通过汇编程序翻译成机器能够识别的机器语言程序(目标程序,Object Program)才能运行。利用汇编程序将汇编语言源程序翻译成机器代码的过程称为汇编。,4.1 8086汇编语言源程序的格式,4.1.2 汇编程序(Assembler) 汇编程序与汇编语言(源)程序是两个截然不同的概念。汇编语言程序是用户根据实际需求,使用汇编语言程序格式用助记符指令自行编写的程序;而汇编程序是系统程序,是用来将用户编写的汇编语言(源)程序转换为机器代码的系统工具程序。汇编程序以汇编语言(源)程序输入,并由此生成目标程序文件(机器能够识别的二进制代码)。 汇编语言程序从建立到执行的转换过程如图,4.1 8086汇编语言源程序的格式,4.1.3 汇编语言程序的格式 一个汇编语言程序可由若干个(此例有3个)段组成。每个段均以SEGMENT开始以ENDS结束。 每个段可以包含若干语句,而语句又可以是指令语句或伪指令语句两种。如程序中用到的ASSUME,DB,SEGMENTENDS等为伪指令语句。 每条语句可由标识符、保留字、表达式等元素组成。,4.1 8086汇编语言源程序的格式,4.1.4 语句类型 8086/8088汇编语言程序的语句除指令语句以外,还可以有伪指令语句和宏指令语句 在汇编语言中,指令、伪指令和宏指令语句都可由四个域构成,格式如下: 标识符 操作符 操作数 ;注释 其中标识符和注释域作为可选项,在语句中根据需要决定是否选择。,4.1 8086汇编语言源程序的格式,1标识符 标识符是源程序中为方便引用或阅读而指定的字符串。即程序员给某个位置给定的一个符号名字。它可以是下列字符的组合: 字母AZ 或az; 数字09; 专用字符?、.、_(下划线)、$。,4.1 8086汇编语言源程序的格式,2操作符 操作符是指令、伪指令或宏指令的助记符,说明本指令将执行一个什么样的操作。指令及伪指令助记符由汇编语言系统规定,宏指令助记符由编程者定义宏指令时设定。 如“MOV”为将源操作数传送到目的操作数的指令,“ADD”为加法指令等。,4.1 8086汇编语言源程序的格式,3操作数 一般情况下操作数有一个或两个操作数,也可以有多个操作数。若是两个或两个以上的操作数,则各个操作数之间用逗号分隔。操作数字段可以由常数,变量,表达式,寄存器名或标号中的一种或几种组成: 常数 二进制常数 八进制常数 十进制常数 十六进制常数 符号常量 串常数 标号和变量,4.1 8086汇编语言源程序的格式,表达式及运算符,表4-1 8086汇编语言中的运算符,4.1 8086汇编语言源程序的格式,(6)改属性运算符 此类运算符专为存储器地址操作数临时指定一个新属性而设。 PTR运算符 格式:类型 PTR 变量名 功能:PTR将其左边的类型指定给右边的地址。因此该地址除原 有类型外,还具有由PTR指定的临时新类型。 THIS运算符 THIS运算符像PTR一样,可以用来建立一个特殊类型的存储器地址操作数,而不实际为它分配新的存储单元。用THIS建立的存储器地址操作数的段和偏移量与目前能分配的下一个存储单元的段和偏移量相同,但类型由THIS指定。,4.1 8086汇编语言源程序的格式,4注释 汇编语言中的每一条语句都可以加上注释部分。 注释是一行中用“;”开头的部分。 一般用注释来说明程序功能和语句的作用。 汇编程序在翻译源程序时,不会处理分号以后的注释部分。,4.2 常用的伪指令,汇编语言程序的语句除了指令语句外还有伪指令语句,分别简称为指令和伪指令。 伪指令属于汇编控制命令,用来告诉汇编程序数据定义的类型、如何分配存储区及指示程序结果等功能,它本身不产生任何目标代码。,4.2 常用的伪指令,4.2.1符号定义伪指令 在编程的过程中,有的表达式或常量可能多次出现,为了方便对源程序的阅读与修改。 可用符号定义伪指令为这个表达式或常量指定一个标识符。此时,该标识符具有与表达式或常量相同的值。 1EQU伪指令 格式:符号名 EQU 表达式 功能:用表达式来定义符号名,使得符号名具有与表达式相同的值。其中表达式可以是常数、可求出具体值的表达式、寄存器名或指令助记符。 例如: NUM EQU 25 ;定义符号常量NUM,其值恒为25 2“=”伪指令 格式:符号名 = 表达式 功能:与EQU伪指令功能基本相同。两者的区别在于只有“=”伪指令可对同一标识符作重新定义。,4.2 常用的伪指令,4.2.2 数据定义及存储器分配伪指令 该类指令用于为数据分配存储单元,并进行初始化,同时还可为指定的存储单元取名,即变量名。 1DB 伪指令 格式:变量名 DB 数据项表 ;注释 功能:告诉汇编程序,分配一块连续的内存单元作为字节数据区,并依次将数据项表中的值存放到内存中,存放时地址对应规则为先出现者对应低地址,后出现者对应高地址。若伪指令DB 左边给出了“变量名”,则此变量名用来标识新定义的内存单元的首地址(偏移地址)。 2DW 伪指令 格式:变量名 DB 数据项表 ;注释 功能:与DB功能相似,但它是用来定义字而不是字节的。其数据项表可以是以下形式。,4.2 常用的伪指令,3DD伪指令 格式:变量名 DB 数据项表 ;注释 功能:与前两条指令相似,它是双字(4个字节)变量的定义伪指令。它的数据项表可以有以下形式。 以双字为单位的常量,不确定常量用“?”表示以及由操 作符DUP给出的重复子句; 若定义的是地址表达式时,它将把偏移地址与段地址分别 存放在存储器的低字与高字中; 单引号引起的14个字符组成的串常量; 以上情况的任意组合。,4.2 常用的伪指令,4.2.3 标号定义伪指令LABEL LABEL伪指令用来给某一变量或标号赋予一个新的类型。 格式:名称 LABEL 类型 其中名称是一个标识符,可以是一个标号或变量名。 通常与指令语句或用DB、DW、DD数据定义伪指令语句连用。这时,名称就为与之连用的标号或变量建立一个新的变量或标识符名,以便补充或设置与之连用的指令或变量的类型属性。 因此,这个伪指令的名称同样有段、偏移量和类型3个属性。当与指令连用,类型属性分为NEAR和FAR;当与变量连用,类型属性就分为BYTE、WORD和DWORD等。它的段偏移量和与之连用的指令或变量相同。,4.2 常用的伪指令,4.2.4 段定义伪指令 8086/8088汇编语言程序是分段编写的。段定义伪指令指示汇编程序如何按段组织程序和使用存储器。 1SEGMENT和ENDS伪指令 格式: 段名 SEGMENT 定位类型组合类型“类别” ;段体 段名 ENDS 其中段名是程序员为该段取的名字,是满足汇编语言命名规则的字符 串。定位类型、组合类型和类别用于说明该段的属性,可以缺省。 功能:伪指令SEGMENT 与ENDS用于把程序分成若干逻辑段。这些逻辑段 根据其用途的不同分为代码段、数据段、堆栈段和附加段。,4.2 常用的伪指令,2ASSUME伪指令 格式:ASSUME 段寄存器:段名 ,段寄存器:段名 功能:该伪指令用于告知汇编程序源程序中定义的各段与段寄存器之间的对应关系,即CS、DS、SS或ES被对应到程序员定义的哪些段,从而在汇编时能知道语句中引用的变量、标号或表达式所应属于哪段。例如例4.1中的语句: ASSUME CS:CSEG,SS:SSEG,DS:DSEG 即是用来声明CSEG为代码段、SSEG为堆栈段、DSEG为数据段。,4.2 常用的伪指令,3.程序计数器$ 字符$在汇编语言里作为程序计数指针,它的值为程序中下一个即将分配的存储单元的偏移地址。例如: DSEG SEGMENT D1 DW 1234H,2345H,3456H;定义3个字 CT EQU $-D1 ;符号CT与表达式$-D1等价 DSEG ENDS 其中表达式$-D1的值为程序下一个所能分配的偏移地址06H减去D1的偏移地址00H,即CT=$-D1=06H-00H=06H,为分配存储单元的个数(以字节为单位)。,4.2 常用的伪指令,4ORG伪指令 格式:ORG 表达式 功能:其后表达式的值将作为下一条变量或指令语句存放的偏移地址。表达式的值应为0-65535(即0000H-FFFFH)。 例如: ORG $+100 ; 表示其后的指令或数据跳过100 个字节存放,4.2 常用的伪指令,4.2.5 过程定义伪指令 在设计程序时,往往把具有某种独立功能的程序段设计成一个模块,即过程。过程定义的格式如下: 过程名 PROC NEAR或FAR ;过程体 过程名 ENDP 其中过程名由程序员指定,且过程名前后必须保持一致。过程体为实现某种功能的指令和伪指令序列。其中NEAR代表远过程,FAR为近过程。参数省略时表示为近过程NEAR。,4.3 汇编语言程序的上机过程,一个汇编语言源程序必须经过编辑、汇编、连接之后才能执行。一个完整的汇编程序从建立到执行,一般可以分为以下几个步骤。 (1) 用编辑程序建立汇编语言源程序,扩展名必须为ASM。编辑程序可以是EDIT; (2) 用汇编程序将源程序汇编成二进制的目标代码,即扩展名为OBJ的文件; (3) 用连接程序将目标文件连接成扩展名为EXE的可执行文件。,4.3 汇编语言程序的上机过程,4.3.1 建立ASM文件 汇编语言的编辑器可以是EDIT或其他文本编辑程序,通过编辑器可以建立源程序并以扩展名ASM保存源程序。 源程序中每条语句占一行,为便于对源程序的修改及查错等,一般语句的标号、助记符、操作数及注释首字符均应对齐。 如例4.1,假设MASM汇编程序及LINK连接程序被安装在C:MASM,具体步骤如下。 (1)从【开始】|【程序】菜单里找到“MS-DOS”并打开; (2)键入命令“CD C:MASM”并回车; (3)键入EDIT并回车即可编辑源文件,编辑完毕后以名4_1.asm保存源程序。,4.3 汇编语言程序的上机过程,4.3.2 生成OBJ文件 常用的汇编程序有 MASM、TASM(TURBO ASSEMBLER) 5.0等。 这两种工具的用法基本相同,我们先以MASM汇编程序为例来讨论根据已建立的ASM文件如何生成对应的OBJ文件。 具体操作步骤如下。 (1) 用鼠标移到C:MASM,即MASM.exe所在文件夹; (2) 双击MASM.exe,启动汇编程序; (3) 汇编时,根据提示输入源程序文件名4_1.asm(扩展名可省略); (4) 根据提示,用户需要回答3个问题,以便生成3个文件,4.3 汇编语言程序的上机过程,汇编过程显示的信息及需输入的信息,图4.5 汇编过程显示的信息及需输入的信息,4.3 汇编语言程序的上机过程,4.3.3 生成EXE文件 生成了4_1.obj文件还不能直接被计算机执行,还需用LINK连接程序将它连接成可执行文件(EXE文件)。 生成EXE文件的步骤如下。 (1)在目录C:MASM下,双击LINK.exe文件启动连接程序; (2)连接时,根据提示输入上步生成的目标程序文件名4_1.obj (.obj可省略); (3)根据提示,用户需回答3个问题,以便生成3个文件。,4.3 汇编语言程序的上机过程,连接需输入及显示的提示信息,图4.6 连接需输入及显示的提示信息,4.3 汇编语言程序的上机过程,4.3.4 快速生成可执行文件的方法 在用户只需生成源文件(ASM)、目标文件(OBJ)和可执行文件(EXE)时,可用下列命令方式来快速生成可执行文件。 (1) 单击【开始】|【运行】。 (2) 在对话框中输入C:MASMMASM 4_1;后单击“确定”按钮, 完成汇编工作。运行过程屏幕显示如图4.7所示。,4.3 汇编语言程序的上机过程,(3) 在对话框中输入C:MASMLINK 4_1.obj;后单击“确定”按钮,完成 连接工作。,图4.8 执行快速连接的方法,4.3 汇编语言程序的上机过程,4.3.5 程序的执行和调试 1程序的执行 由上述方法生成的可执行文件,可以被用户直接执行。方法是在MS-DOS下进入C:MASM目录,直接输入可执行文件名,如4_1即可。 也可以使用类似于快速生成可执行文件的方法,即在“运行”对话框中输入C:MASM 4_1即可。 2程序的调试 在汇编、连接成功后,只能说明程序没有语法错误,程序执行的结果未必正确。这时可用DEBUG对目标程序进行动态调试,在执行过程中观察各寄存器、相关存储单元及标志寄存器的值,跟踪执行情况,判断结果是否正确。,4.3 汇编语言程序的上机过程,图4.9 debug调入程序的过程,文件调入后,可看到DEBUG命令的状态提示符“”,此时用U命令对调入程序的机器代码进行反汇编,看程序是否被正确装载;用R命令查看或修改寄存器的值;用D命令查看内存单元的值;用G命令执行程序,以及用T或者P命令单步逐条执行程序。,4.3 汇编语言程序的上机过程,U( Unassemble ) 反汇编命令。 格式:- u 地址范围或地址,功能:对指定地址范围或地址的目标代码进行反汇编,若不给出地址,则从当前CS:IP位置开始显示其后32个字节的目标代码。例如用上述方法对4_1.exe装入后,用U命令显示结果,如图4.10所示。,4.3 汇编语言程序的上机过程,R(Register) 查看和修改寄存器内容及状态标志值命令 格式:- R寄存器 功能:显示和修改指定寄存器的值,若不指定寄存器,则显示所有寄存器的内容。,图4.10 U命令执行显示信息,4.3 汇编语言程序的上机过程,表4-3 在DEBUG中的状态标志位的状态表示符,4.3 汇编语言程序的上机过程,D (Dump) 显示存储单元命令 格式: -d地址 -d地址范围 功能:将指定地址或地址范围内的存储单元的内容显示出来。,例如: 当显示指定地址内存单元的内容时,执行命令: -d ds:0000 当显示指定地址范围的内存单元内容时,执行命令: -d 0000 0020 执行该命令的结果如图4.12所示。,4.3 汇编语言程序的上机过程,G (Go) 执行命令 格式:-g =起始地址结束地址 功能:执行指定地址段内的程序,这条命令往往与U命令配合着用,比如前面用U命令观察到程序4_1.exe调入内存后是偏移地址从0000H开始,001E(与INT 21对应)结束,所以可用下列命令来执行程序: -go 0000 001E 执行该命令的情况如图4.13所示。,4.3 汇编语言程序的上机过程,T (Trace) 单步执行命令 格式:-T起始地址指令条数 功能:执行一条或多条指令,当执行多条指令时需在指令条数处指出。每执行一条指令均会将各寄存器及状态标志位的值显示出来,这样就可以观察一步一步执行指令后各寄存器的值是否正确,以达到调试的目的。执行情况如图4.14所示。,4.3 汇编语言程序的上机过程,P单步执行命令 格式:P起始地址指令条数 功能:与“T”命令相似,差别在于对于P命令将CALL、INT、LOOP等指令当成一条指令来执行,T命令将转入到这些指令所代表的服务子程序的内部。所以在遇到INT或者是LOOP等指令的时候往往用P命令而不用T命令。,4.3 汇编语言程序的上机过程,4.3.6 TASM、TLINK及Turbo Debug的使用 1. TASM的使用 TASM的作用与MASM相似,均可对汇编源程序进行汇编(编译)。命令格式为: TASM源文件名 目标文件名列表文件名交叉参考文件名 若用鼠标直接双击TASM.EXE,只会看到其帮助信息。所以需要在DOS提示符下输入,在DOS提示符下用命令CDC:TASMBIN进入该目录,然后在提示符下输入TASM 4_1即可对源程序汇编,过程如图4.16所示。,4.3 汇编语言程序的上机过程,图4.16 TASM汇编源程序过程,4.3 汇编语言程序的上机过程,2. TLINK的使用 该命令的功能与使用方法与LINK类似,但功能要比LINK强得多,而且它还支持386以上的指令,这是LINK不具有的功能。格式为: TLINK 目标文件名 可执行文件名 定位图文件名 库文件名 其使用方法与TASM相似,即在汇编成功生成目标文件后即可在DOS提示符下输入TLINK 4_1.obj即可连接生成可执行文件。其中的扩展名及选项(可执行文件名 定位图文件名 库文件名)可以省略,这时连接会自动生成4_1.exe,其过程如图4.17所示。,4.3 汇编语言程序的上机过程,3.Turbo Debug 的使用 Turbo Debug是一个功能强大的源代码级调试器,它可对多种语言编写成的程序进行调试,并且支持32位的源代码。在安装目录下运行: TD 可执行文件名 即可打开Turbo Debug,4.4 基本编程方法,程序的基本结构形式有3种:顺序程序、分支程序和循环程序。 4.1.1 顺序程序设计 1问题分析 2确定算法并编制程序流图 3编码与调试,4.4 基本编程方法,4.4.2 分支程序设计 1单边选择程序设计 单边选择程序具体为二分支结构,相当于高级语言中的IF-THEN-ELSE或者IF-THEN结构。通常根据某一条件成立与否而转向不同的分支。,图4.20 单边选择程序两种基本结构,4.4 基本编程方法,2多边选择程序设计 多边选择程序也叫多分支程序,用来判定条件有多个取值,根据条件取值不同而分别转向不同的程序分支,如图4.22所示。,图4.22 多条件取值分支结构,4.4 基本编程方法,多分支程序结构也可以由多个二分支结构构成,两种结构组合可以构成更为复杂的多分支结构,如图4.23所示。,图4.23 多分支结构,4.4 基本编程方法,3用比较转移指令实现分支 这种分支程序一般是实现两个数的比较,使用CMP指令或者CMPS(串比较)及SCAS(串搜索)指令,然后根据条件实现转移。,4.4.3 循环程序设计 循环程序的基本结构形式可以分为两种:一种是“先判断后执行”的“当型”循环,另一种是“先执行后判断”的“直到型”循环。,4.4 基本编程方法,在“当型”循环中,程序先判断循环的初始条件,如果循环初始条件满足循环要求的话,则执行“循环体”,否则退出循环的执行。在“直到型”循环中,程序先执行“循环体”,然后再判断循环的条件,如果条件满足循环要求的话,则继续执行“循环体”,否则退出循环的执行。它们的执行流程图如图4.26所示。,4.5 子程序的编程方法,在编制程序时,经常会遇到某一程序段在程序的若干不同地方多次用到,或被不同的程序用到,这些程序段少则几条,多则几十条、几百条。如果在每处都用到的地方都重复地写一遍,这样既浪费编程时间,也浪费存储空间。因此可将这段程序抽取出来编成一个独立的程序,当需要执行这段程序时,就去调用它。人们称调用它的那个程序为主程序或调用程序,称被调用的程序为子程序或过程。 在设计一个比较复杂的程序时,为使程序清晰、易维护,可以根据程序完成的主要功能,将程序划分成几个可独立汇编的程序单元,我们把这些程序单元称为模块。子程序或过程是模块化程序设计的主要手段,4.5 子程序的编程方法,4.5.1 子程序设计 过程定义伪操作用在过程的前后,使整个过程形成清晰的、具有特定功能的代码块。其格式为: 过程名称 PROC 属性 过程体内语句 过程名称 ENDP,过程的正确执行是由过程的正确调用和正确返回保证的。 (1) 过程的调用语句 格式:CALL 属性 被调过程名 (2) 过程的返回语句 格式:RET ,4.5 子程序的编程方法,4.5.2 过程的参数传递 程序在调用子程序时经常需要传送一些参数给子程序,子程序运行完后也经常要回送一些信息给调用程序。这种调用程序和子程序之间的信息传送称为参数传送。 如果过程的调用语句与过程处于同一模块中,包括它们处于同一代码段、不同代码段,两种情况均可以共用主程序的数据段中所说明的变量,此时主程序中定义的变量名虽然是局部变量,但可在整个程序模块中起作用。 如果过程的调用语句与过程在不同的程序模块中。 常用的参数传递方法有: 约定寄存器法 约定存储单元法及 堆栈法,4.5 子程序的编程方法,1约定寄存器法 通过寄存器进行参数传递又称为约定寄存器法。这对于参数个数不多的情况下,只需在调用过程前将过程所需要的有关参数传送给某几个通用寄存器,然后调用过程。 2约定存储单元法 约定存储单元法是事先约定某些存储单元进行参数传递。其优点是每个子程序要处理的数据或送出的处理结果都有独立的存储单元,参数传递个数不受限制。但要占用一定数量的存储单元。该法适用于参数传递较多的情况。 3伪指令EXTRN、PUBLIC的使用 在主程序和过程所在的程序模块分别设置一个具有相同存储区分配的公用数据段进行参数传递。,4.5 子程序的编程方法,4用寄存器传送参数地址表的地址 这个方法实质是约定寄存器法的一种改进。在约定寄存器法中,由于寄存器数量的限制,当参数的个数较多时,尤其是数组类型的参数,没有足够的寄存器使用,这时,可以先将参数的地址组成一个数组,形成参数地址表,然后只需将此表的地址偏移量传送给一个寄存器,通过寄存器把地址传送给过程。 5用堆栈传送参数 子程序(过程)中所要处理的数据可以由寄存器或存储单元来传递。但是用寄存器传递,经常需要保护主程序中寄存器的内容返回时再恢复,对系统数据流的控制是不方便的,时间也不经济。将数据放在存储区中也影响了存储空间的利用率,因为有的只需暂时保留,而采用堆栈可以随时存放和删除一些临时性的数据。用堆栈传递参数特别适用于参数较多、子程序有嵌套和递归调用的情况。,4.6 其他类程序,【例4.16】 从键盘输入一字符串存放在以BUF+2开始的存储单元中,现要求将字符串传送到以BUF+10开始的存储单元,存储区有重叠,试编此程序。 程序如下: DATA SEGMENT BUF DB 50 ;计划输入的最大字符数 DB ? ;实际输入的字符数 DB 50 DUP(?) DATA ENDS STAC SEGMENT PARA STACK STACK DB 100 DUP(0) STAC ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STAC,4.6 其他类程序,START PROC FAR PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET BUF ;利用DOS 10号功能调用键入字符串 MOV AH,10 INT 21H LEA SI,BUF+2 ;取键盘输入的第一个字符 LEA DI,BUF+10 MOV CL,BUF+1 ;要取的字符数 MOV CH,0 CLD PUSH SI,4.6 其他类程序,ADD SI,CX DEC SI CMP SI,DI ;源串的末地址与目的串首址比较 POP SI JL INM ;小于无重叠,否则有重叠,要从末地址开始传送 STD ADD SI,CX DEC SI ADD DI,CX DEC DI INM: REP MOVSB RET START ENDP CODE ENDS END START,4.6 其他类程序,【例4.17】 以BUF开始的存储单元内存放有10个十六进制数的ASCII编码,请将它们转换成相应的十六进制数并存放在以BUF1开始的5个字节单元中。 程序如下: DATA SEGMENT BUF DB 30H,3FH,41H,45H,5AH DB 50H,47H,39H,34H,53H BUF1 DB 5 DUP(?) DATA ENDS SSEG SEGMENT PARA STACK STACK DB 100H DUP(0) SSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEG MAIN PROC FAR PUSH DS MOV AX,0,4.6 其他类程序,PUSH AX MOV AX,DATA MOV DS,AX MOV DI,OFFSET BUF1 MOV BX,OFFSET BUF MOV CH,5 AGAIN: MOV AL,BX ;取第一个数 CALL CONVE MOV DL,AL INC BX MOV AL,BX ;取第二个数 CALL CONVE MOV CL,4 SHL AL,CL OR AL,DL,4.6 其他类程序,MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会议承办服务协议书8篇
- 国家事业单位招聘2025中国国土勘测规划院招聘应届毕业生拟聘人员笔试历年参考题库附带答案详解
- 奔驰车辆无偿赠与协议9篇
- 南京市2025江苏城乡建设职业学院招聘工作人员26人(第一批)笔试历年参考题库附带答案详解
- 临夏回族自治州2025年甘肃临夏某部招聘民兵教练员笔试历年参考题库附带答案详解
- 2025陕西陕建瑞高科技园有限公司招聘(25人)笔试参考题库附带答案详解
- 2025广东湛江经济技术开发区建设投资发展集团有限公司招聘1人笔试参考题库附带答案详解
- 2025年萍乡市工程咨询管理顾问有限责任公司招聘第一批外聘人员23人笔试参考题库附带答案详解
- 2025年烟台莱州市财金投资有限公司招聘(10人)笔试参考题库附带答案详解
- 2025年江苏昆山创业控股集团有限公司第一批人才招聘15人笔试参考题库附带答案详解
- 全案托管设计合同范例
- 庆祝国庆节爱国班会内容完整课件
- 中医拔罐技术试题及答案
- 浙江水利专业高级工程师任职资格考试题及答案
- DB65-T 4783-2024 冰川资源遥感调查技术规范
- 《尊重他人和谐相处》主题班会
- 公司6s管理划线标准图片
- 医学伦理与职业道德培训
- JJF(通信) 068-2023 雷达回波模拟器校准规范(报批稿)
- 中国痔病诊疗指南(2020版)
- 甘油三脂在药物递送系统中的作用
评论
0/150
提交评论