![3[1].4汇编语言程序格式.ppt_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/ffa5c474-ebc0-4153-9185-494168a1bbb7/ffa5c474-ebc0-4153-9185-494168a1bbb71.gif)
![3[1].4汇编语言程序格式.ppt_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/ffa5c474-ebc0-4153-9185-494168a1bbb7/ffa5c474-ebc0-4153-9185-494168a1bbb72.gif)
![3[1].4汇编语言程序格式.ppt_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/ffa5c474-ebc0-4153-9185-494168a1bbb7/ffa5c474-ebc0-4153-9185-494168a1bbb73.gif)
![3[1].4汇编语言程序格式.ppt_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/ffa5c474-ebc0-4153-9185-494168a1bbb7/ffa5c474-ebc0-4153-9185-494168a1bbb74.gif)
![3[1].4汇编语言程序格式.ppt_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-3/22/ffa5c474-ebc0-4153-9185-494168a1bbb7/ffa5c474-ebc0-4153-9185-494168a1bbb75.gif)
已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3 4汇编语言程序格式 3 4 1汇编语言程序格式3 4 2汇编语言的数据与表达式3 4 3伪指令3 4 4宏指令3 4 5程序设计3 4 6汇编语言与C语言的接口 3 4汇编语言程序格式 3 4 1汇编语言程序结构3 4 2汇编语言语句类型和结构 返回 1 源程序的一般格式 STACKSEGMENT STACKENDSDATASEGMENT DATAENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART CODEENDSENDSTART 例3 62编写一个两字相加的程序 DSEGSEGMENT 定义数据段DATA1DW1234H 定义被加数DATA2DW5678H 定义加数DSEGENDS 数据段结束ESEGSEGMENT 定义附加段SUMDW2DUP 定义存放结果区ESEGENDS 附加段结束CSEGSEGMENT 定义代码段 下面的语句说明程序中定义的各段分别用哪个段寄存器寻址ASSUMECS CSEG DS DSEG ES ESEGSTART MOVAX DSEG START为程序开始执行的启动标号MOVDS AX 初始化DSMOVAX ESEGMOVES AX 初始化ESLEASI SUM 存放结果的偏移地址送SIMOVAX DATA1 取被加数ADDAX DATA2 两数相加MOVES SI AX 和送附加段的SUM单元中HLTCSEGENDS 代码段结束ENDSTART 源程序结束 例3 62编写一个两字相加的程序 DSEGSEGMENT 定义数据段DATA1DW1234H 定义被加数DATA2DW5678H 定义加数DSEGENDS 数据段结束ESEGSEGMENT 定义附加段SUMDW2DUP 定义存放结果区ESEGENDS 附加段结束CSEGSEGMENT 定义代码段 下面的语句说明程序中定义的各段分别用哪个段寄存器寻址ASSUMECS CSEG DS DSEG ES ESEGSTART MOVAX DSEG START为程序开始执行的启动标号MOVDS AX 初始化DSMOVAX ESEGMOVES AX 初始化ESLEASI SUM 存放结果的偏移地址送SIMOVAX DATA1 取被加数ADDAX DATA2 两数相加MOVES SI AX 和送附加段的SUM单元中HLTCSEGENDS 代码段结束ENDSTART 源程序结束 2 源程序的结构特点 1 汇编语言程序通常由若干段组成 段由伪指令SEGMENT与ENDS定义 各段顺序任意 段的数目按需要确定 原则上不受限制 2 段由若干语句组成 语句以指令为主体而构成 一条语句写在一行上 书写时语句的各部分应尽量对齐 3 汇编语言程序中至少要有一个启动标号 作为程序开始执行时目标代码的入口地址 启动标号常用START BEGIN MAIN等命名 4 为增加程序的可读性 可在汇编语言语句 后加上注释 返回 3 4 2汇编语言语句类型及格式 1 汇编语言语句的类型 1 指令语句是可执行语句 在汇编中要产生对应的目标代码 CPU根据这些代码才能执行相应的操作 2 伪指令语句是不可执行语句 在汇编中不产生目标代码 用于指示汇编程序如何汇编源程序 利用它定义和说明常量和变量的属性及存储器单元的分配等 3 宏指令语句是以一个宏名定义的一段指令序列 在汇编中凡是出现宏指令语句的地方 都会有相应的指令语句序列的目标代码插入 2 语句的格式 标号 操作数 注释 符号名 操作数 注释 返回 3 4 2汇编语言的数据与表达式 3 4 2 1常量 变量与标号3 4 2 2表达式与运算符 3 4 3 1常量 变量与标号 1 常量数值常量 字符串常量 符号常量2 变量例4 2用数据定义伪指令DB DW DD定义变量DATASEGMENTDA1DB12H 定义一个字节数据DA2DD0FEDCBA90H 定义一个双字数据DA3DW5678H 定义一个字数据DATAENDS3 标号标号是一条指令的符号地址 在无条件转移指令 条件转移指令 循环指令和子程序调用指令的操作数位置上 通常用标号作为程序转移指令的目标地址 例题 例逻辑运算符的应用MOVAL NOT10101010B AL 01010101BMOVAL 11110000BAND10111101B AL 10110000BMOVAL 10100000BOR00000101B AL 10100101B例关系运算符的应用MOVAX 5EQ101B AX 0FFFFHMOVBH 10HGT16 BH 0例数值返回运算符的应用K1DB30H 31H 32HK2DW4041H 4043HK3DW20HDUP 0 K4DD50515253HMOVAL TYPEK1 等效于MOVAL 1MOVAH TYPEK2 等效于MOVAH 2MOVAL LENGTHK3 AL 20H 返回DUP前面的数值MOVCL LENGTHK4 CL 01HMOVBL SIZEK3 BL 40HMOVDL SIZEK4 DL 04H 3 4 3 4表达式与运算符 1 算术运算符算术运算符包括加 减 乘 除 求余 MOD 左移 SHL 和右移 SHR 共七种 2 逻辑运算符逻辑运算符包括AND 与 OR 或 XOR 异或 NOT 非 共四种 它们只适用于对常量进行逻辑运算 3 关系运算符关系运算符包括EQ 相等 NE 不等 LT 小于 GT 大于 LE 小于等于 GE 大于等于 共六种 4 数值返回运算符数值返回运算符包括SEG 段基址 OFFSET 偏移量 TYPE 类型 LENGTH SIZE 运算的对象是存储器操作数 返回变量或标号的属性值 5 修改属性运算符 高级 例题 例逻辑运算符的应用MOVAL NOT10101010B AL 01010101BMOVAL 11110000BAND10111101B AL 10110000BMOVAL 10100000BOR00000101B AL 10100101B 例题 例关系运算符的应用MOVAX 5EQ101B AX 0FFFFHMOVBH 10HGT16 BH 0 例题 例数值返回运算符的应用K1DB30H 31H 32HK2DW4041H 4043HK3DW20HDUP 0 K4DD50515253HMOVAL TYPEK1 等效于MOVAL 1MOVAH TYPEK2 等效于MOVAH 2MOVAL LENGTHK3 AL 20H 返回DUP前面的数值MOVCL LENGTHK4 CL 01HMOVBL SIZEK3 BL 40HMOVDL SIZEK4 DL 04H 例题 例段属性运算符的应用MOVAX ES BX 用附加段ES取代默认的数据段DSMOVBL DS BP 用数据段DS取代默认的堆栈段SS例PTR运算符的应用N1DB3 6 9MOVAX WORDPTRN1 临时指定N1为字类型 AX 0603H例THIS运算符的应用ABCEQUTHISBYTE 从本语句开始变量ABC的类型属性指定为字节 不管它原来的类型是什么例HIGH和LOW运算符的应用NUMEQU2456HMOVAL HIGHNUM 等效于MOVAL 34HMOVBL LOWNUM 等效于MOVBL 56H 返回 3 5伪指令 3 5 1符号定义伪指令3 5 2数据定义伪指令3 5 3段定义伪指令3 5 4段寻址伪指令3 5 5过程定义伪指令3 5 6模块定义与连接伪指令3 5 7其它伪指令 3 5 1符号定义伪指令 1 等值语句例4 10等值语句CREQU0DH 常量TENEQU0AH 常量AAEQUASCII TABLE 变量VAREQUTEN 2 1024 数值表达式ADREQUES BP DI 5 地址表达式GOTOEQUJMP 指令助记符2 等号语句例4 11等号语句NUM 488 定义NUM等于488NUM NUM 1 定义NUM等于489 返回 3 5 2数据定义伪指令 例4 12DATADB11H 33H 定义包含两个元素的字节变量DATANUMDW100 5 88 定义一个字类型变量NUM 其初值为表达式的值SUMDQ0011223344556677 将4个字存入变量SUM 例4 13STR1DB COMPUTER 定义一个字符串 字符串的首地址为STR1STR2DW AA BC DE 给两个字符组成的字符串分配两个字节存储单元DATADW 为DATA预留6个存储单元例4 14DATA1DB20DUP 为变量DATA1分配20个字节的空间 初值为任意值DATA2DW 为变量DATA2分配2个字节的空间 初值为任意值DATA3DB20DUP 30H 为变量DATA3分配20个字节的空间 初值均为30H 返回 3 5 3段定义伪指令 格式 段名SEGMENT定位类型组合类型类别名 段名ENDS1 段名一个段开始和结尾的段名必须一致 否则会出现语法错误2 定位类型 1 BYTE 2 WORD 3 PARA 4 PAGE3 组合类型 1 NONE 2 PUBLIC 3 COMMON 4 STACK 5 MEMORY 6 AT表达式4 类别名 返回 3 5 4段寻址伪指令 格式 ASSUME段寄存器名 段名 段寄存器名 段名 例4 15求从NUM开始的12个无符号字节数的和 结果放在SUM字单元中 DATASEGMENTNUMDB95H 83H 36H 2DHDB33H 22H 1AH 34HDB62H 45H 75H 49HSUMDW DATAENDSSTACKSEGMENTDB100DUP STACKENDSCODESEGMENTASSUMECS CODE DS DATA ES DATA SS STACK BEGIN MOVAX DATAMOVDS AXMOVES AXMOVAX STACKMOVSS AXLEASI NUMMOVCX 12XORAX AXNEXT ADDAL SI ADCAH 0INCSILOOPNEXTMOVSUM AXHLTCODEENDSENDBEGIN 返回 3 5 5过程定义伪指令 格式 过程名PROC NEAR FAR RET RET过程名ENDP 例4 16编写一个延时50ms的子程序DELAYPROC 定义一个近过程PUSHBX 保护BX原来的内容PUSHCX 保护CX原来的内容MOVBL 5 外循环次数NEXT MOVCX 2801 内循环次数 实现延时10ms W10MS LOOPW10MS CX 0则循环DECBL 修改外循环计数值JNZNEXT BX 0则进行外循环POPCX 恢复CX原来的内容POPBX 恢复BX原来的内容RET 过程返回DELAYENDP 过程结束 返回 3 6 6模块定义与连接伪指令 1 模块定义伪指令格式 NAME标识符 END启动标号2 模块连接伪指令 1 全局符号伪指令格式 PUBLIC符号名1 符号名2 2 引用伪指令格式 EXTRN符号名1 类型 符号名2 类型 例题 例4 17编程利用乘法模块计算X Y NAMEMAINCALL 主模块EXTRNWMUL FARSTACKSEGMENTPARASTACK STACK DB100DUP STACKENDSDATASEGMENTPARA DATA XDW3355HYDW8866HDATAENDSCODESEGMENTPARA CODE MAINPROCFARASSUMECS CODE DS DATA SS STACKPUSHDSMOVAX 0PUSHAXMOVAX DATA MOVDS AXMOVAX XMOVBX YCALLWMUL 调用外部过程WMULRETMAINENDPCODEENDSENDMAIN 主模块结束NAMESUBMUL 子模块CDESGSEGMENTPARA CODE WMULPROCFAR 定义远过程WMULASSUMECS CDESGPUBLICWMUL 定义WMUL为全局过程名CALLMULAB 嵌套调用RET 过程返回WMULENDP 过程结束MULABPROC 定义一个近过程MULABMULBXRETMULABENDP 过程结束CDESGENDS 代码段结束END 子模块结束 返回 3 5 7其它伪指令 1 定位伪指令例4 20伪指令ORG和当前位置计数器值符号 的应用DATASEGMENTORG30HDB1DB12H 34HORG 20HSTRINGDB STRING DATAENDS2 方式选择伪指令 8086 汇编程序只接受8086 8088的指令 这是默认方式 286 汇编程序接受8086 8088及286的指令 286P 除与 286功能相同之外 汇编程序还接受286保护方式下的指令 386 386P 486 486P含义类推 586 汇编程序接受8086 8088 286 386 486及586的指令 586P 除与 586功能相同之外 汇编程序还接受586保护方式下的指令3 简化的段定义伪指令 DOSSEG 标记简化段 各段顺序由系统安排 用于主模块前面 MODELSMALL 指明内存使用模式 指示数据与代码允许使用的长度 DATA 定义数据段 隐含段名为 DATA STACK 长度 定义堆栈段 隐含段名为 STACK 并形成SS及SP初值 CODE 名字 定义代码段 隐含段名为 CODE END 汇编结束 返回 3 5 7宏命令伪指令 1 宏定义例4 18用宏指令定义两个字节数相加 结果存入RESULT单元的操作 ADDMMACROOPR1 OPR2 RESULTMOVAL OPR1ADDAL OPR2MOVRESULT ALENDM2 宏调用例4 19将例4 18中的宏定义进行宏调用 宏展开操作如下 ADDM88 36 SUM ADDMBR TAB SUM 宏展开 MOVAL 88 ADDAL 36 MOVSUM AL MOVAL BR ADDAL TAB MOVSUM AL 4 宏的取消PURGE 返回 3 6汇编语言程序上机过程 3 6 1建立汇编语言的工作环境3 6 2上机操作过程3 6 3DEBUG的使用方法 返回 3 6 1建立汇编语言的工作环境 编辑程序 文件名EDIT COM汇编程序 文件名MASM EXE连接程序 文件名LINK EXE调试程序 文件名DEBUG EXELIB EXE 库管理程序CREF EXE 符号索引文件处理程序EXE2BIN EXE 将EXE转换为COM的文件格式转换程序 返回 3 6 2上机操作过程 1 编辑1 对编辑完成的源程序在存盘时扩展名必须加写 ASM2 一定要严格遵守汇编语言书写格式及段结构的格式来编写程序2 汇编汇编过程就是将汇编语言源程序转换成机器能够识别的目标代码程序 即OBJ的二进制文件 还可生成扩展名为 LST的列表文件 扩展名为 CRF的符号索引文件 3 连接所谓连接是用连接程序LINK EXE把若干个经汇编后产生的 OBJ文件及指定的库文件连接起来 产生可执行的 EXE文件 4 调试 返回 3 6 3DEBUG的使用方法 1 DEBUG的运行2 DEBUG的主要命令D 显示内存单元内容 U 反汇编命令 R 显示与修改寄存器内容 E 修改内存单元内容 A 汇编命令 T P 单步执行指令 G 连续执行指令 N 指定装入文件名或写入文件名 L 装入N指定的文件 W 将指定内容写入N指定的文件 Q 退出DEBUG程序 返回操作系统状态 返回 3 7程序设计 3 7 1程序设计步骤3 7 2基本结构程序设计3 7 3子程序设计3 7 4程序设计举例 返回 3 7 1程序设计步骤 1 分析问题 2 建立数学模型 3 确定算法 4 绘制流程图 5 分配内存空间 6 编制程序与静态检查 7 上机调试 8 试运行和分析结果 9 整理资料投入运行 返回 3 7 2基本结构程序设计 顺序结构分支结构循环结构 顺序结构程序设计 例3 82编写程序 计算 W X Y Z 100 W 其中W X Y Z均为16位带符号数 计算结果的商存入AX 余数存入DX DATASEGMENTWDW268XDW 73YDW48ZDW 85DATAENDSSTACKSEGMENTDW100DUP STACKENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART MOVAX DATAMOVDS AXMOVAX X 计算X YIMULYMOVCX AX 用CX存储结果低位MOVBX DX 用BX存储结果高位MOVAX Z 计算X Y Z CWDADDCX AXADCBX DXSUBCX 100SBBBX 0MOVAX WCWDSUBAX CXSBBDX BXIDIVWMOVAH 4CHINT21HCODEENDSENDSTART 例题 例3 83把非压缩十进制数DAT1转换为压缩十进制数 DOSSEG MODELSMALL STACK64H DATADAT1DW0908H 非压缩十进制数0908H CODEBEGIN MOVAX DATAMOVDS AXMOVAX DAT1 AX 0908HMOVCL 4 CL 4SALAH CL 09字节左移4位 AH 90HROLAX CL 9008H字循环左移4位 AX 0089HROLAL CL 89字节循环左移4位 AL 98HMOVBYTEPTRDAT1 AL DAT1 98H 压缩十进制数98HMOVAH 4CH 返回DOSINT21HENDBEGIN 返回 分支结构程序设计 两路分支程序设计 例3 84用比较指令和条件转移指令实现两路分支的程序段 MOVAX M 假定M和N为有符号数MOVBX NCMPAX BX 比较M和N的大小 影响标志位 准备条件JGNEXT M N时转移 注意若M N为无符号数时用JA指令 分支程序2JMPDONENEXT 分支程序1 DONE RET 例题 例3 85已知X是单字节带符号数 请设计计算下列表达式的程序 Y 程序如下 DATASEGMENTXDB YDB DATAENDSCODESEGMENT 代码段START PROCFARASSUMECS CODE DS DATAPUSHDS 保存返回地址MOVAX 0 PUSHAXMOVAX DATA 初始化DSMOVDS AXMOVAL X 取数XCMPAL 0 准备条件JNSPLUS X 0则转移NEGAL X 0则求补JMPDONEPLUS ADDAL 20 X 0时 X 20DONE MOVY AL 计算结果送YRET 返回STARTENDPCODEENDSENDSTART 汇编结束 多路分支程序设计 例题 例3 86假设某企业有10类人员 对每类人员的工资各有不同的处理方法和计算程序 对于一类人员应执行程序段CLASS1 二类人员应执行程序段CLASS2 十类人员应执行程序段CLASS10 程序 DATASEGMENTTABLEDWCLASS1 CLASS2 CLASS3 CLASS4 CLASS5DWCLASS6 CLASS7 CLASS8 CLASS9 CLASS10NUMDB DATAENDSSTACKSEGMENTSTACKDW100DUP STACKENDSCODESEGMENTMAINPROCFARASSUMECS CODE DS DATA SS STACKSTART PUSHDSSUBAX AXPUSHAXMOVAX DATA MOVDS AXMOVAL NUMMOVAH 0SHLAXSUBAX 2LEABX TABLEADDBX AXJMP BX CLASS1 CLASS2 CLASS10 RETMAINENDPCODEENDSENDSTART 返回 循环结构程序设计 例题 例3 87把从BUF单元开始的80个16位无符号数按从大到小的顺序排列 DSEGSEGMENTBUFDW80DUP DSEGENDSCSEGSEGMENTASSUMECS CSEG DS DSEGSTART MOVAX DSEGMOVDS AXLEADI MEMMOVBL 79LOOP1 MOVSI DIMOVCL BL LOOP2 MOVAX SI ADDSI 2CMPAX SI JNCNEXTMOVDX SI MOV SI 2 DXMOV SI AXNEXT DECCLJNZLOOP2DECBLJNZLOOP1MOVAH 4CHINT21HCSEGENDSENDSTART 返回 3 7 5子程序设计 例4 27通过寄存器传递参数 将数据块BUF1中的内容传递到数据块BUF2中DATASEGMENTBUF1DB11 22 33 99CUNTEQU BUF1BUF2DBCUNTDUP DATAENDSSTACKSEGMENTTOSDW128HDUP STACKENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART MOVAX DATAMOVDS AXMOVAX STACK MOVSS AXMOVSP OFFSET LEASI BUF1LEADI BUF2MOVCX CUNTCALLSUB1 SUB1PROCDON MOVAL SI MOV DI ALINCSIINCDILOOPDONRETSUB1ENDPMOVAH 4CHINT21HCODEENDSENDSTART 例题 例3 88当I O状态端口0378H的Bit1 D1位 为0时 表示外设忙 为1则表示外设可以接收数据 试编程根据外设的状态将当前数据段中从BUFFER开始的连续100个字节的内容从I O数据端口03F8输出到外设SDATAPROCFARPUSHAXPUSHDXPUSHSIPUSHCXLEASI BUFFERMOVCL 100AGAIN MOVDX 378HWAIT INAL DXTESTAL 02HJZWAIT MOVAL SI MOVDX 3F8HOUTDX ALINCSIDECCLJNZAGAINPOPCXPOPSIPOPDXPOPAXRETSDATAENDP MOVAX DATAMOVDS AXCALLSDATA 返回 3 7 6程序设计举例 例3 90把一个二进制数转换为BCD码 DATASEGMENTNBINDW5678HNBCDDB5DUP DATAENDSCODESEGMENTASSUMECS CODE DS DATASTART MOVAX DATAMOVDS AXMOVAX NBINLEABX NBCDXORDX DXMOVCX OAHDIVCXMOV BX DL MOVDL 0DIVCXINCBXMOV BX DLMOVDL 0DIVCXINCBXMOV BX DLMOVDL 0DIVCXINCBXMOV BX DLINCBXMOV BX DLMOVAH 4CHINT21HCODEENDSEN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025安徽阜阳市颍州区选调区内乡镇在编在岗教师60人模拟试卷及一套答案详解
- 2025湖南大学重庆研究院招聘计算机、汽车智能座舱内饰等方向博士后考前自测高频考点模拟试题及完整答案详解
- 2025内蒙古省际劳务协作招聘岗位模拟试卷完整参考答案详解
- 2025年4月杭州市采荷中学编外教师招聘3人模拟试卷附答案详解(黄金题型)
- 2025福建泉州广播电视台专项招聘编制内高层次人才12人模拟试卷及完整答案详解
- 2025年佳木斯同江市事业单位公开遴选管理人员和专业技术人员73人模拟试卷附答案详解(突破训练)
- 2025年德州武城县公开招聘省属公费师范毕业生(36名)考前自测高频考点模拟试题及答案详解(历年真题)
- 2025贵州三都水族自治县人民医院(医共体)总院第二次招聘合同制工作人员51人模拟试卷附答案详解(黄金题型)
- 2025江苏省宿迁市沭阳县面向普通高校应届师范类毕业生校园招聘325人(第一批次)考前自测高频考点模拟试题及一套完整答案详解
- 2025内蒙古工业大学“百名博士”高层次人才引进197人考前自测高频考点模拟试题(含答案详解)
- ktv营销经理雇佣合同协议
- 2025年全运会知识竞赛试题及答案
- 2025年陕西清水川能源股份有限公司招聘笔试参考题库含答案解析
- 《光伏逆变器用长寿命级CD297S型铝电解电容器》
- 《公路软土地基处治工程技术规范》(DB45T 1972-2019)
- 工余安健环知识培训
- 云南省石林县鹿阜中学七年级地理上册 第一章 第四节 地球的公转教案 (新版)商务星球版
- 《路遥人生》读书分享课件
- 以青春之名励青春之志
- 小学数学新旧知识关联
- 第9课 共同弘扬中华传统美德 《中华民族大团结》(初中 精讲课件)
评论
0/150
提交评论