第4章MCS-51单片机汇编语言程序设计_免费下载.ppt.ppt 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 汇编语言程序设计,教学目标 4.1 单片机汇编语言概述 4.2 源程序的设计步骤和汇编 4.3 汇编语言程序设计 本章小结 思考题与习题,教学目标,通过本章教学,要求达到以下目标: 1. 熟悉汇编语言的语句结构; 2. 了解手工汇编,计算偏移量及转移地址的 方法; 3. 了解程序设计的步骤,会画程序流程图; 4. 掌握顺序程序、分支程序、循环程序、子程 序等基本程序的编制方法。,4.1单片机汇编语言概述,4.1.1 程序设计语言,程序设计语言,机器语言 汇编语言 高级语言,机器语言,由于构成计算机的电子器件特性所决定, 计算机只能识别二进制代码。 这种以二进制代码来描述指令功能的语言,
2、 称之为机器语言, 用机器语言组成的程序, 称为目标程序。 计算机就是按照机器语言的指令来完成各种功能操作的, 它具有程序简捷、占用存储空间小、执行速度快、控制功能强等特点。,汇编语言,用来替代机器语言的进行程序设计的一种语言,由助记符、保留字和伪指令等组成。很容易让人们所识别、记忆和读写。 汇编语言编写出的程序是汇编语言源程序,可由“汇编程序”翻译成机器语言程序(即目标代码)。,汇编程序,容易让人们所识别、记忆和读写, 但不能为机器直接识别执行,001010010101010101010101机器语言程序(即目标代码,机器可以识别执行010101010101)010101010101,高级语
3、言,是面向过程和问题并能独立于机器的通用程序设计语言,是一种接近人们自然语言和常用数学表达式的计算机语言。 高级语言编写的程序是不能被机器直接执行的,但可以被常驻在内存或磁盘上的解释程序或编译程序等编译成目标代码后才能被机器所执行。,独立于机器,可移植性强结构化设计,程序清晰,但是占用存储空间大,编译程序,001010010101010101010101机器语言程序(即目标代码,机器可以识别执行010101010101)010101010101,指令性语句使CPU执行一个具体的操作。 伪指令不要求计算机做任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅是能够帮助进行汇编的一
4、些指令。,4.1.2 汇编语言构成,指令性语句:111条指令的助记符语句。 指示性语句:伪指令语句。,11,常用伪指令 单片机汇编语言程序设计中,除了使用指令系统规定的指令外,还要用到一些伪指令。伪指令又称指示性指令,具有和指令类似的形式,但汇编时伪指令并不产生可执行的目标代码,只是对汇编过程进行某种控制或提供某些汇编信息。下面对常用的伪指令作一简单介绍。,用来指定程序或数据的起始位置; 给出一些连续存放数据的地址; 为中间运算结果保留一部分存储空间; 为源程序中的符号和标号赋值; 表示源程序结束等等。 不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相似的。,伪指令可以,伪指
5、令列表,1、 ORG设置目标程序起始地址伪指令 2、 END结束汇编伪指令 3、 DB定义字节伪指令 4、 DW定义字伪指令 5、 DS预留存储空间伪指令 6、 EQU等值伪指令 7、 DATA数据地址赋值 8、 BIT位地址定义伪指令,14,一、 汇编起始指令 ORG 指令格式为: ORG nn 该伪指令的功能是规定其后面的目标程序或数据块的起始地址。它放在一段源程序(主程序、子程序)或数据块的前面,说明紧跟在其后的程序段或数据块的起始地址就是ORG后面给出的地址。例如: ORG 2000H START:MOV A,#7FH 。,例如: ORG 2000H START:MOV A,#7FH,
6、格式:标号: ORG 地址(十六进制表示),2000H,1FFFH,2001H,机器码:74 7FH,16,二、 汇编结束指令END 指令格式: 标号: END 地址或标号 格式中标号以及END后面的地址或标号可有可无。 功能: 提供汇编结束标志。汇编程序遇到END后就停止汇编, 对 END以后的语句不予处理, 故END应放在程序的结束处。,17,三、等值指令EQU ( Equal ) 指令格式: 字符名称 EQU 数字或汇编符号 功能: 使指令中的字符名称等价于给定的数字或汇编符号。 特别注意: 必须先赋值后使用, 同一个标号只能赋值一次。 例: PA EQU 8001H 即给字符PA赋值为
7、8001H。,书:131页。编程好习惯之一:上下对齐! ORG 0500H AA EQU R1 BB EQU 10H DELAY EQU 07E6H MOV R0, BB ;R0(10H) MOV A, AA ;A R1 LCALL DELAY ;调07E6H子程序,该伪指令的功能与EQU类似,可以将DATA右边表达式的 值赋给左边的字符名称。表达式可以是常数、地址标号或表达式,但不可以是一个汇编符号(如R1等)。 DATA和EQU的主要区别是:EQU中的字符名称是先定义后使用,而DATA中的字符名称没有这种限制。 定义8位数据用DATA,定义16位数据用XDATA。,格式:字符名称 DATA
8、 表达式,格式: 字符名称 EQU 数字或汇编符号,四、数据赋值指令DATA,20,五、 定义字节指令DB 指令格式: 标号: DB 8位二进制数表 功能: 把 8 位二进制数表依次存入从标号开始的连续的存储单元中。 标号区段可有可无, DB指令之后的 8 位二进制数表是一个字节常数或用逗号隔开的字节串, 也可以是用引号括起来的ASCII码字符串 (一个 ASCII字符相当于一个字节)。,ORG 2000H TAB1: DB 30H,8AH, 73 DB 01011010B, 5, A,2000H,2001H,2002H,2003H,2004H,2005H,由于ORG 2000H,所以TAB1
9、的地址为2000H,因此,以上伪指令经汇编后,将对2000H开始的连续存储单元赋值:,;十进制数73以十六进制数存放 ; 01011010B=5AH ;35H是数字5的ASCII码 ;41H是字母A的ASCII码,22,六、 定义字指令DW 指令格式: 标号: DW 16 位数据表 功能:与DB相似, 区别仅在于从指定地址开始存放的是指令中的 16 位数据。每个 16 位数据要占两个存储单元, 高8 位先存, 低 8 位后存, 这和MCS -51指令中的16位数据存放顺序是一致的。,ORG 1500H TAB2: DW 1234H,80H,10,1500H,汇编以后:,1501H,1502H,
10、1503H,1504H,1505H,24,七. 定义空间伪指令DS 格式: 标号: DS 表达式 功能:从指定的地址开始,保留若干个存储单元作为备用的空间。,ORG 1000H SPC:DS 20H DB 30H,8FH,汇编后从1000H开始,预留32(20H)个字节的内存单元,然后从1020H开始,按照下一条DB指令赋值,即(1020H)=30H,(1021H)=8FH。,1000H,1020H,0FFFH,1021H,101FH,26,八、BIT位地址赋值伪指令 格式: 字符名称 BIT 位地址 功能: 把右边的位地址赋给左边的“字符名”。 例如: ORG 0300H A1 BIT 00
11、H A2 BIT P1.0 MOV C,A1 MOV A2,C,4.2 源程序的设计步骤和汇编,设计步骤 1、拟定设计任务书 2、建立数学模型 3、确立算法 4、绘制程序流程图 5、编制汇编语言源程序 6、上机调试,28,单片机汇编语言程序设计的基本步骤如下: (1) 题意分析 (2) 画出程序流程图,熟悉并了解汇编语言指令的基本格式和主要 特点,明确被控对象对软件的要求,设计出算法。,程序流程图也称为程序框图,是根据控制流程 设计的,它可以使程序清晰,结构合理,便于调试。,29,(3) 分配内存工作区及有关端口地址 (4) 编制汇编源程序, 养成在程序的适当位置上加上注释的好习惯。 (5)
12、编译、仿真、调试程序。 (6) 固化程序。,分配内存工作区,要根据程序区、数据区、 暂存区、堆栈区等预计所占空间大小,对片内外 存储区进行合理分配并确定每个区域的首地址, 便于编程使用。,4.2 源程序的设计步骤和汇编,汇编(汇编程序) 源程序 目标码 (汇编语言) (机器语言) 反汇编(汇编程序),汇编和反汇编示意图,4.2 源程序的设计步骤和汇编,汇编 1、人工汇编 2、机器汇编,第一次汇编:翻译机器码 第二次汇编:计算偏移量,人工汇编,4.2 源程序的设计步骤和汇编,汇编 1、人工汇编 2、机器汇编,第一次汇编:翻译机器码 第二次汇编:计算偏移量,机器汇编,汇编 软件,汇编源程序,目标代
13、码(机器语言),4.3.1 简单程序设计 4.3.2 分支程序设计 4.3.3 散转程序设计 4.3.4 循环程序设计 4.3.5 查表程序设计 4.3.6 子程序设计和参数传递,4.3 汇编语言程序设计,例 1 两个无符号双字节数相加。 设被加数存放于内部RAM的40H(高位字节), 41H(低位字节), 加数存放于50H(高位字节), 51H(低位字节), 和数存入 40H和41H单元中。,4.3.1 简单程序设计,没有分支、顺序执行的程序,+,CY,ORG 0000H LJMP MAIN ORG 0100H MAIN: CLR C ; 将Cy清零 MOV R0, 41H ; 将被加数地址
14、送数据指针R0 MOV R1, 51H ; 将加数地址送数据指针R1 AD1: MOV A, R0 ; 被加数低字节的内容送入A ADD A, R1 ; 两个低字节相加 MOV R0, A ; 低字节的和存入被加数低字节中 DEC R0 ; 指向被加数高位字节 DEC R1 ; 指向加数高位字节 MOV A, R0 ; 被加数高位字节送入A ADDC A, R1 ; 两个高位字节带Cy相加 MOV R0, A ; 高位字节的和送被加数高位字节 SJMP $ END,R0,R1,例 2 将两个半字节数合并成一个一字节数。 设内部RAM 40H, 41H单元中分别存放着 8 位二进制数, 要求取出
15、两个单元中的低半字节, 并成一个字节后, 存入 50H单元中(从40H单元取的数放在高4位,从41H单元取的数放在低4位)。,40H,41H,50H,ORG 0000H LJMP START ORG 0100H START: MOV R1, 40H ; 设置R1为数据指针 MOV A, R1 ; 取出第一个单元中的内容 ANL A, 0FH ; 取第一个数的低半字节 SWAP A ; 移至高半字节 INC R1 ; 修改数据指针 XCH A, R1 ; 取第二个单元中的内容 ANL A, 0FH ; 取第二个数的低半字节 ORL A, R1 ; 拼字 MOV 50H, A ; 存放结果 SJM
16、P $ END,40H,41H,50H,分支结构框图 (a) 单分支流程 (b) 多分支流程,4.3.2 分支程序设计,例 设x存放在内部RAM 的30H单元中,结果y存 入31H单元.,ORG 2000H START: MOV A, 30H ;AX JZ LP2 ;X=0转移 JNB ACC.7, LP1 ;X0转移 MOV A, #0FFH ;X0则Y=1 LP2: MOV 31H, A ;31HY END,散转程序是分支程序的一种, 它可根据运算结果或输入数据将程序转入不同的分支。,4.3.3 散转程序设计,4.3.3 散转程序设计,指令:JMP A+DPTR,特点: 由 DPTR的内容
17、决定分支转移程序的首地址, 由累加器 A的内容来动态选择其中的某一个分支转移程序。,N=128的分支程序。已知R3的值为00H7FH中的一个,请编出根据R3中的值转移到相应分支程序的程序。,指令0,指令1,指令127,TAB+00H,+01H,+02H,+03H,+FEH,+FFH,设散转指令表首地址为: TAB,赋给DPTR 各子程序入口地址为: ROUT00ROUT127,ROM,JMP A+DPTR,R3=0,跳转到TAB处执行分支0,R3=1,跳转到TAB+2处执行分支1,R3=127,跳转到TAB+254处执行分支127,P141 例4.6,ORG 0100H MOV A,R3 ;R
18、3A RL A ; AA2 MOV DPTR, #TAB ;表首地址送DPTR JMP A+DPTR ;根据A值转移 TAB: AJMP ROUT00 ;当(R3)=0时转ROUT00执行 AJMP ROUT01 ;当(R3)=1时转ROUT01执行 AJMP ROUT127 ;当(R3)=127时转ROUT127执行 ROUT00: ROUT01: ROUT127: END,4.3.4 循环程序设计,循环程序一般由四个主要部分组成: (1) 初始化部分: 为循环程序做准备, 如规定循环次数、 给各变量和地址指针预置初值。 (2) 处理部分: 为反复执行的程序段, 是循环程序的实体, 也是循环
19、程序的主体。 (3) 循环控制部分: 这部分的作用是修改循环变量和控制变量, 并判断循环是否结束, 直到符合结束条件时, 跳出循环为止。 (4) 结束部分: 这部分主要是对循环程序的结果进行分析、 处理和存放。,4.3.3 循环程序设计,先处理后判断,先判断后处理,一、 单重循环,例 工作单元清零。 在应用系统程序设计时, 有时经常需要将存储器中部分地址单元作为工作单元, 存放程序执行的中间值或执行结果, 工作单元清零工作常常放在程序的初始化部分中。 设有50个工作单元, 其首址为外部存储器8000H单元, 则其工作单元清零程序如下:,CLEAR: CLR A MOV DPTR, 8000H
20、; 工作单元首址送指针 MOV R2, #50 ; 置循环次数 CLEAR1: MOVX DPTR, A INC DPTR ; 修改指针 DJNZ R2, CLEAR1 ; 控制循环 RET,先处理后判断,例 设在内部RAM的BLOCK单元开始处有长度为LEN个的无符号数据块, 试编一求和程序, 并将和存入内部RAM的SUM单元(设和不超过8 位)。,BLOCK EQU 20H SUM EQU 19H LEN EQU 05H START: CLR A ; 清累加器A MOV R2, LEN ; 数据块长度送R2 MOV R1, BLOCK ; 数据块首址送R1 LOOP: ADD A, R1
21、; 循环加法 INC R1 ; 修改地址指针 DJNZ R2, LOOP ; 修改计数器并判断 MOV SUM, A ; 存和 RET,先处理后判断,1、上述程序属先处理后判断。 2、当LEN0时,将出错。 改正办法:先判断后处理。,说明:,课后思考,本题若采用先处理后判断的控制,如何修改可以避免LEN=0的错误?,50,采用多重循环程序, 即在一个循环体中又包含了其它的循环程序, 这种方式是实现延时程序的常用方法。 使用多重循环时, 必须注意: (1) 循环嵌套, 必须层次分明, 不允许产生内外层循环交叉。 (2)外循环可以一层层向内循环进入, 结束时由里往外一层层退出。,二、 多重循环,5
22、1,双重循环程序设计延时程序设计 延时程序在单片机汇编语言程序设计中使用非常广泛,所谓延时,就是让CPU做一些与主程序功能无关的操作(例如将一个数字逐次减1直到为0)来消耗掉CPU的时间。 由于我们知道CPU执行每条指令的准确时间,因此执行整个延时程序的时间也可以精确计算出来。也就是说,我们可以写出延时长度任意而且精度相当高的延时程序。,52,例:单片机外接晶振频率12MHZ时的各种时序单位: 振荡周期=1/fosc=1/12MHZ=0.0833us 机器周期=12/fosc=12/12MHZ=1us 指令周期=(14)机器周期=14us,53,例:单片机外接晶振频率6MHZ时的各种时序单位:
23、 振荡周期=1/fosc=1/6MHZ=0.1666us 机器周期=12/fosc=12/6MHZ=2us 指令周期=(14)机器周期=28us,例 10 秒延时程序。 延时程序与 MCS - 51 执行指令的时间有关, 如果使用 6 MHz晶振, 一个机器周期为 2 s, 计算出一条指令以至一个循环所需要的执行时间, 给出相应的循环次数, 便能达到延时的目的。10 秒延时程序如下:,DELAY: MOV R5, 50 DEL0: MOV R6, 200 DEL1: MOV R7, 248 DEL2: DJNZ R7, DEL2 DJNZ R6, DEL1 DJNZ R5, DEL0 RET,
24、1 1 1 2 2 2 2,延时时间4,990,1502 9,980,300 s,10S10,000,000 uS 误差19700 uS19.7mS,周期数(2482)12)20012)5012 4990150,指令执行周期数,查表程序是一种常用程序, 它广泛使用于LED显示控制、 打印机打印控制、数据补偿、数值计算、转换等功能程序中, 这类程序具有简单、执行速度快等特点。 所谓查表法, 就是预先将输入变量X与函数值Y之间关系的一张表求出, 然后把这张表存于单片机的程序存储器ROM中,根据变量X在表格中查找对应的函数值Y, 使Y=f(X)。,4.3.5 查表程序设计,两条查表指令:,MOVC
25、A, A+DPTR,MOVC A, A+PC,1、确定数据表格首地址DPTR 2、确定偏移量ACC 3、用 MOVC A, A+DPTR 查表取数,1、确定偏移量ACC 2、完成偏移量修正:ADD A,data 3、用 MOVC A, A+PC 查表取数,使得:PCdata数据表首地址 PC值为执行完MOVC A,A+PC后的PC值,两条查表指令:,MOVC A, A+DPTR,MOVC A, A+PC,1、确定数据表格首地址DPTR 2、确定偏移量ACC 3、用 MOVC A, A+DPTR 查表取数,1、确定偏移量ACC 2、完成偏移量修正:ADD A,data 3、用 MOVC A, A
26、+PC 查表取数,使得: PCdata数据表首地址 PC值为执行完MOVC A,A+PC后的PC值,TAB:,ROM,58,例 在程序中定义一个09的平方表,利用查表指令找出20H 单元内容的平方值,保存到21H。,查表程序的关键是表格的定义和如何实现查表。 SHU EQU 20H ORG 0100H MOV DPTR,#TABLE ;表首地址DPTR MOV A,SHU ;SHUA MOVC A,A+DPTR ;查表指令 MOV SHU+1,A ; ASHU+1 SJMP $ ;程序暂停 TABLE: DB 0,1,4,9,16,25,36,49,64,81;定义09平方表 END,一个十六
27、进制数存放在内部 RAM 的HEX单元的低 4 位中, 将其转换成ASCII码并送回 HEX+1单元。,十六进制 09的ASCII码为:30H39H AF的ASCII码为:41H46H, 设ASCII码表格的首地址为:ASCTAB,要求用 MOVC A, A+PC 指令实现,查表程序的关键是表格的定义和如何实现查表。,程序中, 查表指令MOVC A, A+PC到表头之间相隔2条指令, 占用 3 个字节, 故修改指针数据data= 3。,ORG 1000H HEXASC: MOV A, HEX ANL A, 0FH ADD A, data ; 修改指针 MOVC A, A+PC ;指令码 83H
28、 MOV HEX+1, A ;指令码 F5,HEX+1 RET ;指令码 22H ASCTAB: DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H DB 46H,表头,待具体指令确定后再求data,ROM,通常把一些基本操作功能编制为程序段作为独立的子程序, 以供不同程序或同一程序反复调用。,4.3.6 子程序和参数传递,一、 子程序的概念,注意:,子程序的第一条指令地址称为子程序的起始地址或入口地址,该指令前必须有标号,标号一般以子程序任务命名。,二、 子程序的调用和返回,(PC)
29、(PC)3 (SP)(SP)1 (SP)(PC70) (SP)(SP)1 (SP)(PC815) (PC)addr16,LCALL arrd16,(PC)(PC)2 (SP)(SP)1 (SP)(PC70) (SP)(SP)1 (SP)(PC815) (PC)addr11,ACALL arrd11,(PC815)(SP) (SP)(SP)-1 (PC70)(SP) (SP)(SP)-1,RET,SP,SP1,SP2,RAM,ROM,PC,PC+3,(PC+3)_H,(PC+3)_L,SP1,SP1,SP,RAM,(PC)_H,(PC)_L,参数传递,利用寄存器或片内RAM传递参数 利用寄存器传
30、递参数的地址 利用堆栈传递参数 利用位地址传递参数,子程序调用中, 主程序应先把有关的参数存入约定的位置, 子程序在执行时, 可以从约定的位置取得参数, 当子程序执行完, 将得到的结果再存入约定的位置, 返回主程序后, 主程序可以从这些约定的位置上取得需要的结果, 这就是参数的传递。,例4.16 P156,求:ca2b2 ,设a10,b10,MDA,MDB,MDC,ORG 1000H MDADATA 20H MDBDATA 21H MDCDATA 22H MOV A, MDA ACALL SQR MOV R1,A MOV A, MDB ACALL SQR ADD A,R1 MOV MDC,A
31、SJMP $,本例利用ACC传递参数,SQR:ADD A,#01H MOVC A,A+PC RET ;字节数1 SQRTAB: DB 0,1,4,9,16,25,36,48,64,81 END,作业(OLD),4.1 4.24.3 4.13 4.174.23,作业(NEW),本章小结,1. 汇编语言的语句结构由4个部分组成:标号:操作码 (目的操作数),(源操作数);注释。其中标号是指令的符号地址;操作码表示指令的操作功能,它是汇编语言指令中唯一不可缺省的部分;操作数是参加操作的数据或数据地址;注释是指令功能的说明。在汇编语言指令中,除操作码之外,其它3个部分有时可缺省。,2.用汇编语言编写的
32、源程序不能为单片机所接受,必须将其转换为由二进制代码组成的目标程序后才能被单片机识别和执行。完成汇编任务有手工汇编和机器汇编两种方法。了解手工汇编、计算偏移量及转移地址的方法有助于进一步理解汇编语言程序设计。,3.分析问题,确定算法或解题思路、画流程图、编写源程序,是程序设计中最关键的几步。其中确定设计方案,是程序设计的基础;采用由各种图形、符号及指向线来说明程序执行过程的流程图能充分表达程序的设计思路,可帮助设计程序、阅读程序和查找程序中的错误;用汇编语言指令实现流程图的每一个具体步骤,也即编写出具体的汇编语言源程序是能否充分发挥单片机各种优越功能的关键所在。,4. 用汇编语言编写的程序主要由顺序结构、分支结构和循环结构组成。其中顺序结构程序是指按顺序依次执行指令的程序,这类程序虽然比较简单,但却是构成各种复杂程序的基础;在实际应用中,经常会遇到根据程序要求而改变程序顺序的分支程序设计。分支程序设计又可分为无条件和有条件分支程序设计两类;循环程序是一种特殊形式的分支程序,广泛用于需要多次反复执行某种相同的操作。采用循环程序可以优化程序设计,如缩短程序长度,减少程序所占内存空间等。,思考题与习题,4.1 程序设计主要分为哪几种?各有什么特点? 4.2 汇编语言程序设计分哪几个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高效节能的自动化控制解决方案
- 麻醉科围术期护理基础知识
- 偏瘫患者转移科普
- 2026上半年北京事业单位统考市经济和信息化局招聘6人备考题库附参考答案详解(b卷)
- 昆虫记科普阅读
- 2026广东岭南国防教育基地仓库管理员招聘备考题库(研优卷)附答案详解
- 抗精神失常药物概述
- 中国市政中南院2026届春季校园招聘备考题库含答案详解【能力提升】
- 2026春季中国工商银行平台金融发展中心校园招聘10人备考题库带答案详解(培优a卷)
- 2026中国航天科工集团空间工程总体部成熟人才招聘备考题库(历年真题)附答案详解
- 《肠造口并发症的分型与分级标准(2023版)》解读
- 入职心理测试题目及答案300道
- JTG F90-2015 公路工程施工安全技术规范
- 2024年湖南出版投资控股集团招聘笔试参考题库含答案解析
- 15ZJ001 建筑构造用料做法
- 员工工资条模板
- YY/T 1856-2023血液、静脉药液、灌洗液加温器安全通用要求
- 铣刨加罩道路工程施工组织设计方案
- 小学德育分年段
- GB/T 13202-2015摩托车轮辋系列
- windows系统安全机制1课件
评论
0/150
提交评论