




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第5章 汇编语言程序设计 概述 顺序程序设计 分支程序设计 循环程序设计 子程序设计 2 5 1 概述 汇编程序中的语句 编写汇编程序的一般步骤 3 一 汇编程序中的语句 汇编语言由指令和语法规则组成 汇编语言由指令和语法规则组成 指令包括汇编指令 伪指令和宏指令 皆采用 助记符表示 汇编语言的语句结构汇编语言的语句结构 通常由四个部分组成 标号 操作码 操作数 和注释 LOOP1 ADD AX BX AX AX BX 标号操作码操作数注释 4 二 编制汇编程序的步骤 建立数学模型 确定算法建立数学模型 确定算法 设计程序流程图设计程序流程图 安排寄存器和内存空间安排寄存器和内存空间 编制源程序编制源程序 上机调试并运行程序上机调试并运行程序 5 5 2 顺序程序设计 顺序程序的概念 顺序程序设计示例 6 一 顺序程序的概念 顺序程序顺序程序是指没有分支的程序 这种程序 的特点是顺序逐条从头至尾的执行指令 顺序程序也称简单程序 它是最基本的程 序形式 7 二 顺序程序设计示例 例 5 1 例 5 2 例 5 3 例 5 4 注 假定已用伪指令定义了AX BX CX 和DX等寄存器 且AX由AL 低字节 和 AH 高字节 组成 BX由BL和BH组成 等 还可根据具体情况将AX等寄存器视为 双字寄存器 32位 8 例 5 1 字节加法 将存在于3000H和 3001H两个单元中的无符号8位数相加 结果存入3002H单元 设和数仍为8位数 解 开始 取被加数至内部寄存器 两数相加 存放求和结果 结束 9 例 5 1 算法1 ORG 2080H 程序代码从2080H 处开始存放 START LDB 20H 3000H 0 取被加数至寄存器 20H单元 ADDB 20H 3001H 0 求和 结果置于 20H单元 STB 20H 3002H 0 存放和数于3002H 单元 HERE SJMP HERE 原地循环 END 伪指令 表示汇 编结束 10 例 5 1算法1 地址码机器码状态周期 2080H B301003020 13T 2085H 7701013020 13T 208AH C701023020 13T 208FH 27FE 8T 11 例 5 1算法1 注 第五条指令即最后一条汇编指令为跳转至本 身的短跳转指令 这表明程序将循环不已地执行 该指令 仿佛程序暂停于此 这是因为在MCS 96指令系统中无暂停指令 执行这条指令与执行 一条暂停指令的效果相同 否则CPU将会顺序取 出后续单元中的随机数当作指令执行 而寻致错 误的结果 占用2080H 2090H这一地址空间 共17个字 节 执行需44T 每一期状态周期 因此该程序的执行时间为 12 例 5 1算法2 ORG 2080H START LD 24H 3000H 建立地址指针 5T LDB 20H 24H 取被加数12T ADDB 20H 24H 求和12T STB 20H 24H 存和数至3002H单元 11T HERE SJMP HERE 原地循环8T END 执行时间 48T 占存储单元 15 13 例 5 1算法2 地址码机器码 2080H A1003020 2084H B32520 2087H 762520 208AH C62420 208DH 27FE 14 例 5 2 单字节求和 将存于3400H 3402H三个单元中的无符号8位数相 加 其和存入3500H单元 解 需进行三个数的连续相加 题中并未 指明和数仍是8位数 因此需考虑每次两数 相加后的进位 这表明若考虑一般情况 求和的结果需用两个单元存放 15 例 5 2 算法1 START 建立地址指针建立地址指针 AX清零 用以存放求和结果 送第一数至 清零 用以存放求和结果 送第一数至AL AL 第二数 第二数 AL 第一次求和的进位位 第一次求和的进位位 AH AL 第三数 第三数 AL AH 第二次求和进位位 第二次求和进位位 AH 存结果存结果 END 16 例 5 2 算法1 ORG 2080H START LD BX 3400H 建立地址指针 XOR AX AX AX清零 以存放和数 LDB AL BX 3400H AL BX 3401H ADDB AL BX AL 3401H AL BX 3402H ADDCB AH 00H 加第一次求和的进位位 ADDB AL BX AL 3402H AL ADDCB AH 00H 加第二次求和的进位位 ST AX 3500H 0 存结果至3500H单元 HERE SJMP HERE END 17 例 5 2 算法2 ORG 2080H SUMM CLR AX AX清零 CLR BX BX清零 LDB AL 3400H 0 取第一个操作数 LDB BL 3401H 0 取第二个操作数 ADD AX BX 第一个数和第二数相加 LDB BL 3402H 0 取第三个操作数 ADD AX BX 完成三个数的加法 ST AX 3500H 0 存和 THERE SJMP THERE END 18 例 5 3 双字加法 已知AX BX寄存器 中存有一无符号双字 其中AX中为高16 位 BX中为低16位 另一双字存于存储 器3010H 3013H单元中 现将两双字 相加 结果存于3020H开始的单元中 解 MCS 96指令系统中无双字加法指 令 因此双字加法运算需通过两次字加法 操作完成 且应考虑每次加法所产生的进 位 即低16位相加后向高一位 第17位 产生 的进位和高16位相加后向高一位 第33位 所 产生的进位 不难看出 相加的结果需用5 个字节存放 在程序中用6个字节存放结 果 19 例 5 3 START 建立地址指针 低 建立地址指针 低16位位 低字低字 相加 高 相加 高16位位 高字高字 相加 存放结果 相加 存放结果 END 20 例 5 3 ORG 2080H DOUWOD LD CX 3010H 指向加数低字 LD DX 3020H 指向结果的存放地址 ADD BX CX 两数低字相加 ST BX DX 存低位字之和 不影响标志位 ADDC AX CX 高位字相加并加上低位字 之和的进位 ST AX DX 存高位字之和 LD BX 00H BX清零 以存放高位字之 和的进位 ADDC BX 00H 高位字之和的进位 BX ST BX DX 存高位字之和的进位 HERE SJMP HERE END 21 例 5 4 拆字 将3080H单元中的数字予 以分解 将该数的低4位存入3081H单元 的低4位 该数的高4位存入3082H单元 的低4位 且3081H和3082H两单元的高 4位均为零 试设计该程序 解 题中任务是将一数分解成两部分后分 别存于两个单元 22 例 5 4START 建立地址指针 取数至 建立地址指针 取数至AL 屏蔽该数高四位 低四位 屏蔽该数高四位 低四位 3081H 原数逻辑右移原数逻辑右移4次 高 次 高4位 位 3082H END 23 例 5 4 ORG 2080H DISDYT LD BX 3080H 建立地址指针 LDB AL BX 取数 字节 LDB AH AL 保存该数 AH ANDB AL 0FH 屏蔽高4位 STB AL BX 存低4位 SHRB AH 04H 高4位逻辑右移4次 STB AH BX 存高4位 THERE SJMP THERE END 0 24 例 5 4 注意 逻辑右移指令是将寄存器内的数向 右移出 每移一位 左端 最高位 以0填 充 移位4次后便将原数高4位移至低4位 且寄存器的高4位为零 若3080H的数为 8AH 则程序执行后 3081H中为0AH 3082H中为08H 0SHRB 25 5 3 分支程序设计 分支程序的概念 单重分支程序 多重分支程序 26 一 分支程序的概念 分支程序 具有两个或两个以上流向的程序 程序运行时 CPU 并非按序逐条执行指令 而是在程序的某处 称为分支 点 根据一定的条件产生跳转 去执行另一处的程序 段 分支程序通常由条件转移指令实现 也可由位测试 并跳转指令实现 特点 一条条件转移语句可产生一个分支 程序的分支实际上需由两条指令产生 例如一条是能 影响某种状态标志的指令 下一条便是条件转移指 令 27 二 单重分支程序 单重分支程序 只有一个分支的程序 例 5 5 判断两无符号数的大小 在3060H和 3061H单元中存放有两个无符号的8位数 现需决定它们的大小 并将较大者置于 3060H单元之中 28 例 5 5 START 建立地址指针 两数比较 3060H 3061H 两数位置互换 END Y N 29 例 5 5 ORG 2080H COMP LD BX 3060H 建立地址指针 LDB AL BX 取第一操作数 AL 3060H CMPB AL BX 两数比较 JC HERE 3060H 3061H 则跳转 LDB AH BX 第二操作数 大数 AH STB AL BX 小数 3061H单元 STB AH 3060H 0 大数 3060H单元 HERE SJMP HERE END 30 0 9 30H 39H A F 41H 47H 41H 30H 07H 17 7 0AH 例 5 6 将一个ASCII数转换为16进制数 AL EQU 20H ORG 2080H SUBB AL 30H CMPB AL 9 JLE NEXT SUBB AL 7 NEXT END 31 三 多重分支程序 例 5 6 在3400H和3401H单元中存放着两个无符 号的8位数 现比较它们的大小 1 若两者相 等 3400H 3401H 则 3402H 0 2 若 3400H 3401H 单元中的数 则 3402H 01H 且在3403H中存放两数之差 3 3400H 3401H 01H 3402H 建立地址指针 Y 0FFH 3402H 两数之和 3403H Y N N 00H 3402H 33 例 5 7 ORG 2080H TEST LD BX 3400H 建立地址指针 LDB AL BX 3400H AL BX 1 BX CMPB AL BX 两数比较 JE SETZE 两数相等 则转移 JNC TWOADD C为0有借位 3400H 3401H 则转移 SUBB AL BX 3400H 3401H AL LDB AH 01H STB AH BX 01H 3402H单元 STB AL BX 两数之差 3403H单元 SJMP HERE 34 例 5 7 SETZE SUBB AL BX 相等的数相减00H AL STB AL BX 00H 3402H单元 SJMP HERE TWOADD ADDB AL BX 两数相加 LDB AH 0FFH STB AH BX 0FFH 3402H单元 STB AL BX 两数之和 3403H单元 HERE SJMP HERE END 35 5 4 循环程序设计 循环程序的概念 循环程序的一般结构 一般循环程序的设计 多重循环程序的设计 36 一 循环程序的概念 循环程序循环程序 把需要重复执行的指令按一定的格式编写为一 段程序并反复执行 将简化程序的书写 节省 内存单元 这种程序称为循环程序 特点 使程序变得简练 从而节省存储空间 循环程序并不能节省执行时间 它的执行速度 比顺序程序还要稍慢一些 37 二 循环程序的一般结构 初始化部分 为程序循环作准备 包括设置循环计数器 建立地址指针 以及设置一些变量的初值等工作 循环体部分 这一部分是循环程序的基本工作部分 由需反复执行的那 部分指令组成 它是循环程序的主体部分 完成循环程序 的基本工作任务 循环修改部分 修改循环体中的变量 地址指针 循环计数等 循环控制部分 该部分的作用是实现对循环的判断和控制 根据循环控制 条件判断循环是否完成 结束部分 处理程序运行的结果 38 循环程序结构 DO UNTIL结构DO WHILE结构 先执行循环体 先判断循环控制条件 再判断循环控制条件 再执行循环体 开始 循环准备 循环体 循环修改 满足循环 控制条件 退出循环 Y N 开始 循环准备 循环体 循环修改 满足循环 控制条件 Y N 退出循环 39 三 一般循环程序的设计 用计数器控制循环的程序 按问题的条件控制循环的程序 用逻辑尺控制分支的循环程序 40 1 用计数器控制循环的程序 这种循环程序的循环次数由一个称为计数 器的寄存器加以控制 在程序的初部分应 将计数器置数 即把循环次数送入该计数 器 例 5 7 将内存连续100个单元中存放的无符 号8位数相加 该组数据的起始地址为 3400H 相加的结果存放于3500H和3501H 单元 41 例 5 7 START 建立地址指针 第一个数 送入AL 置循环计数初值 地址指针增1 两数求和 AL存结果的低8位 AH存求和结果的高8位 是否已加完100个数 即判断BL 0 存放和数 3500H END N Y 42 ORG 2080H START LD CX 3400H 建立地址指针 LDB AH 00H AH清零 以存放和数高8位 LDB AL CX 第一个数 AL 地址指针增1 LDB BL 63H 送计数器初值 十进制数99 CLRC LOOP ADDB AL CX 两数相加 地址指针增1 ADDCB AH 00H 加进位位 DJNZ BL LOOP 判是否加完100个数 否则转移 ST AX 3500H 0 存求和结果 HERE SJMP HERE END 例 5 7 43 例 5 8 试编写双字求补程序 设需求补 的双字置于3000H单元中 求补的结果 存回原单元 解 在8098的指令系统中只有字节型和字型数的 求补指令 若对双字求补 则需编制一段程序完 成 求补有多种算法 一种算法是根据补码的定义 之一 对需求补的数X进行 变反加1 的运算 另 一种算法是根据算式 X 补 0 X 进行计算 即用数 0减去X 在不计及最高位借位的情况下 所得之 差即为需求之结果 现根据后一算法编写出如下的 双字求补程序 44 例 5 8 ORG 2080H LD CX 3000H 建立地址指针 LDB BL 02H 设置循环计数器 SETC 进位标志置1 为第一次减 法作准备 LOOP CLR DX 被减数0 DX SUBC DX CX 0 双字的低字或高字部分 ST DX CX 回送结果 DJNZ BL LOOP 若未减双字的高字部分则返回 HERE SJMP HERE 45 例 5 9 试编制延时1ms的程序 设系统晶 振荡频率为12MHz 解 延时 在实际问题中 常需在处理两个不 同的任务之间加入一段时间间隔 称为延 时 延时程序 CPU执行一段程序 该程序段 执行时 除 消除 一定的时间外 并不做其 它有实际意义的工作 这一程序称为延时 程序 46 例 5 9 ORG 2080H START LDB AL EAH 置循环次数 4T LOOP NOP 延迟4T NOP 延迟4T DJNZ AL LOOP 循环次数末到则跳转 若跳转需9T 其它为5T HERE SJMP HERE 47 例 5 9 循环次数的计算 NOT指令的执行需4T DJNZ AL LOOP指令 执行时 若跳转需9T 则循环一次需 4T 4T 9T 17T 因fs 12MHz 状态周期T 1 4M 0 25 s 于是循环 次数为 48 2 按问题的条件控制循环的程序 例 5 10 从内存单元3400H开始的连续100 个单元中存放有一串8位数据 现需从中找 出第一个数值为20H的数据 若找到则将其 地址送3500H 否则将3500H置为00H 解 该程序实际用两种方式控制循环 即由问题 的条件控制循环和用计数器控制循环 另外在此 循环程序中有两个分支 这种程序形式称为带分 支的循环程序 49 例例 5 10 START 建立地址指针 待找字符 AL 字符串大小 CL 将存储单元中数与AL比较 是否找到所需字符 是否找完100单元 将3500H置为00H END 存数据20H所在的地址 Y Y N N 50 例例 5 10 ORG 2080H START LD BX 3400H 建立地址指针 指向数据 串的起始地址 LDB CL 64H 数据个数 CL LDB AL 20H 待长字符 AL LOOP CMPB AL BX 判断是否找到第一个20H JE SEDADD 已找到 则转移 否则执行 下一指令 DJNZ CL LOOP 若未找完100个单元 则继 续查找 STB CL 3500H 0 将3500H置为00H SJMP HERE 51 例例 5 10 SEDADD DEC BX 地址指针减1 ST BX 3500H 0 存放数据20H所在的 单元地址号 HERE SJMP HERE 52 3 用逻辑尺控制分支的循环程序 例 5 11 从3200H单元开始存放着16个无符号的8位 数 现需将其中的3201H 3203H 3204H 3209H 320BH等5个单元中的内容乘2 其余单元 中的内容除2后仍存回单元 假定各单元中的数值 处理后仍为单字节数 解 将该寄存器的各位按序与各存储单元对应 如 D0位对应3200H单元 D1位对应3201H单元 若 作乘2处理 则该寄存器的对应位置为1 若作除2 作理 则对应位置为0 这样该寄存器的内容为 0A1AH 这个决定外理方式的寄存器称之为 逻辑逻辑 尺尺 53 例例 5 11 ORG 2080H LDB BL 10H 置循环计数器 LD CX 0A1AH 设置逻辑尺 LD DX 3200H 建立地址指针 LOOP LDB AL DX 取数 SHR CX 01H 逻辑尺逻辑右移一次 输出位 进入C标志 JC MLT12 转作乘2处理 SHRB AL 01H 除2运算 SJMP STORE 转存放结果处理 54 例例 11 MLT12 SHLB AL 01H 乘2运算 STORE STB AL DX 存放运算结果 INC DX 指向下一单元 DJNZ BL LOOP 判是否处理完16个数据 若否 则转换 HERE SJMP HERE 暂停 END 55 四 多重循环程序的设计 多重循环程序的概念 多重循环程序示例 56 1 多重循环程序的概念 多重循环程序多重循环程序 循环嵌套 指循环中套有循环的 程序 57 2 多重循环程序示例 例 5 12 试编制延时0 1s的程序 解 若需延时0 1s 只需将延时1ms的程序循环 执行100次便可 内循环 小循环 实现1ms延时 外循环 大循环 完 成0 1s的延时 AL用作内循环计数器 BL用作外 循环计数器 58 例例 12 START 设置计数器BL 设置计数器AL AL 1 是否延时1ms BX 1 是否延时0 1s END N Y Y N 59 例例 6 12 ORG 2080H START LD BL 64H BL置初值 4T 外循环次 LOOP LDB AL EAH AL置初值 内循环次数 LOPP1 NOP 4T NOP 4T DJNZ AL LOPP1 是否延时1ms 若否 则内循环 若跳转需9T DJNZ BL LOOP 是否延时0 1s 若否 则外循环 若跳转需9T HERE SJMP HERE 60 例 5 13 将从3200H单元开始连续放的 100个单元中的无符号数按降序 即自大到 小的顺序 排列 重新排序后的数串仍存 放在原来的内存区域中 解 设计思路设计思路 冒泡 程序 将问题分两步解决 先依次将相邻两单元内的数据进 行比较 若非降序排列 则将相邻两单元内容对调 设有N个数 则比较N 1次后 数串中的最小数已被 调换到数组中最后一个单元中 这一依次比较相邻两 单元的过程用一循环程序完成 然后进行第二步工 作 即把上述逐次比较两单元的过程重复执行N 1次 便可将整个数串按降序排列好 61 例例 5 13 END Y START 送数串的首地址 DX 设置内循环计数器 设置外循环计数器 外循环次数到否 内循环次数到否 AL DX 修改地址指针 DX 1 DX 交换相邻单元中存放的数据 取数 DX AL Y N N N Y 62 例例 5 13 ORG 2080H START LDB BL 63H BL作外循环计数器 比较99次 LOOP LDB CL 63H CL作内循环计数器 LD DX 3200H 数串首地址 DX LOOP1 LD EX DX 保存地址指针 LDB AL DX 取数 AL CMPB AL DX 相邻两单元数比较大小 JC NOEXCH 若AL DX 则不交换 LDB AH DX 交换相邻两单元中的数 STB AL DX STB AH EX 63 例例 5 13 NOEXCH DJNZ CL LOOP1 若内循环未结束 则返回 DJNZ BL LOOP 若外循环未结束 则返回 HERE SJMP HERE END 64 例例 5 13 注注 第一轮内循环在进行99次循环后 已将数组中 的最小数送至最后一个单元 因此第二轮内循环时 无需将此单元计入 即比较循环次数为98次 依 此推理 最后一轮内循环只需进行一次循环 因此可将程序的第二条语句 LOOP LDB CL 63H 改为 LOOP LDB CL BL 内循环的总循环次数由99 99次减少为99 50次 这表明程序的执行时间减少一半 65 5 5 子程序设计 子程序的概念 子程序设计要点 子程序编写示例 66 一 子程序的概念 什么是子程序 子程序的调用与返回 有关子程序的两个概念 67 1 什么是子程序 在程序设计的过程中 经常会遇到在程序的 不同部位需进行相同的操作或运算的情况 把这种程序中多次出现的程序段按一定的格 式编写面相对独立的程序段 在需用到该程 序段的地方用一条所谓的调用指令来代替 它 即一条指令等同于若干条指令的作用 这一相对独立的程序段称为 子程序子程序 调用 它的程序则对应地称作 主程序主程序 特点 简化程序的书写 节省存储空间 但 并不能减少主程序的运行时间 68 2 子程序的调用与返回 1 调用指令 CALL 返回指令 RET 使程序的运行由子程序返 回到主程序 长调用 LCALL 调用范围是整个内存空间 短调用 SCALL 调用范围是以调用指令所在 单元为中心的 1024 1023 这一区域 共2K的内存空 间 69 2 子程序的调用与返回 2 调用过程 首先将主程序的断点地址 返回地址 即调用指 令后面第一条指令的地址 压入堆栈 而后将子程序的地址 入口地址 即子程序第一 条指令的地址 赋予程序计数器PC 则程序的 执行即转向子程序 子程序结束时 CPU执行返回指令 该指令的 作用是将原堆栈中的断点地址送至PC 则程序 的运行返回到主程序 继续执行调用指令后面 的指令 70 2 子程序的调用与返回 3 主程序主程序 子程序 子程序调用示意图 71 3 有关于程序的两个概念 1 子程序嵌套 一子程序调用另一子程序的过程称为子程序嵌 套 实际中可使用多重子程序嵌套 主程序主程序 子程序 1 子程序 1 子程序 2 72 3 有关于程序的两个概念 2 子程序递归调用 子程序调用其本身的过程称为子程序递归调 用 简称为递归 主程序主程序 73 二 子程序设计要点 第一条语句前必须具有标号 子程序的最后应以返回指令 RET指令 结尾 在主程序中设置堆栈 保护和恢复现场 力求使子程序简练 高效 实用 对子程序加以说明 74 1 第一条语句前必须具有标号 此语句前的标号可视为子程序名 在主程 序中作为调用指令的操作数以实现子程序 调用 75 2 子程序的最后应以返回指令 RET 结尾 RET指令的作用是将断点地址送到PC 保 证 正确地返回主程序 76 3 在主程序中设置堆栈 若需调用子程序 则系统中肯定需要使用 堆栈 这是因为断点地址被保护至堆栈 因此调用之前 应在主程序中设置栈底 且应在程序执行的过程中对栈顶的变化规 律做到心中有数 以免造成混乱及错误 77 4 保护和恢复现场 1 保护现场 需对主程序中有关的寄存器和存储单元的内容 加以保护 倘这些寄存器和存储单元在了程序 中也需使用的话 这称之为保护现场 恢复现场 是保护现场的逆操作 其目的是将已予保护的 内容送回原寄存器和存储单元 78 4 保护和恢复现场 2 子程序开始 保护现场 恢复现场 返回指令RET 79 5 力求使子程序简练 高效 实用 由于子程序的执行次数较多 因此对子程 序的编写有较高的要求 应使子程序尽量 精炼 占用字节数少 所使用的寄存器和 内存单元少 执行速度快 80 6 对子程序加以说明 说明包括 子程序名 子程序功能 子程序入口地址 其使用的寄存器和存储单元 子程序入口参数 调用前需提供的数据 状 态及提供的方法 子程序出口情况 处理的结果置于何处 有 关寄存器及存储单元的内容变化情况 对复杂的或特殊形式的子程序应举例说明调用 方法 对重要的子程序给出调用一次所需的时钟周期 数 81 三 子程序编写示例 例例 5 14 代码转换子程序 试编写一子程序 将 40H单元中的十六进制转换为ASCII码 转换结果 仍置于40H单元中 解 十六进制数和ASCII码的对应关系如下表所示 由表看出 十六进制数0 9只要加上30H就可得到对应的 ASCII码30H 39H 十六进制数A F只要加上37H就可得 到对应的ASCII码41H 46H 41H 0AH 37H 十六进制数01234567 对应的ASCII码 30H 31H 32H 33H 34H 35H 36H 37H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 足疗按摩技术操作试题及答案
- 坐月子饮食禁忌试题及答案
- 2025年罕见病药物研发激励政策与生物制药企业国际化发展报告
- 考点解析-沪科版9年级下册期末试题附完整答案详解(易错题)
- 考点解析-沪科版9年级下册期末试题及完整答案详解【名校卷】
- 2025至2030年中国蛋清粉行业市场供需格局及投资规划建议报告
- 2025版秦都区某小区二手房买卖合同附房屋交易资金监管及结算流程
- 2025年医疗设备制造财务代理与成本控制合同
- 2025年度水利工程项目施工监理分包合同范本
- 2025版文化产业发展三方协议担保服务协议
- 2022年成都中医药大学辅导员招聘考试试题及答案解析
- 智能客服趋势发展白皮书:智能客服预见未来课件
- 大班 语言社会 我升大班啦 课件
- 项目造价咨询计划表
- 幼儿园玩教具操作与活动指导
- 敏捷项目管理实践指南
- 《数据结构》课件(完整版)
- 项目管理(PMBOK)讲义全套
- 友声收银系列电子秤使用说明书
- 《立体裁剪》实训指导书
- 典范英语5a_01
评论
0/150
提交评论