![第四章汇编程序设计_第1页](http://file3.renrendoc.com/fileroot3/2021-11/26/4da71252-9af7-4b4a-86aa-ff86379e2a2f/4da71252-9af7-4b4a-86aa-ff86379e2a2f1.gif)
![第四章汇编程序设计_第2页](http://file3.renrendoc.com/fileroot3/2021-11/26/4da71252-9af7-4b4a-86aa-ff86379e2a2f/4da71252-9af7-4b4a-86aa-ff86379e2a2f2.gif)
![第四章汇编程序设计_第3页](http://file3.renrendoc.com/fileroot3/2021-11/26/4da71252-9af7-4b4a-86aa-ff86379e2a2f/4da71252-9af7-4b4a-86aa-ff86379e2a2f3.gif)
![第四章汇编程序设计_第4页](http://file3.renrendoc.com/fileroot3/2021-11/26/4da71252-9af7-4b4a-86aa-ff86379e2a2f/4da71252-9af7-4b4a-86aa-ff86379e2a2f4.gif)
![第四章汇编程序设计_第5页](http://file3.renrendoc.com/fileroot3/2021-11/26/4da71252-9af7-4b4a-86aa-ff86379e2a2f/4da71252-9af7-4b4a-86aa-ff86379e2a2f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 汇编语言程序设计汇编语言程序设计 所谓程序设计,就是按照给定的任务要求,编写出完整的计算机程序。要完成同样的任务,使用的方法或程序并不是唯一的。因此,程序设计的质量将直接影响到计算机系统的工作效率、运行可靠性。 4.1 4.1 单片机程序设计语言概述单片机程序设计语言概述4.1.1 4.1.1 设计语言的分类及介绍设计语言的分类及介绍1 1机器语言:机器语言:机器语言是用二进制代码0和1表示指令和数据的最原始的程序设计语言。直接用机器码编写程序、能够为计算机直接执行的机器级语言。特点:执行速度快,但是可读性极差。在简单的开发装置中使用,程序的设计、输入、修改和调试都很麻烦.2汇
2、编语言:用助记符表示指令的一种语言,不同单片机系统和指令是对应的关系. 特点:汇编语言程序结构简单,执行速度快,程序易优化,编译后占用存储空间小,可读性比较差. 3高级语言:高级语言是接近于人的自然语言,面向过程而独立于机器的通用语言,例如C51等,特点: 程序可读性强,可移植,通用性好,适用于不熟悉单片机指令系统的的用户。缺点是实时性不高,结构不紧凑,编译后占用存储空间比较大,这一点在存储器有限的单片机应用系统中没有优势.4.1.2 4.1.2 汇编语言语句的种类和格式汇编语言语句的种类和格式1 1 汇编语言语句类型:汇编语言语句类型:指令语句、伪指令语句和宏指令语句指令语句、伪指令语句和宏
3、指令语句。 指令语句:指令语句:每一个指令语句都在汇编时产生一个目标代码,对应着每一个指令语句都在汇编时产生一个目标代码,对应着机器的一种操作。机器的一种操作。 例如:例如:MOV AMOV A,#08; #08; 74H 08H74H 08H 伪指令语句:伪指令语句:主要是为汇编语言服务的,在汇编时没有目标代码与主要是为汇编语言服务的,在汇编时没有目标代码与之对应。例如:之对应。例如:ONE EQU 1ONE EQU 1 宏指令语句:宏指令语句:用以代替汇编语言源程序中重复使用的程序段的一种用以代替汇编语言源程序中重复使用的程序段的一种 语句,由汇编程序在汇编时产生相应的目标代码。语句,由汇
4、编程序在汇编时产生相应的目标代码。 宏定义过程宏定义过程: 宏指令名宏指令名 MACRO 形式参数形式参数 ;定义程序段;定义程序段ENDM 宏调用过程:宏调用过程: 宏指令名宏指令名 实际参数实际参数 宏指令名宏指令名 实际参数实际参数 2 汇编语言语句的格式汇编语言语句的格式 指令语句的格式为:指令语句的格式为:【标号标号】:助记符:助记符( (操作码)操作码)【操作数操作数】 ;【注释注释】其中方括号括起来的是可选择部分。其中方括号括起来的是可选择部分。标号标号: :访问该语句的地址标志符号访问该语句的地址标志符号, ,使用要符合相关规定使用要符合相关规定: :以字母开头的以字母开头的1
5、-81-8个个字符组成字符组成; ;跟冒号跟冒号; ;不能使用特定语言符号不能使用特定语言符号; ;只能定义一次。只能定义一次。操作码:操作码:指令格式唯一不能空缺的部分。指令格式唯一不能空缺的部分。操作数:为指令提供操作的数据,操作数:为指令提供操作的数据,可空白可空白 如如NOPNOP指令;指令;注释:以分号注释:以分号;开头,解释和维护程序提供方便。;开头,解释和维护程序提供方便。 4.2 4.2 汇编语言源程序的编辑和汇编汇编语言源程序的编辑和汇编4.2.1 4.2.1 源程序编辑源程序编辑及及汇编汇编4.2.2 4.2.2 伪指令伪指令4.2.1 4.2.1 源程序编辑及汇编源程序编
6、辑及汇编程序编辑:在微型计算机上,借助编辑软件,编写或修改汇编程序编辑:在微型计算机上,借助编辑软件,编写或修改汇编语言源程序。如行编辑或屏幕编辑软件。语言源程序。如行编辑或屏幕编辑软件。程序汇编:将汇编语言源程序转换为机器码表示的目标程序的程序汇编:将汇编语言源程序转换为机器码表示的目标程序的过程。过程。 1 1)确定程序中每条汇编语言指令的指令机器码。)确定程序中每条汇编语言指令的指令机器码。2 2)确定每条指令在存储器中的存放地址。)确定每条指令在存储器中的存放地址。3 3)提供错误信息。)提供错误信息。4 4)提供目标执行文件()提供目标执行文件(* *.OBJ/.OBJ/* *.HE
7、X).HEX)和列表文件(和列表文件(* *.LST.LST)。)。 一、手工汇编通过手工方式查指令编码表,逐个把助记符指令“翻译”成机器码,然后把得到机器码程序键入单片机,进行调试和运行。手工汇编的缺点: 1、偏移量的计算容易出错 2、程序的修改会引起后面指令地址的变化,转移指令的偏移量也要重新计算。二、机器汇编机器汇编是在计算机上使用交叉汇编程序进行源程序的汇编。汇编工作由机器自动完成,最后得到以机器码表示的目标程序。三、反汇编三、反汇编 将二进制机器语言程序翻译成汇编语言程序的过程称将二进制机器语言程序翻译成汇编语言程序的过程称反汇编。反汇编。 汇编和反汇编的过程如图汇编和反汇编的过程如
8、图4-34-3所示。所示。源程序(汇编语言)目标码(机器语言)汇编(汇编程序)反汇编(汇编程序)图图4-3 汇编和反汇编过程汇编和反汇编过程4.2.2 4.2.2 伪指令伪指令伪指令不是真正的指令,无对应的机器码,在汇编时不产伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序,只是用来对汇编过程进行某种控制生目标程序,只是用来对汇编过程进行某种控制, ,定义定义数据、分配存储空间、控制程序的输入输出等数据、分配存储空间、控制程序的输入输出等. .80C5180C51有有7 7个伪指令:个伪指令:ORG END EQU DB DW DS BITORG END EQU DB DW DS
9、BIT1.ORG1.ORG起始地址指令起始地址指令:指明程序和数据块起始地址。:指明程序和数据块起始地址。该指令的该指令的功能功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地是向汇编程序说明下面紧接的程序段或数据段存放的起始地址。表达式通常为址。表达式通常为1616进制地址,也可以是已定义的标号地址。进制地址,也可以是已定义的标号地址。 ORG 8000H ORG 8000H START START:MOV AMOV A,#30H#30H 此时规定该段程序的机器码从地址此时规定该段程序的机器码从地址8000H8000H单元开始存放。单元开始存放。在每一个汇编语言源程序的开始,都要设置一
10、条在每一个汇编语言源程序的开始,都要设置一条ORGORG伪指令来指定伪指令来指定该程序在存储器中存放的起始位置。若省略该程序在存储器中存放的起始位置。若省略ORGORG伪指令,则该程序段从伪指令,则该程序段从0000H0000H单元开始存放。单元开始存放。在一个源程序中,可以多次使用在一个源程序中,可以多次使用ORGORG伪指令规定不同程序段或数据伪指令规定不同程序段或数据段存放的起始地址,但要求地址值由小到大依序排列,不允许空间重叠。段存放的起始地址,但要求地址值由小到大依序排列,不允许空间重叠。2DB伪指令伪指令格式:格式: 标号:标号: DB DB 项或项表项或项表 DBDB伪指令用于定
11、义字节数据,可以定义伪指令用于定义字节数据,可以定义一个字节,也可定义多个字节,定义多个字节时,一个字节,也可定义多个字节,定义多个字节时,两两之间用逗号间隔,定义的多个字节在程序存储两两之间用逗号间隔,定义的多个字节在程序存储器中是连续存放的。定义的字节可以是常数器中是连续存放的。定义的字节可以是常数、字符字符、字符串,字符和字符串以引号括起来,字符数据在字符串,字符和字符串以引号括起来,字符数据在存储器中以存储器中以ASCIIASCII码形式存放。码形式存放。在定义时前面可以带标号,定义的标号在程序中在定义时前面可以带标号,定义的标号在程序中是起始单元的地址。是起始单元的地址。例例 ORG
12、 3000HORG 3000HTAB1TAB1: DB 12HDB 12H,34H34HDB 5DB 5,AA,abcabc汇编后,各个数据在存储单元中的存放情况如图汇编后,各个数据在存储单元中的存放情况如图例例 8100H MOV A,#49H8100H MOV A,#49H TAB: DB C0H,F9H A4H,B0H TAB: DB C0H,F9H A4H,B0H . .DBDB定义的字节数从定义的字节数从8102H8102H开始存放,前指令的地开始存放,前指令的地址加上该指令的字节数。址加上该指令的字节数。12H34H35H41H61H62H63H3000H3001H3002H300
13、3H3004H3005H3006H3DW伪指令伪指令格式:格式: 标号:标号: DW DW 项或项表项或项表 这条指令与这条指令与DBDB相似,但用于定义相似,但用于定义字数据。项或项表指所定义的一个字在存储字数据。项或项表指所定义的一个字在存储器中占两个字节。汇编时,机器自动按高字器中占两个字节。汇编时,机器自动按高字节在前,低字节在后,即低字节存放在高地节在前,低字节在后,即低字节存放在高地址单元,高字节存放在低地址单元。址单元,高字节存放在低地址单元。【例例3-203-20】 ORG 3000H ORG 3000HTAB2TAB2:DW 1234HDW 1234H,5678H5678H汇
14、编后,各个数据在存储单元中的存放情汇编后,各个数据在存储单元中的存放情况如右图:况如右图:12H34H56H78H3000H3001H3002H3003HDB DB 常用定义数据常用定义数据 DW DW 常用定义地址常用定义地址 4DS伪指令伪指令格式:格式: 标号:标号: DS DS 数值表达式数值表达式 该伪指令用在程序存储器该伪指令用在程序存储器中保留一定数量的字节单元。保留中保留一定数量的字节单元。保留存贮空间主要为以后存放数据。保存贮空间主要为以后存放数据。保留的字节单元数由表达式的值决定。留的字节单元数由表达式的值决定。【例例3-213-21】 ORG 3000H ORG 3000
15、HTAB1TAB1: DB 12HDB 12H,34H34HDS 4HDS 4HDB 5DB 5汇编后,存储单元中的分配情况汇编后,存储单元中的分配情况如下:如下:12H34H-35H3000H3001H3002H3003H3004H3005H3006H5EQU伪指令伪指令格式:符号格式:符号 EQU EQU 项项 该伪指令的功能是将指令中的项的值赋予该伪指令的功能是将指令中的项的值赋予EQUEQU前面的符号。前面的符号。项可以是常数、地址标号或表达式。以后可以通过使用该符号使项可以是常数、地址标号或表达式。以后可以通过使用该符号使用相应的项。用相应的项。【例例3-223-22】 TAB1 E
16、QU 1000H TAB1 EQU 1000H TAB2 EQU 2000H TAB2 EQU 2000H汇编后汇编后TAB1TAB1、TAB2TAB2分别等于分别等于1000H1000H、2000H2000H。用用EQUEQU伪指令对某标号赋值后,该符号的值在整个程序中不能再伪指令对某标号赋值后,该符号的值在整个程序中不能再改变。改变。7END伪指令伪指令格式:格式:ENDEND 该指令放于程序最后位置,用于指明汇编语言源程序的结该指令放于程序最后位置,用于指明汇编语言源程序的结束位置,当汇编程序汇编到束位置,当汇编程序汇编到ENDEND伪指令时,汇编结束。伪指令时,汇编结束。ENDEND后
17、面的指令,后面的指令,汇编程序都不予处理。一个源程序只能有一个汇编程序都不予处理。一个源程序只能有一个ENDEND命令,否则就有一命令,否则就有一部分指令不能被汇编。部分指令不能被汇编。6bit伪指令伪指令格式:符号格式:符号 bit bit 位地址位地址bitbit该伪指令用于给位地址赋予符号,经赋值后可用该符号代替该伪指令用于给位地址赋予符号,经赋值后可用该符号代替bitbit后面的位地址。后面的位地址。【例例3-233-23】 FLG bit F0 FLG bit F0 AI bit P1.0 AI bit P1.0定义后,在程序中位地址定义后,在程序中位地址F0F0、P1.0P1.0就
18、可以通过就可以通过FLGFLG和和AIAI来使用。来使用。4.2 80C514.2 80C51汇编语言程序设计汇编语言程序设计 汇编语言程序设计,就是采用汇编指令来编写计算机程汇编语言程序设计,就是采用汇编指令来编写计算机程序。要对应用中需使用的寄存器、存储单元、序。要对应用中需使用的寄存器、存储单元、I/OI/O端口等先要作端口等先要作出具体安排。在实际编程中,如何正确选择指令、寻址方式和合出具体安排。在实际编程中,如何正确选择指令、寻址方式和合理使用工作寄存器,包括数据存储器单元,如何对扩展的理使用工作寄存器,包括数据存储器单元,如何对扩展的I/OI/O端端口进行操作等,都是基本的汇编语言
19、程序设计技巧。口进行操作等,都是基本的汇编语言程序设计技巧。程序结构一般采用以下三种基本控制结构,程序结构一般采用以下三种基本控制结构,即顺序结构、即顺序结构、分支结构和循环结构来组成,再加上使用广泛的子程序及中断服分支结构和循环结构来组成,再加上使用广泛的子程序及中断服务子程序,共有五种基本结构。务子程序,共有五种基本结构。 4.2.1 顺序程序结构顺序程序结构 例例1:三字节无符号数相加,其中被加数在内部三字节无符号数相加,其中被加数在内部RAM的的50H、51H和和52H单元中;单元中;加数在内部加数在内部RAM的的53H、54H和和55H单元中;要求把相加之和存放在单元中;要求把相加之
20、和存放在50H、51H和和52H单元中,进位存放在位寻址区的单元中,进位存放在位寻址区的00H位中。位中。(p79)高字节高字节高字节高字节低字节低字节低字节低字节中字节中字节高字节高字节低字节低字节中字节中字节高字节高字节低字节低字节R0R1中字节中字节MOVMOVR0R0,#52H#52HMOVMOVR1R1,#55H#55HMOVMOVA A,R0R0ADDADDA A,R1R1MOVMOVR0R0,A ADECDECR0R0DECDECR1R1MOVMOVA A,R0R0ADDCADDCA A,R1R1MOVMOVR0R0,A ADECDECR0R0DECDECR1R1MOVMOVA
21、A,R0R0ADDCADDCA A,R1R1MOVMOVR0R0,A ACLRCLRA AADDCADDCA A,#00H#00HMOVMOVR0R0,#20H#20HMOVMOVR0R0,A A ;被加数的低字节地址;被加数的低字节地址;加数的低字节地址;加数的低字节地址;低字节相加;低字节相加;存低字节相加结果;存低字节相加结果;中间字节带进位相加;中间字节带进位相加;存中间字节相加结果;存中间字节相加结果;高字节带进位相加;高字节带进位相加;存高字节相加结果;存高字节相加结果;区分位清零累加器清零;区分位清零累加器清零;存放进位的单元地址;存放进位的单元地址;进位送;进位送00H00H位
22、保存位保存 4.2.2 分支程序设计分支程序设计 分支结构框图(a) 单分支结构: 单分支流程;(b) 多重单分支结构 : 多分支流程 例例 2设外部 RAM 的3个连续存储单元 ST1和 ST2中存放两个不带符号的二进制数, 找出其中的大数存入外部 RAM 中的 ST3单元中。 START:CLR C MOV DPTR,#ST1 MOVX A,DPTR MOV R2,A INC DPTR MOVX A,DPTR SUBB A,R2 JNC BIG1 XCH A,R2 BIG0: INC DPTR MOVX DPTR,A RET BIG1: MOVX A,DPTR SJMP BIG0;进位位清
23、;进位位清“0”;设置数据指针,指向;设置数据指针,指向ST1;取;取n1;n1存存R2;数据指针加;数据指针加1,指向,指向ST2;取;取n2;两数比较;两数比较 ;n2- n1=0转转BIG1, (C=0无借位跳)无借位跳);n1整字节交换整字节交换 ;指向;指向ST3单元单元;存大数;存大数;A存放差,重新取大数送存放差,重新取大数送入入ST3例例 3 x, y均为8位二进制数, 设 x存入R0, y存入R1, 求解: 011y000 xxx START: CJNE R0, 00H, SUL1 ; 数x与0比较不等转 SUL1 MOV R1, 00H; 数x与0相等, R1 0 SJMP
24、 SUL2 SUL1: JC NEG ; 若c=1,(R0)0, 则 R101H SJMP SUL2 NEG: MOV R1, 0FFH ; (R0)0, 则 R10FFH SUL2: RET 4.2.3 循环程序设计循环程序设计 一、一、 循环程序循环程序 循环程序一般由四个主要部分组成: (1) 初始化部分: 为循环程序做准备, 如规定循环次数、 给各变量和地址指针预置初值。 (2) 处理部分: 为反复执行的程序段, 是循环程序的实体, 也是循环程序的主体。 (3) 循环控制部分: 这部分的作用是修改循环变量和控制变量, 并判断循环是否结束, 直到符合结束(循环次数或者特征数值)时, 跳出
25、循环为止。 (4) 结束部分: 这部分主要是对循环程序的结果进行分析、 处理和存放。 例例4 设在内部 RAM的BLOCK单元开始处有长度为 LEN的无符号数据块, 试编一个求和程序, 并将和存入内部 RAM的 SUM单元(设和不超过 8 位)。 START: CLR A ; 清累加器A MOV R2, LEN; 数据块长度送R2 MOV R1, BLOCK ; 数据块首址送R1 LOOP: ADD A, R1 ; 循环加法 INC R1; 修改地址指针 DJNZ R2, LOOP ; 计数器减一不为零继续循环 MOV SUM, A; 存和 RET 例例5 5:统计字串长度。内存从:统计字串长
26、度。内存从STRINGSTRING开始有一字串,该字开始有一字串,该字串以串以$(ASCII$(ASCII码为码为24H)24H)结束,试统计该字串长度,结果结束,试统计该字串长度,结果存于存于NUMNUM单元中单元中 解:程序如下:解:程序如下:ORGORG0800H0800H START:START: CLRCLRA AMOV MOV R0R0,#STRING#STRING LOOP LOOP: CJNECJNER0R0,#24H,NEXT#24H,NEXT SJMP SJMP COMPCOMP NEXT NEXT: INCINCA A INCINCR0R0SJMPSJMPLOOPLOOP
27、 COMPCOMP: MOV MOV NUMNUM,A ASJMPSJMP$ $ 执行DJNZ指令要用两个机器周期 执行MOV Rn,#data要一个机器周期 执行MOV dir,#data要两个机器周期因此可以精确算出程序执行时间。例7:以机器周期为单位,计算以下程序的执行时间。 MOV R7,#64H LOOP: MOV R6,#0FAH LOOP1DJNZ R6,LOOP1 DJNZ R7,LOOPRET;1个机器周期;1(0FAH)16=(250)10;250*2=500;(2), 503*100=50300;2共50303个机器周期利用多重循环设计延时程序利用多重循环设计延时程序 上
28、例程序中采用了多重循环程序, 即在一个循环体中又包含了其它的循环程序, 这种方式是实现延时程序的常用方法。 使用多重循环时, 必须注意: (1) 循环嵌套, 必须层次分明, 不允许产生内外层循环交叉。 (2) 外循环可以一层层向内循环进入, 结束时由里往外一层层退出。 (3) 内循环可以直接转入外循环, 实现一个循环由多个条件控制的循环结构方式。 外循环中循环内循环外循环内循环外循环内循环内循环(a)嵌套正确(b)嵌套正确(c)交叉不正确 多重循环示意图4.2.4 .4 子程序及其调用子程序及其调用一、子程序的调用在实际应用中,经常会遇到一些带有通用性的问题,例如:数值转换、数值计算等,在一个
29、程序中可能要使用多次。这时可以将其设计成通用的子程序供随时调用。子程序的结构与一般的程序并无多大区别,它的主要特点是,在执行过程中需要由其它程序来调用,执行完后又需要把执行流程返回到调用该子程序的主程序。子程序调用时要注意两点:一是现场的保护和恢复;二是主程序与子程序的参数传递。二、现场保护与恢复二、现场保护与恢复 在子程序执行过程中常常要用到单片机的一些通用单元,如工作寄存器R0R7、累加器A、数据指针DPTR,以及有关标志和状态等。而这些单元中的内容在调用结束后的主程序中仍有用,所以需要进行保护,称为现场保护。在执行完子程序,返回继续执行主程序前恢复其原内容,称为现场恢复。保护与恢复的方法
30、有以下两种:在主程序中实现;在子程序中实现。 1、在主程序中实现、在主程序中实现 示例如下:示例如下: PUSH PSW ;保护现场;保护现场 PUSH ACC ; PUSH B ; MOV PSW,#10H ;换当前工作寄存器组;换当前工作寄存器组 LCALL addr16 ;子程序调用;子程序调用 POP B ;恢复现场;恢复现场 POP ACC ; POP PSW ; 其特点是结构灵活。其特点是结构灵活。 2、在子程序中实现、在子程序中实现示例如下:SUB1:PUSH PSW ;保护现场 PUSH ACC ; PUSH B ; MOV PSW,#10H ;换当前工作寄存器组 POP B
31、;恢复现场 POP ACC ; POP PSW ; RET其特点是程序规范、清晰。注意,无论哪种方法保护与恢复的顺序要对应。三、参数传递三、参数传递 由于子程序是主程序的一部分,所以,在程序的执行时必然要发生数据上的联系。在调用子程序时,主程序应通过某种方式把有关参数(即子程序的入口参数)传给子程序,当子程序执行完毕后,又需要通过某种方式把有关参数(即子程序的出口参数)传给主程序。 1、利用累加器或寄存器、利用累加器或寄存器 在这种方式中,要把预传递的参数存放在累加器A或工作寄存器R0R7中。即在主程序调用子程序时,应事先把子程序需要的数据送入累加器A或指定的工作寄存器中,当子程序执行时,可以从指定的单元中取得数据,执行运算。反之,子程序也可以用同样的方法把结果传送给主程序。例例 编写程序,实现编写程序,实现c=a2+b2 c=a2+b2 。设。设a a,b b,c c分别存于通用寄存分别存于通用寄存器组器组1 1的的R0 R0 、 R1 R1 、 R2R2 三个单元中。程序段如下:三个单元中。程序段如下:STARTSTART: SETBSETB RS1RS1 CLRCLR RS0RS0 ; ;选择选择1 1组寄存器组寄存器 MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工现场施工防化学灾害制度
- 应急物资装备应急预案
- 医疗护理医学培训 吸痰护理技术课件
- DB6103T 87-2025企业简易注销登记服务规程
- XX村电排建设及维护合同书2025
- 个人股权抵押融资合同样本
- 临时促销服务合同
- 中小企业融资合作合同协议
- 京东商城代运营合同模板
- 个人质押贷款合同模板
- 2025年矿山开采承包合同实施细则4篇
- 2024年广东省公务员录用考试《行测》真题及解析
- 科技论文图表等规范表达
- 高考写作指导议论文标准语段写作课件32张
- 2021年普通高等学校招生全国英语统一考试模拟演练八省联考解析
- 华能火力发电机组节能降耗技术导则(2023年版)
- 基础知识3500个常用汉字附拼音
- 企业易制毒化学品管理培训
- JJF(纺织)072-2018纺织滚筒式烘干机校准规范
- 羊水栓塞的应急预案演练脚本
- 物业保洁及餐饮服务项目方案
评论
0/150
提交评论