




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 汇编语言程序设计 南京工业大学2017春任课教师 管昕洁 2 第四章汇编语言程序结构 汇编语言程序的基本结构汇编语言的数据运算符与表达式伪指令 3 汇编语言程序的基本结构 汇编程序的基本框架汇编语言的指令格式 4 汇编程序的基本框架 完整段定义框架简化段定义框架 5 完整段定义框架 STACKSEGMENT 定义堆栈段 STACKENDSDATASEGMENT 定义数据段 DATAENDSCODESEGMENT 定义代码段ASSUMECS CODE DS DATA SS STACK 说明代码段的段地址放在CS中 数据段的段地址放在DS中 堆栈段的段地址放在SS中START MOVAX DATAMOVDS AX 数据段段地址送DS中 程序MOVAX 4C00H 程序结束返回DOSINT21HCODEENDS 代码段结束ENDSTART 6 简化段定义框架 MODELSMALL 386 STACK 堆栈段 DATA 数据段 CODE 代码段 STARTUP 程序 EXIT 返回DOSEND 7 例4 1 设X Y Z为16位带符号的字变量 计算 X 125 X Y Z后将商存入X 余数存入Y中 STACKSEGMENT 定义堆栈段DW100HDUP STACKENDSDATASEGMENT 定义数据段XDW3YDW4ZDW10DATAENDSCODESEGMENT 定义代码段ASSUMECS CODE DS DATA SS STACK START MOVAX DATAMOVDS AX 数据段段地址送DS中MOVAX X 乘数X AXIMULY X Y DX AXMOVCX AXMOVBX DX 结果再存放到BX CX中暂存MOVAX X X AXADDAX 125 X 125 AXCWD 将AX转换成双字 DX AXSUBAX CX 低16位减法SBBDX BX 高16位减法 X 125 X Y DX AXIDIVZ X 125 X Y Z 商 AX 余数 DXMOVX AX 商 XMOVY DX 余数 YMOVAX 4C00H 程序结束返回DOSINT21HCODEENDS 代码段结束ENDSTART 8 MODELSMALL 选择编程模式为小模式 386 选择80386指令系统 STACK 堆栈段DW100HDUP DATA 数据段XDW3YDW4ZDW10 CODE 代码段 STARTUPMOVAX X 乘数X AXIMULY X Y DX AXMOVCX AX MOVBX DX 结果再存放到BX CX中暂存MOVAX X X AXADDAX 125 X 125 AXCWD 将AX转换成双字 DX AXSUBAX CX 低16位减法SBBDX BX 高16位减法 X 125 X Y DX AXIDIVZ X 125 X Y Z 商 AX 余数 DXMOVX AX 商 XMOVY DX 余数 Y EXIT 返回DOSEND 9 汇编语言的指令格式 汇编语言程序中的指令可以分为指令 伪指令两种 指令的格式 标号 操作码 操作数 注释 方括号中的内容根据程序或指令的要求可有可无 标号 由26个大小写英文字母 0 9数字 下划线 等字符组成 数字不能出现在标号的第一个字符位置 后跟 操作码 汇编指令的助记符 关键字 一条汇编指令必须有唯一的操作码 指出该指令的操作内容 操作数 为操作提供必要的数据信息 注释 表示对该条指令的说明 可写可不写 如果有注释则必须在注释前加分号 10 汇编语言的指令格式 伪指令格式 名字 伪指令助记符 操作数 注释 方括号中的内容根据程序或指令的要求可有可无名字 是该语句的符号地址 后不跟 伪指令助记符 伪操作符 给出该伪指令的操作内容操作数 为操作提供必要的信息名字 变量名 过程名 段名 常量名等名字和标号都具有三个属性 段基址 偏移量和类型标号的类型 NEAR型和FAR型变量的类型 字节 字 双字 四字等 11 汇编语言的数据 常量变量标号变量定义时用到的操作符和表达式 12 常量 汇编语言的常数主要包括整数 字符 字符串 符号常量与数值表达式等整数整数包括 二进制 八进制 十六进制 十进制表示的整数 如 011000101B 7654Q 0ABCDH 32768D 或32768 在指令中把二进制 八进制 十六进制 十进制表示的整数叫做立即数字符与字符串字符与字符串必须用单引号或双引号括起来 例如 A 为字符常量 AAA 为字符串常量 13 常量 符号常量符号常量是用赋值伪指令EQU定义的符号名赋值伪指令的格式 常量名EQU表达式例如 XEQU100 X为符号常量 在程序中X为100 X是一个常量 数值表达式以常数 立即数 或符号地址 变量 标号等 作为操作数的地方 均可使用数值表达式 14 变量 变量的一般格式 变量名 助记符 操作数 注释 其中 变量名 是一个非保留字的标识符 可有可无助记符 指定变量的长度 如P99表4 1所示操作数可以是数字常量 字符常量 字符串常量 符号常量 数值表达式 地址表达式 n DUP 操作数 等可以包含0个 一个或多个操作数 多个操作数之间以逗号 分隔 15 变量 标识符标识符包括 标号 变量名 子程序名和宏名等标识符的使用原则 由31个字母 数字及规定的特殊字符 等组成不区分标识符中字母的大小写不能以数字开头不能单独使用 或 不能是系统的保留字 如指令名 寄存器名和伪指令名等例如 DATA1 LOP STAR count是合法的标识符ADD EAX MOV 6X是不合法的又如 FFFFH是标识符 0FFFFH是十六进制数值 16 变量 例4 2 操作数可以是数字常量或是数值表达式 X1DB10 0 10HX2DW 100 5X3DD5 20 5 0ABCDEF68H 17 变量 例4 3 操作数可以是字符常量或字符串常量 C1DB HELLO C2DB A C3DB AB C4DW AB 注意C3和C4的区别下图列出了本例在内存中的存储分配结构 P101图4 3 图4 4 18 变量的属性 变量具有三个属性 段属性变量的段属性是指变量所在段的段地址 偏移属性变量的偏移属性是指变量所在段的首地址到该变量的偏移量 例P100图4 2 X1和X2的偏移地址分别为0000H和0003H 类型属性变量的类型属性是指存取该变量中的数据所对应的字节数有字节 BYTE 字 WORD 双字 DWORD 等 19 变量定义时用到的操作符和表达式 当前位置计数器 当前位置计数器 表示当前的偏移值 例4 4 下列指令是在数据段中定义的 画出其内存中的存储结构 并计算出符号常量LEN1和LEN2的值 X1DB1 2 3 5LEN1EQU X1X2DW1234HLEN2EQU X2假设X1地址为2000H LEN为符号常量 不占存储空间 X2为字变量 则X2的地址为2004H LEN1的值是 X1 2004H 2000H 0004H 数组X1的长度为4字节 LEN2的值是 X2 2006H 2004H 0002H 变量X2的长度为2字节 20 设置内存空间表达式 表示没有为该存储空间赋初值 汇编后该存储空间清零 例如 X3DB1 2X4DW 1234H 例4 5 用一个完整的程序完成上述定义 MODELSMALL 386 STACK DATA 数据段X1DB1 2 3 5LEN1EQU X1X2DW1234HLEN2EQU X2X3DB1 2LEN3EQU X3X4DW 1234H LEN4EQU X4 CODE 代码段 STARTUPMOVAX LEN1MOVBX LEN2MOVCX LEN3MOVDX LEN4 EXITEND 21 重复定义操作符 DUP 用于定义重复的元素 例4 7 ARRAY1DB2DUP 1 2 2 ARRAY2DB50DUP 如图4 8 例4 8 DUP可以嵌套ARRAY3DB2DUP 0 2DUP 1 2 3 ARRAY3的长度为12个字节 该伪指令的存储结构如图4 9所示 图4 9 图4 8 22 使用地址表达式作为DW或DD的操作数 地址包括 数据段中定义的变量名或数组名 代码段中的标号或子程序名 例4 9 设LOP为代码段的一个标号 MAX为代码段中的某一子程序名 则在数据段中有如下定义 X1DW1234H 定义字变量X1 并赋初值1234HX2DWX1 定义字变量X2 所赋初值是变量X1的偏移地址X3DDX1 定义双字变量X3 所赋初值是变量X1的逻辑地址X4DWLOP LOP偏移地址X5DDLOP LOP逻辑地址X6DWMAX MAX偏移地址X7DDMAX MAX逻辑地址X8DW 定义字变量X8 所赋初值是X8的偏移地址 当前地址 23 练习 给出如下程序中的数据定义 问PLENTH的值为多少 它表示什么意义 PARTNODW PNAMEDB16DUP COUNTDD PLENTHEQU PARTNO答 PLENTH 22 16H 它表示变量PARTNO PNAME COUNT总共占用的存储单元数 字节数 24 标号 标号是用来说明可执行指令在汇编语言程序中的位置例如 LP1 MOVAX X LOOPLP1 转移到标号LP1处的指令 25 标号 标号三个属性 标号的段属性标号的段属性是指标号定义所在段的段地址 标号的偏移属性标号的偏移属性是指标号所在段的首地址到该标号的定义语句的偏移量 标号的类型属性标号的类型属性是指标号距转移指令的距离 是转移到本段内的标号 还是转移到其它段的标号 即是NEAR还是FAR 26 运算符与表达式 算术运算符逻辑运算符关系运算符数值回送操作符属性操作符 PTR THIS SHORT HIGH LOW 移位运算符运算符的优先级 27 算术运算符 算术运算符包括 MOD 取余 运算符MOD是作除法操作 取余数 如 10MOD3 1 需要注意的问题 算术运算符可以用于数值表达式或地址表达式中 参加运算的数和结果必须是整数 除法运算结果只有商无余数当算术运算符用于地址表达式时 常用方法是 地址 常量 来描述指针的移动 28 例4 10 把首地址为BLOCK的字数组的第5个字送到AX中 MOVAX BLOCK 5 1 2 例4 11 将数组长度 双字数 存到CX中 ARRAYDD1 2 3 4 5 6 7COUNTDD MOVCX COUNT ARRAY 4 假设数组ARRAY的地址是2000H 则COUNT 201CH COUNT ARRAY 4 201CH 2000H 4 0007H 29 逻辑运算符 包括 AND 逻辑与 OR 逻辑或 XOR 逻辑异或 NOT 逻辑非 例4 12 执行下列指令 计算其逻辑运算的值 MOVAL 88HAND0FH AL 08HMOVBL 88HOR0FH BL 8FHMOVCL 88HXOR0FH CL 87HMOVDL NOT88H DL 77HANDAL 88HAND0FH 两个AND是有区别的 注意 逻辑运算符与逻辑指令的区别 逻辑运算符在汇编程序汇编时计算 而逻辑指令在程序运行时执行 30 关系运算符 包括 EQ 等于 NE 不等于 LT 小于 LE 小于等于 GT 大于 GE 大于等于 关系运算符的使用格式 表达式1关系运算符表达式2计算结果 真为全1 假为全0 31 关系运算符 例4 13 MOVAX XLT10 AND0F0FH OR XGE10 AND0505H 该指令说明 当X 10做MOVAX 0505H 32 数值回送操作符 包括 SEG OFFSET TYPE LENGTH SIZESEG 取段地址 操作符格式 SEG变量名 标号操作符功能 取变量或标号的段基值 段地址 OFFSET 取偏移地址 操作符格式 OFFSET变量名 标号功能 取变量或标号的偏移值 偏移地址 TYPE 取类型值 操作符格式 TYPE变量名 标号功能 取变量或标号的类型值 字节 1 字 2 双字 4等 NEAR 1 FAR 2 33 数值回送操作符 LENGTH 取长度 操作符格式 LENGTH变量名功能 取分配给变量的字节 字 双字等的个数 说明 只有用DUP重复定义的变量才有意义 否则 1 SIZE 取总字节数 操作符格式 SIZE变量名操作符功能 SIZE给出一个变量的总字节数 也就是LENGTH和TYPE的乘积 即 SIZE LENGTH TYPE 34 例4 17 用一个完整的程序完成TYPE LENGTH SIZE的应用 MODELSMALL 386 STACK DATA 数据段X1DW100DUP 2 共定义200个字节X2DD2DUP 8 3DUP 0 共定义32个字节X4DW4 5 6DUP A 共定义16个字节 CODE 代码段 STARTUPMOVAX TYPEX1 AX 2MOVAX TYPEX2 AX 4MOVAX TYPEX4 AX 2MOVAX LENGTHX1 AX 100 64HMOVAX LENGTHX2 AX 2MOVAX LENGTHX4 AX 1MOVAX SIZEX1 AX 2 100 200 0C8HMOVAX SIZEX2 AX 4 2 8MOVAX SIZEX4 AX 2 1 2 EXITEND 35 属性操作符 包括 PTR THIS SHORT HIGH LOWPTR 改变变量或标号类型操作符 操作符格式 类型PTR地址表达式其中类型 BYTE WORD DWORD FAR NEAR 地址表达式 表示 变量或标号 地址的数值 变量 用变量名给出的有效地址 标号 指令的有效地址 操作符功能 临时指定变量或标号的操作类型 36 例4 18 PTR操作符的应用 在数据段定义 XDB A YDW1234HZDD12345678H 在代码段中 MOVAX Y 类型匹配 正确此时AX 1234HMOVBL BYTEPTRY 用PTR取出Y变量中的一个字节 BL 34HM0VCL BYTEPTRY 1 用PTR取出Y变量中的一个字节 CL 12HMOVDL BYTEPTRZ 3 将Z 3所指的字节内容送DL中 DL 12H 37 例4 19 PTR操作符的应用 在数据段定义 X2DW X2为字变量X1EQUBYTEPTRX2 将X2的地址赋给X1 X1为字节变量X3EQUBYTEPTR X2 1 将X2 1的地址赋X3 X3为字节变量X3EQUX1 1 将X1 1的地址赋给X3 X3仍为字节变量内存中安排见P109图4 10 说明 同一个单元可有两个变量名 一个是字的属性 如X2 另一个是字节的属性 如X1 可根据需要选用不同的变量 38 修改段操作符 操作符格式 段寄存器 变量 标号 地址表达式其中段寄存器 CS DS ES SS 操作符功能 用段修改操作符来修改一个变量 标号或地址表达式的段属性 段超越 39 例4 20 操作符的应用 MOVAX ES BX SI 基址加变址寻址 隐含的段寄存器是DSMOVEAX GS DWORDPTR BX 寄存器间接寻址 隐含段寄存器是DS改为GS 例4 21 操作符的应用 DATAXDW CODE MOVAX CS X 40 THIS 指定类型操作符 操作符格式 变量名 标号 过程名THIS类型操作符功能 为某一个变量名指定一个类型 BYTE WORD DWORD QWORD FWORD TWORD 或为某一个标号或过程指定一种转移距离 NEAR FAR 同时指定该操作数地址与下一个存储单元地址相同 41 例4 22 THIS操作符的应用 VAR1EQUTHISBYTE 指定VAR1为字节常量VAR2DW VAR1为字节 BYTE 常量 VAR2为字 WORD 变量 经过上述定义后 MOVAL VAR1MOVAX VAR2 例4 23 THIS操作符的应用 CODE LOP1EQUTHISFAR LOP1 DECCX 42 SHORT 短转移操作符 操作符格式 SHORT标号操作符功能 短转移操作符是用来指定JMP指令中转向地址为8位位移量 而不是在缺省时的16位位移量 标号为转移偏移值 该偏移值为 128 127字节 则JMP转移范围为IP 128 127 43 HIGH 取高位字节 和LOW 取低位字节 操作符 操作符格式 HIGH LOW数值表达式 符号常量操作符功能 取数值表达式或符号常量的高位字节或低位字节 不能作用于内存操作数 例4 24 字节分离操作符的应用 CONSTEQU0ABCDH MOVAH HIGHCONST AH ABHMOVAL LOWCONST AL CDH 44 移位运算符 移位运算符SHL和SHR 是按位运算的 只用于数值表达式中 运算符格式 常量SHL SHR位数运算符功能 将运算符左边的二进制数左移或右移运算符右边的所指定的移位位数 空出的位补0 当移位位数大于15 则结果为0 如 MOVAX 41HSHL2 将41H左移2位 结果送AX寄存器中 AX 104H 45 运算符的优先级 运算规则仍为先计算优先级高的运算符同级运算符自左向右进行计算 46 伪指令 完整段定义伪指令 SEGMENT ENDS ASSUME 处理器选择伪指令简化段定义伪指令定位伪指令ORG赋值伪指令 EQU LABEL伪指令对准伪指令 EVEN 标题伪指令 47 完整段定义伪指令 SEGMENT ENDS ASSUME 段定义伪指令 SEGMENT ENDS 格式 段名SEGMENT 对齐类型 组合类型 使用类型 类别名 段名ENDS功能 定义逻辑段 SEGMENT表示某个逻辑段开始 ENDS表示该逻辑段结束 其中 段名自定义 4个选项可选可不选 有可选项时各项顺序不能错 可选项之间用空格隔开 48 对齐类型 表示当前段的起始边界要求 即定义了当前段在内存中起始边界的设定 说明了段与段之间的空隙 对齐类型可以是 PAGE 页 PARA 节 WORD 字 BYTE 字节 DWORD 双字 PAGE 页 设该段的起始地址的低8位为 0 该地址是可以被256整除的地址 1页为256字节 当对齐类型为PAGE时 说明该段从页的边界开始 该段与下一段的最大存储空间为256字节 假如在该段中只放一个字节的数据 则该段距下一个段的空隙为255个字节 PARA 节 设段的起始地址的低4位为 0 该地址是可以被16整除的地址 1节为16字节 当对齐类型为PARA时 说明该段从节的边界开始 该段与下一段的最大存储空间为16字节 假如在该段中只放一个字节的数据 则该段距下一个段的空隙为15个字节 对齐类型缺省时 隐含PARA 节的边界 49 对齐类型 WORD 字 表示本段的起始地址 段基地址 以偶地址开始 段与段之间最大空间为1个字 最大空隙为1字节 BYTE 字节 表示本段的起始地址可以从字节地址开始 任意地址 段与段之间最大空间为1字节 段与段之间无任何空隙 DWORD 双字 表示本段的起始地址是可以被4整除的地址 段与段之间最大空间为4个字 最大空隙为3字节 50 组合类型 当程序有多个段时 用来说明段与段之间是怎样连接和定位的 共有六种组合类型 缺省PRIVATE 没有说明 汇编程序就认为本段不和别的段连接 PUBLIC 本段与同名段顺序连接 组成一个大的逻辑段 它们共用同一个段起始地址 COMMON 本段与同名段从同一地址开始重叠连接 段长是同名段中最长的段的长度 重叠部分的内容取决于排列在最后一段的内容 51 组合类型 STACK 表示该段是堆栈段的一部分 把所有相同 类别名 的具有STACK组合类型的段连接成一个连续段 将连续段首地址送SS 段内最大偏移地址送SP 当定义了STACK属性后 在主程序中可省略对SS和SP的初始化 MEMORY 表示在N个互相连接的段中 本段的定位地址为最高地址 如果有多个MEMORY的段 则把第一个遇到的段当作MEMORY处理 其他均当作COMMON 重叠 处理 AT表达式 本段定位在表达式所表示的位置并且节对齐 如 S1SEGMENTPARAAT0A800H 表示本段段地址为0A800H并且节对齐 52 使用类型 包括 USE16或USE32 用来说明使用16位寻址方式还是32位寻址方式 该使用类型用于386以上机型 缺省时隐含USE16在实模式下使用USE16 为16位寻址方式 则段长不超过64KB 其地址是由16位段地址和16位偏移地址组成 53 类别名 在引号中给出相连接的段名 完成把具有相同类名的段连接在一起 如 CODE1SEGMENTPARAPUBLIC CODE 表示把所有的有 CODE 类别的段连接在一起 54 指定段寄存器伪指令 ASSUME 格式 ASSUME段寄存器名 段名 段寄存器名 段名 功能 告诉汇编程序 在运行期间通过哪个段寄存器才能找到所要的指令和数据 该指令放在程序的代码段中 如 ASSUMECS CODE ES ESTRA DS DATA SS STACK说明 ASSUME仅明确段名与段寄存器的关系 但段寄存器中还没有段地址的数值 因此还必须用传送指令将段地址装入相应的段寄存器中 55 完整段定义源程序书写形式 数据段名SEGMENT 数据段可有可无 也可多个用伪指令定义的数据空间 数据段名ENDS堆栈段名SEGMENT 堆栈段可有可无 也可多个用伪指令定义的数据空间 堆栈段名ENDS代码段名SEGMENT 代码段最少有一个 ASSUME 定义寻址关系 起始标号 56 完整段定义源程序书写形式 MOVAX 数据段名MOVDS AX 初始化DSMOVAX 堆栈段名MOVSS AX 初始化SS 过程名PROC 过程名ENDP代码段名ENDSENDSTART 给出程序的起始地址说明 ASSUME仅明确段名与段寄存器的关系 但段寄存器中还没有段地址的数值 因此还必须用传送指令将段地址装入相应的段寄存器中 57 段寄存器的装入 DS ES装入 58 例4 25 设X为字节变量 是在数据段DATA1中定义的 Y是在另外一个数据段中定义的具有字节属性的符号地址 请将X变量的内容送Y数组的第6个元素中 DATA1SEGMENTXDB18HDATA1ENDSDATA2SEGMENTYDB10HDUP DATA2ENDSCODESEGMENTASSUMECS CODE DS DATA1 ES DATA2START MOVAX DATA1MOVDS AX 将DATA1段地址送DSMOVAX DATA2MOVES AX 将DATA2段地址送ESMOVAL X AL 12HMOVES Y 5 AL 12H Y 5单元中MOVAX 4C00H 返回DOS状态INT21HCODEENDSENDSTART 59 SS的装入 可省略 系统会自动分配一定的堆栈空间 方法1 STACK1SEGMENTPARASTACKDB50HDUP STACK1ENDSCODESEGMENTASSUMECS CODE SS STACK1 当目标代码装入存储器后 SS中已自动装入STACK段的段基值 堆栈指针SP指向堆栈的底部 1的存储单元 则 SP 4FH 1 50H 60 SS的装入 方法2 STACK1SEGMENTPARADW50HDUP TOPLABELWORD TOP属性为WORDSTACK1ENDS CODESEGMENTASSUMECS CODE SS STACK1START MOVAX STACK1MOVSS AX 堆栈段的段地址送SSMOVSP OFFSETTOP 堆栈段的栈顶地址送SP TOP是该堆栈的初始栈顶部地址 61 CS的装入 对CS和IP的装入方法是利用END后的标号来完成的 因为该标号是可执行程序的起始地址 如 START ENDSTART系统会自动将START所在段的段地址送CS寄存器 将START所在段内的偏移地址送IP寄存器 62 操作系统下汇编程序的正常结束 对于可执行文件 EXE 在DOS提示符下正常结束可以用两种方法 方法1 此方法较常用 称DOS功能调用 MOVAX 4C00H 或MOVAH 4CHINT21H方法2 MAINPROCFARPUSHDS 保存原来的数据段段地址MOVAX 0H 0送AXPUSHAX 0压栈 RET 返回DOSMAINENDP 63 结束伪指令 END 在完整段定义源程序的最后一条指令为结束伪指令END 后面的起始标号是告诉汇编器该程序的起始点为起始标号处 指令格式 END 标号 其中 标号可以是过程名或带 的标号 当标号缺省时表示该模块不是主程序模块 指令功能 表示整个程序的结束 并指明该过程或程序的起始地址 64 处理器选择伪指令 需要注意的问题 处理器选择伪指令在2种程序框架中均可使用缺省时为选择8088 8086微处理器指令系统 65 简化段定义伪指令 常用的简化段定义伪指令 66 简化段定义的存储模型 MODEL 指令格式 MODEL模型指令功能 定义存储器模型 67 程序开始与结束伪指令 STARTUP EXIT STARTUP伪指令指令格式 STARTUP指令功能 用来设置程序的入口地址 并对DS SS SP初始化 当用 STARTUP来设置程序的入口地址时 程序的最后一条指令END后就不用加起始标号 68 程序开始与结束伪指令 STARTUP EXIT EXIT伪指令指令格式 EXIT 返回值 指令功能 退出程序 返回到操作系统状态 返回值一般用0 该条指令可以代替 MOVAX 4C00HINT21H 69 简化段定义框架来描述一般用下面的两种方法 方法1 MASM5 0以上 MODELSMALL 386 STACK64H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 不锈钢容器检测报告标准模板
- 教师培训学习心得体会汇编
- 2025-2030儿童语言发育迟缓康复治疗的新进展与商业机会研判
- 2025-2030儿童睡眠障碍对大脑前额叶发育影响的神经机制研究
- 2025-2030儿童抗氧化营养干预与脑细胞保护的医学作用机制分析
- 2025-2030儿童情绪调节能力发展的脑网络重组规律研究
- 2025-2030儿童实木家具安全认证体系与消费者信任度调查报告
- 2025-2030儿童双语言习得对大脑灰质密度影响的影像学研究与教育应用展望
- 2025-2030儿童体适能训练对大脑执行功能提升效果实证分析
- 2025-2030健身俱乐部设备采购趋势及供应商竞争力评估报告
- DL-T5745-2021电力建设工程工程量清单计价规范
- MOOC 英文学术写作实战-北京大学 中国大学慕课答案
- 电气系统故障诊断
- 《呼吸与健康生活》作业课件
- 外资机构持股能提升股票定价效率吗?-来自A股纳入明晟新兴市场指数的经验证据
- 悬挑工字钢验收表
- 宝马5系GT说明书
- 追究刑事责任的控告书范例(标准版)
- 讲义配电房可视化管理标准课件
- 高中音乐(必修)《音乐鉴赏》 (人音版)《家国情怀的民族乐派》格林卡与穆索尔斯基《荒山之夜》
- 陕西省引汉济渭三期工程环评报告
评论
0/150
提交评论