《微机原理与应用教学资料》第四章(改)_第1页
《微机原理与应用教学资料》第四章(改)_第2页
《微机原理与应用教学资料》第四章(改)_第3页
《微机原理与应用教学资料》第四章(改)_第4页
《微机原理与应用教学资料》第四章(改)_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第四章:宏汇编语言程序设计,汇编语言程序格式 MASM中的表达式 伪指令语句 DOS系统功能调用 程序设计方法 程序举例,电气学院学习部资料库,2,4.1 汇编语言程序格式,汇编语言 机器语言的符号表示,面向机器的语言 汇编语言的特点: 直接控制目标代码,可对输入输出设备进行控制,实时性好; 编程效率高,节省内存,运行速度快。 源程序1.asm 1.obj 1.exe 8086常用的汇编程序:宏汇编程序MASM 一、指令性语句: 生成机器代码,由CPU来执行 格式: 标号:指令助记符 操作数,操作数;注释 字母开头,最长31个字符,汇编,链接,电气学院学习部资料库,3,二、伪指令语句: 只

2、提供汇编信息 功能:变量定义、存储区分配、段定义、段分配、指示程序开始、结束 格式: 名字 伪指令助记符 操作数,操作数;注释 变量名、段名、过程名、符号名,名字后不允许有“:” 三、数据项 汇编语言中的操作数:常数、寄存器、存储器、变量、标号和表达式。,电气学院学习部资料库,4,常数0011 0101B 026H 123D how are you?,空格(20H) 变量是内存中的一个数据区。在程序中作为操作数使用。变量名又称符号地址,表示该数据项中第一项所在的地址。和常数区别:变量值可以改变。三个属性:段地址,段内偏移地址,字节类型BYTE,WORD,DWORD 标号可执行指令语句的地址的符

3、号表示。可作为转移指令的目的操作数。 三个属性:段地址,段内偏移地址,距离类型(NEAR, FAR),电气学院学习部资料库,5,4.2 表达式,汇编的表达式为一个值 组成:运算对象+运算符,运算对象与结果都是整数 运算对象:常数、变量、标号 分为数字表达式和地址表达式两种 一、算术运算符: +,-,*,/,MOD,SHL,SHR 所有算术运算符都可以对数据进行运算 例 MOV AX ,5+3 ;(AX)=8 MOV AX ,(9MOD 2) ;(AX)=1 MOV AX , 9/2 ;(AX)=4 2. 对地址运算,只能是+,-,电气学院学习部资料库,6,例2: ARRAY DB 1,2,3,

4、4 TRY DB 20 MOV AX ,(TRY-ARRAY) ; 汇编后 MOV AX ,4 例3: FIRST DB 1,2,3 MOV AX ,OFFSET FIRST+2 二、逻辑运算符: AND,OR,NOT,XOR 只能用于数字表达式中 例: PORT EQU 90H AND DL ,PORT AND OFEH 前AND-指令助记符,在程序执行时运算; 后AND-运算符,在汇编时计算,电气学院学习部资料库,7,三、关系运算符: EQ、NE、GT、LT、GE、LE 结果为真:输出OFFH、OFFFFH 全1 结果为假: 全 0 例: PORT EQU 2 MOV BX ,PORT L

5、T 5 ;MOV BX ,0FFFFH MOV CX ,(PORT LT 5) AND 100)OR(PORT GE 5)AND 200); 若PORT LT 5 PORT LT 5=FFFFH FFFFH AND 100=100 PORT GE 5=0000 0000H AND 200=0 100 OR 0=100 汇编后 MOV CX, 100,电气学院学习部资料库,8,四、数值返回运算符: OFFSET、SEG、TYPE、LENGTH、SIZE 1. OFFSET 返回变量或标号的偏移地址值 2. SEG 返回变量或标号的段基地址值 例: MOV SI ,OFFSET FIRST 例4-

6、8 MOV AX ,SEG FIRST MOV DS ,AX MOV DS ,SEG FIRST 3. TYPE 变量 :返回类型属性 DB 1 DW 2 DD 4 (字节数) TYPE 标号 :返回距离属性 NEAR -1 FAR -2 例4-9,电气学院学习部资料库,9,4. LENGTH 变量 变量中有DUP时,返回变量所包含的单元数 例 n DUP( ): 返回n 其它 : 返回 1 5. SIZE=LENGTH*TYPE 例: FIRST DW 1,2,3,4 M DW 100 DUP (?) MOV AL ,TYPE FIRST ;MOV AL ,2 MOV AL ,LENGTH

7、FIRST ;MOV AL ,1 MOV AL ,SIZE FIRST ;MOV AL ,2 MOV AL ,TYPE M ;MOV AL ,2 MOV AL ,LENGTH M ;MOV AL ,100 MOV AL ,SIZE FIRST ;MOV AL ,200,电气学院学习部资料库,10,五、修改属性运算符: 段操作符、PTR、THIS、HIGH、LOW、SHORT 1、段操作符: 例:MOV AX ,ES:BX ES-段超越前缀 2、PTR: 格式:类型/距离 PTR 变量/标号 变量:BYTE,WORD 标号:NEAR,FAR 例1: AREA1 DB 15H ,23H AREA2

8、 DW 1234H MOV AL ,AREA1 ;AL=15H MOV AX ,AREA1 ; 应为:MOV AX ,WORD PTR AREA1 MOV BL ,BYTE PTR AREA2;BL=34H,电气学院学习部资料库,11,例2: MOV BYTE PTR BX ,10H; BX 10H MOV WORD PTR BX ,10H ; BX 0010H 例3: JMP FAR PTR AGAIN ;实现段间转移. AGAIN-标号 3、THIS 格式:变量/标号 EQU THIS 类型/距离 功能:将类型/距离 属性赋予变量/标号,且该变量/标号的地址与下一个存储单元相同。 例1:

9、FIRST EQU THIS BYTE TABLE DW 200 DUP(?) ;使变量FIRST与TABLE的偏移地址相同,但FIRST为字节类型,TABLE为字类型 例2: SPP EQU THIS FAR MOV AX ,100 ;即SPP :MOV AX ,100,电气学院学习部资料库,12,4、SHORT SHORT 标号 例:JMP SHORT L1 ;限制跳转的距离在-128+127之间 5、HIGH和LOW 字节分离符 HIGH/LOW 变量或标号 HIGH 分离出高位字节 LOW分离出低位字节 例: K1 EQU 1234H MOV AH ,HIGH K1 ; MOV AH

10、,34H MOV AL ,LOW K1 ; MOV AL ,12H MOV AH ,HIGH 1234H ;不能+立即数,电气学院学习部资料库,13,六、其他运算符 1、( ) 改变优先级次序 表4-3 2、 用 表达地址表达式 例: MOV CL ,BX MOV AX ,BX+2 用 表示多重变量的下标值 例: M1 DB 10H,20H,30H,40H MOV AL ,M13 ;MOV AL ,40H,电气学院学习部资料库,14,4-3 伪指令语句,一、数据定义语句 DB DW 格式:变量名 助记符 操作数,操作数,;注释 变量名 助记符 n DUP(操作数,操作数);注释 功能:将操作数

11、存入变量名指定的存储单元中,或者只分配存储空间不存入数据 例1:A1 DB 0DH A2 DW ? A3 DB 00H,01H,03H A5 DB 9 DUP(?) A6 DB 8 DUP(1,2,3);共3x8=24个单元 A7 DB How are you? A8 DW OK; A8 DW OVER ,电气学院学习部资料库,15,2、等号语句= 功能:同EQU , 但允许重复定义 例: X1=100 X1 EQU 100 X1=X1+100;X1=200 X1 EQU 200 ; ,电气学院学习部资料库,16,三、段定义语句 1、段定义语句 SEGMENTENDS 格式:段名 SEGMEN

12、T ;内容 段名 ENDS (上下段名必须相同) 功能:将一个逻辑段定义成一个整体 段名:逻辑段的标识符,不可省略,确定了逻辑段在存储器中的地址。 段基地址 例: MOV AX ,DATA MOV DS ,AX 堆栈段定义: 段名 SEGMENT STACK(不可省略) 段名 ENDS 说明:,电气学院学习部资料库,17,定位类型、组合类型、分类名一般情况下可省略 Data,stack,es段中,只能有伪指令 Code段中,可有指令和与指令相关的伪指令,电气学院学习部资料库,18,2、段分配语句:ASSUME 格式:ASSUME CS:段名 ,DS:段名 ,SS:段名 ,ES:段名 功能;将存

13、储器中的某几个逻辑段分别定义成代码段、数据段、堆栈段、附加段。(指定某程序运行时,哪几个逻辑段有效。CS、DS段是必须的,SS、ES段看情况) 注意:assume指令只指定某个段分配给哪几个段寄存器,并将代码段的段基址自动装入cs中,而不能把其它段基址自动装入相应的段寄存器中,所以,在代码段的开始,要有一段初始化程序完成这一工作,电气学院学习部资料库,19,四、过程定义语句 段内调用 段间 格式:过程名 PROC 属性 (距离属性(NEAR FAR) ;过程内容 RET N 过程名 ENDP 说明: RET N 中N为正偶数,表示从过程返回后,堆栈指针再加上SP 过程内部至少有一条RET指令,

14、也可以有多个,表示此过程具有多个返回出口。 过程调用允许嵌套调用,递归调用。 嵌套调用:一个被调用的过程中又调用另一个过程。 递归调用: 一个被调用的过程又调用自己,电气学院学习部资料库,20,五、程序开始、结束语句 1、ORG : 设置位置指针,指定下面语句的起始偏移地址 例: DATA SEGMENT ORG 100H A1 DB 10H,20H,30H ;A1的偏移地址为0100H ORG 200H A2 DW 3031H,3233H DATA ENDS 2、END 格式:END 标号名 是该程序中第一条可执行语句的标号名,可以缺省 若一个程序中,包含多个模块,则为主程序模块中的标号名称

15、。,电气学院学习部资料库,21,完整的汇编语言编写的格式 DATA SEGMENT DA1 DB this is a sample program DATA ENDS STACK SEGMENT STACK ST1 DB 100 DUP (?) TOP EQU LENGHTH ST1 STACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX, DATA;初始化 MOV DS,AX,电气学院学习部资料库,22,MOV AX,STACK MOV SS,AX MOV SP,TOP;设栈底 MOV AX,4C00H;

16、返回DOS INT 21H CODE ENDS END START 例4-29,电气学院学习部资料库,23,好的程序特点: 程序结构模块化,易读,易调试和维护 执行速度快 占用内存小 编程基本步骤: 分析问题 绘制程序流程图 分配存储空间及工作单元 编程 调试 实际运行,4.4程序设计方法,电气学院学习部资料库,24,1、顺序程序设计 例:设计一个顺序程序实现两个双字数的加法,结果放在加数单元中 被加数:变量first,四单元 加数:变量second,四单元 和:变量second 寄存器间接寻址:SI,DI 累加器AX,电气学院学习部资料库,25,FIRST DW 1234H,5678H SE

17、COND DW 2233H,4455H MOV SI , OFFSET FIRST ; MOV DI , OFFSET SECOND MOV AX ,SI ADD AX ,DI MOV DI ,AX MOV AX ,SI+2 ADC AX ,DI+2 MOV DI+2 ,AX,电气学院学习部资料库,26,2、分支程序设计 多分支 例: x+1 x1 y = x+2 1x0 x+3 x0 假设x放在AX里 CMP AX ,1 JGE P1 CMP AX ,0 JGE P2 ADD AX ,3 JMP P3 P1:ADD AX ,1 JMP P3 P2:ADD AX ,2 P3:MOV 2000H

18、 ,AX,P2,电气学院学习部资料库,27, 跳转表实现多分支 根据表内地址分支 表地址=跳转表首地址+偏移地址,BASE,BASE+2,P1,P2,电气学院学习部资料库,28,例4-67 有8个加工子程序,入口地址分别为P1,P2, ,P8,编程实现检测键盘输入命令,使系统分别转向8个 加工子程序。用跳转表实现。 BASE DW P1,P2,P3,P4 DEC AL DW P5,P6,P7,P8 MOV BX,OFFSET BASE KEY DB ? MOV AH,0 MOV AH,1;从键盘输入字符 ADD AL,AL; X2 INT 21H ;至AL ADD BX,AX AND AL,0

19、FH;ASCIIBIN JMP WORD PTRBX 例:p3子程序地址在cs:7800H开始,则BASE中第3个数据为7800H,地址DS:0004H,当键盘输入字符3 AL=33H AL=03H AL=2 BX=0 AH=0 AL=2X2=4 BX=0+4=4 BX=0004H=7800H.程序转移至CS:7800H,电气学院学习部资料库,29,2、循环程序设计,循环初始状态,循环体,循环控制条件,Y,循环初始状态,循环控制条件,循环体,N,Y,修改参数,修改参数,出口,循环次数固定,N,循环次数不固定,电气学院学习部资料库,30,例1:题目同上,利用循环程序设计 MOV SI ,OFFS

20、ET FIRST MOV DI ,OFFSET SECOND CLC CLD MOV CX ,02H LI: LODSW ;DS :SI AX,SI+2 SI ADC AX ,DI STOSW ;AX ES :DI,DI+2 DI LOOP LI ;先执行,后判断,电气学院学习部资料库,31,例2:AX寄存器中有16位二进制数,编程统计其中1的个数,结果放到BL中 MOV BL ,0;计数值清0 L1:AND AX ,AX ;先判断,后执行 JZ STOP ;若AX=0,则不进入循环 MOV CX ,16 SHL AX ,1 JNC L2 INC BL L2:JMP L1 STOP:,电气学院

21、学习部资料库,32,多重循环 3点注意 多重循环的初始控制条件 内循环可嵌套在外循环中,内可跳到外,外不得进入内 循环不要回到初始条件,造成死循环,最大数像气泡一样升至数组尾 第二次内循环只要N-2次 3 5 7 8 1 9 3 5 7 1 8 9 3 5 1 7 8 9 3 1 5 7 8 9 1 3 5 7 8 9,内循环N-1次,外循环N-1次,例4-72 气泡排序。使一个数组中的数据从小到大排列。 分析:内循环N-1次 单元号 0 1 2 3 4 5 初始 5 3 8 7 9 1 一 3 5 8 7 9 1 二 3 5 8 7 9 1 三 3 5 7 8 9 1 四 3 5 7 8 9

22、 1 五 3 5 7 8 1 9,电气学院学习部资料库,33,修改地址(BX+2),数i数i+1?,两数位置交换,修改地址 BX+2BX,CX-1 内循环CX=0?,初始化: 数组起始地址BX 外循环次数DX 内循环次数CX,置检测起点i=0(BX),Dx-1 外循环DX =0?,N,N,L2,L1,N,电气学院学习部资料库,34,DATA SEGMENT BUF DW N,15,37,8600, A768H,3412H,1256H, DW 76H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS,

23、AX MOV BX,0; i=0 MOV CX, BUFBX; NCX DEC CX ; N-1, 内循环次数 L1: MOV DX,CX ;外循环次数 L2: ADD BX, 2,电气学院学习部资料库,35,MOV AX, BUFBX CMP AX, BUFBX+2 JBE CONTI XCHG AX, BUFBX+2 MOV BUFBX, AX CONTI:LOOP L2 MOV CX,DX MOV BX, 0;回到i=0,重新开始比较 LOOP L1;CX-1:内循环次数N-1,N-2;外循环次数-1 MOV AX, 4C00H INT 21H CODE ENDS END START,电

24、气学院学习部资料库,36,四、子程序结构 子程序说明 名称、功能 存储单元和寄存器 入口和出口 有否调用其它子程序 主程序调用子程序注意: 堆栈 保护现场 参数传递 寄存器 存储器 堆栈,电气学院学习部资料库,37,例4-30:编程实现两个BCD码字数据相加(完整程序) DATA SEGMENT FIRST DB 22H, 33H,44H,55H ;加数1 SECOND DB 55H, 66H,77H,88H ;加数2 SUM DB 20 DUP(?) ;定义存放结果单元 DATA ENDS STACK SEGMENT STACK STA DB 20 DUP(?) ;设置堆栈长度为20个字节

25、TOP EQU LENGTH STA STACK ENDS,电气学院学习部资料库,38,CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX ,STACK ;将堆栈段段地址SS MOV SS ,AX MOV AX ,TOP ;将堆栈指针指向栈底 MOV SP ,AX PUSH DS ;使得程序执行完了,能返回DOS XOR AX ,AX PUSH AX MOV AX ,DATA MOV DS ,AX ;MOV DS ,DATA , 初始化 MOV ES ,AX ;将数据段段地址DS、ES

26、 MOV SI ,OFFSET FIRST MOV BX ,OFFSET SECOND MOV DI ,OFFSET SUM,电气学院学习部资料库,39,MOV CX ,04 CLD CLC ADBCD:CALL AAM LOOP ADBCD RET ;返回DOS MAIN ENDP ;子程序入口:SI, BX 出口: DI 参数传递:存储器 AAM PROC NEAR LODSB ;DS:SIAL SI+1SI ADC AL ,BX DAA STOSB ;ALES:DI DI+1DI INC BX,电气学院学习部资料库,40,RET AAM ENDP CODE ENDS END START,

27、电气学院学习部资料库,41,4.5 DOS系统功能调用,Disk Operation System 磁盘操作系统 一、DOS常用的软中断命令 DOS具有对I/O设备管理及磁盘与文件管理功能, 一部份固化在系统的ROM中 一部份在系统启动时调入内存,通过软件中断来调用 中断指令:INT n 表4-6 DOS 常用的软中断命令 入口、出口参数,电气学院学习部资料库,42,二、DOS系统功能调用 INT 21H 附录F AH=功能号 每个子程序对应一个功能号(相应的入口号),格式如下 功能号AH 入口参数指定寄存器 INT 21H 根据出口参数分析功能调用执行情况 1.DOS键盘功能调用 表4-7

28、键入单字符 AH=1,电气学院学习部资料库,43,MOV AH ,1 INT 21H 出口:AL=字符 键入字符串 AH=0AH,电气学院学习部资料库,44,2、DOS显示功能调用 表4-6 单字符操作 例: MOV DL ,$ MOV AH ,2 INT 21H ;调用结果,屏幕上在光标处显示$ 字符串操作 AH=9的INT 21H ,注意串必须以$结束 例4-55:在屏幕上显示HOW DO YOU DO?字符串,且回车、换行。 DATA SEGMENT MES DB HOW DO YOU DO?,0DH,0AH, $ ;0DH(回车),0AH(换行) DATA ENDS,电气学院学习部资料

29、库,45,CODE SEGMENT ASSUME CS:CODE ,DS:DATA MAIN :PUSH DS XOR AX ,AX PUSH AX MOV AX ,DATA MOV DS ,AX MOV AH ,9 MOV DX ,OFFSET MES INT 21H RET CODE ENDS END START,电气学院学习部资料库,46,3、返回操作系统 4CH功能调用:能够结束当前正在执行的程序,返回DOS系统 MOV AH ,4CH INT 21H,电气学院学习部资料库,47,4.6 上机实验 参见课本及实验指导书 实验一:两个多位十进制数相减的实验 参见课本P187程序 实验二:

30、排序实验 要求:从首地址为1000H的内存区域开始存放10个无符号字数据数,设计程序将这些数从小到大排序,并将排序前后次序的显示在屏幕上。 参见课本P181及实验指导书实验十三 MOV BX ,0 MOV CX ,N-1 L1: MOV DX ,CX L2: MOV AX ,BUFBX CMP AX ,BUFBX+2 JBE CONTI XCHG AX ,BUFBX+2 MOV BUFBX,AX CONTI: LOOP L2 MOV CX ,DX MOV BX ,0 调用显示子程序,参见P177 LOOP L1,电气学院学习部资料库,48,4.7程序举例:,一、查表 例4-64 二、代码转换类

31、 16位二进制 ASC码 二进制组合BCD码 非组合BCD 码 ASC码 显示 三、算术运算类 加减乘除(二进制,BCD码),电气学院学习部资料库,49,例4-64 内存中TABLE开始存放09的平方值,通过人机 对话,当任给定一个数X(09),查表得X的平方值, 放在AL中。 TABLE DB 0,1,4,9,16,25,36,49,64,81 BUF DB Please input one number(09):,0DH,0AH, $ MOV DX, OFFSET BUF MOV AH, 9 INT 21H ;显示字符串 MOV AH, 1 INT 21H ;输入字符 AND AL,0FH

32、;ASCIIBIN MOV BX, OFFSET TABLE;查表 XLAT HLAT,电气学院学习部资料库,50,例4-69 将BX中的16进制数转换为ASCII码,存放到BUF开始的内存单元中去,并在屏幕显示数值 转换表: 入口参数: BX 出口参数: BUF开始的内存 单元中,SI指示。,电气学院学习部资料库,51,LEA SI, BUF MOV CH,4;处理4位HEX NEXT: MOV CL,4 ROL BX,CL;左移4位BIN MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL STORE ADD AL,7 STORE: MOV SI,A

33、L MOV AH,2 MOV DL,AL INT 21H ;显示,INC SI DEC CH JNZ NEXT HLT,电气学院学习部资料库,52,例4-78:将一个无符号16位二进制数转换为4位压缩型BCD码 算法一: 千位数:无符号16位二进制数/1000的商,得余数1 百位数:余数1/100的商,得余数2 十位数:余数2/10的商,得余数3 个位数:余数3,电气学院学习部资料库,53,7865 7000,1000,7,865 -余数1,865,100,800,65 -余数2,8,65 60,10,6,5 -余数3,程序中,7865D=1EB9H 1000D=3E8H 865D=361H

34、1EB9H/3E8H=7H.361H 361H/64H=8H41H 41H/0AH=6H5H,电气学院学习部资料库,54,复习除法: 16位/8位商AL,余AH (AX)(源操作数) 32位/16位商AX,余DX (DX,AX)(源操作数) 若计算 16位/16位 ,8位/8位 ,需将被除数扩展 程序: 入口参数:AX=16位二进制数 出口参数:AX=4位压缩型BCD码(CF=0时) 占用资源:CX , DX,千位 百位,千位 百位 十位,千位 百位 十位 个位,千位,每次所得商,依次移入DX,DX,DX,DX,DX,电气学院学习部资料库,55,B2TOBCD PROC FAR CMP AX

35、,9999 ;AX9999,则CF=1, JBE TRAN ;不转换 STC JMP EXIT TRAN:PUSH CX ;保护现场 PUSH DX XOR DX ,DX; 32位/16位,需DX MOV CX ,1000 ;求千位数 DIV CX ;商在AX,余数1在DX XCHG AX ,DX ;余数1在AX,千位数(商)在DX最低4位,DX=0007H,电气学院学习部资料库,56,MOV CL ,4 ;DX左移4位,低位添 SHL DX ,CL ;四个0,DX=0070H MOV CL ,100 ;求百位数 DIV CL ;商在AL,余数2在AH ADD DL ,AL ;百位数入DX,D

36、X=0078H MOV CL ,4 ; DX左移4位,DX=0780H SHL DX ,CL XCHG AH ,AL ;余数2在AL AND AX ,00FFH ;AH=0 MOV CL ,10 ;求十位数 DIV CL ;商在AL,余数3在AH,电气学院学习部资料库,57,ADD DL ,AL;DL=86H MOV CL ,4 SHL DX ,CL;DX=7860H ADD DL ,AH;DX=7865H MOV AX ,DX;转换后的数入AX POP DX POP CX EXIT: RET BINTOBCD ENDP 算法二:把要转换的数分别减去相应的最高次幂,直至不够减,此时减的次数即是

37、相应的位,电气学院学习部资料库,58,例4-79 将十进制数的ASCII码转换成有符号二进制数。 算法:符号字符串标识符MINU。若为负, MINU=1; 数字字符(31H39H)一位十进制数(09)a0,a1,a2 十进制数转换成十六进制数: 十六进制数=a2x100+a1x10+a0 =(a2x10+a1) x10+a0,电气学院学习部资料库,59,入口:DX字符串地址偏移量,CX字符个数 用存储器传递参数。 出口:AX AX为16位,216=65536 字符串字符个数6, (5位十进制数加1个符号位) 嵌套的子程序:CHE 用于乘10 入口:DX 出口:DX, CF 使用的寄存器:BX, SI,电气学院学习部资料库,60,查符号,X10 CHE,置标志

温馨提示

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

评论

0/150

提交评论