




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第一章 绪论2第二章 分析与设计32.1 题目32.2 要求32.3 方案设计与论证42.3.1 整体设计思路42.3.2 方案选择42.4 结构框图53.1 宏定义换行63.2 阶数输入过程63.3 数据判断功能73.4 询问继续模块83.5 数值计算模块83.6 显示模块103.6.1 数据显示103.6.2 空格显示11第四章 实验结果及问题处理134.1 实验结果134.2出现的问题以及解决的方案144.2.1 数据输入问题144.2.2 除法溢出问题144.2.3 数据计算问题15第五章 总结与体会16参考文献18附录19第一章 绪论随着电子计算机技术的不断发展,微型计算机系统的功能越来越强,而关于计算机的程序设计语言也经历了一个发展的过程。从最基本的机器语言到汇编语言,并发展到高级的智能化语言,如visual c+、visual basic等。汇编语言(assembly language)是一种采用助记符表示的程序设计语言,即用助记符来表示指令的操作码和操作数,用符号或标号代表地址、常量或变量。助记符一般都是英文单词的缩写,便于识别和记忆。使用汇编语言编写的程序称为汇编语言源程序。汇编语言源程序不能由机器直接执行,而必须翻译成有机器代码组成的目标程序,这个翻译的过程称为汇编。把汇编语言源程序翻译成目标程序的软件称为汇编程序。汇编语言与机器语言密切相关,它们之间有明显的对应关系。一条汇编语言指令对应一条机器语言代码,所以汇编语言和机器语言一样都是面向机器的语言。使用汇编语言进行程序设计能充分利用机器的硬件功能和结构特点,从而有效地加快程序的执行速度,减少程序占用的存储空间。所以汇编语言大量用于编写计算机系统程序、实时通信程序和实时控制程序等。汇编语言作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿linux内核来讲,虽然绝大部分代码是用c语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是c语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。第二章 分析与设计2.1 题目汇编显示杨辉三角2.2 要求基本内容:在提示信息下,从计算机键盘输入一个满足要求的数据,在输出提示信息后显示相应的杨辉三角。具体要求如下:(1) 要有提示信息的输出显示,例如程序执行时直接显示输出提示信息“please input a number:”然后等待用户从计算机键盘输入具体数值,例如输入“4”,然后换行显示下一步提示信息,例如“the yanghui triangle:”最后显示通过程序获得的杨辉三角如下:(2) 分析杨辉三角具体算法,计算结果要求正确。输出的杨辉三角要求上下左右对称显示,上下分别为两个等腰三角形的形式,即要求分析总结每行行首空格数量,及三角中各个数之间空格的安排方法;(3) 要求最少要能够输出10阶的杨辉三角;(4) 提高要求:增大阶数(最少到20阶),可任意选择正反三角显示。2.3 方案设计与论证2.3.1 整体设计思路本课题要求用汇编显示杨辉三角形,首先得了解什么是杨辉三角形。杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。其每一行的数据都有其特定的规律,杨辉三角形又有其独特的性质:1、每行数字左右对称,由1开始逐渐变大,然后变小,最后回到1。2、第n行的数字个数为n个。3、第n行数字和为2(n1)。4、每个数字等于上一行的左右两个数字之和,故可用此性质写出整个帕斯卡三角形。5、第n行的第1个数为1,第二个数为1(n-1),第三个数为1(n-1)(n-2)/2,第四个数为1(n-1)(n-2)/2(n-3)/3依此类推。在熟悉了杨辉三角形的产生原理,杨辉三角形内各数据的计算方法之后,再在掌握了相关汇编知识以及一定编程能力的基础上,我们对课题进行了相关分析,总体来说,这个课题的关键点分为以下部分,厘清这些关键点也是作为明确整体设计思路的重要过程:(1)、提示信息的显示。题目明确要求显示中要有提示信息,实际上,根据需要,在本课题中我们又加了一些功能,当然也必须要增加额外的提示信息。(2)、阶数的输入功能。通过dos系统功能调用,确定需要显示杨辉三角形的行数与大小,能够实现简单的人机交互。(3)、编程得到需要在杨辉三角中显示的数。基于以下思想:第n行的第1个数为1,第二个数为1(n-1),第三个数为1(n-1)(n-2)/2,第四个数为1(n-1)(n-2)/2(n-3)/3依此类推。(4)、某数的显示及换行。为了显示的规范和美观,必须考虑到数与数之间的空格数,当然,某数的显示是能够完整输出杨辉三角形的基础和前提。(5)、新增功能,判断输入数据是否满足条件,判断是否继续执行。考虑到本程序的使用范围及使用者能连续使用显示杨辉三角形的方便性,特增加了数据判断和询问继续功能,使用者想要继续执行即输入“y”,程序自动从头开始执行,若输入“n”,则退出。2.3.2 方案选择1. 对于阶数输入功能,我们想到两种方案。方案(1):参考相关文献上得知,可以通过dos系统功能调用:键盘输入单字符1号系统功能调用,同时实现字符的输入与显示。调用格式:movah,1int21h说明:1号功能调用无入口参数,执行时系统首先等待键盘输入,待程序员按下任何一键,系统先检查是否是ctrl-break键。如果是则退出,否则将键入的字符的ascii码置入al寄存器,并在屏幕上显示该字符。方案(2):同样是dos系统功能调用,键盘输入字符串0ah号系统功能调用。说明:其功能是将键盘输入的字符串写入到内存缓冲区,因此调用之前必须事先定义一个缓冲区。缓冲区的第一个字节给出用来存放键入的字符数,第二个留给系统填写实际键入的字符个数,从第三字节开始用来存放键入的字符串,最后键入回车( )键表示字符结束。对于方案(1),格式简单,使用方便,易于理解,但是对于输入多位数,相对有点复杂。对于方案(2),从实际编程水平出发,不太能够娴熟的使用该系统功能,调用格式复杂,而且鉴于该程序输入的位数不超过两位,所以我们最后选择了方案(1)。2.4 结构框图在编写程序之前,明确其整个思路的流程图是相当重要的,所以我们花了一些时间来画出流程图,根据流程图来写实际程序。如图2.4.1为本程序的总体汇编思路图。图2.4.1 程序总体流程图第三章 实验程序及分析3.1 宏定义换行为了简化汇编语言源程序,可以把一些频繁出现的程序段定义为“宏指令”,当遇到这段程序时,只要按宏指令名调用即可,不必重复写许多指令,汇编程序在遇到宏指令时将其期待成相应的代码,这样就有效地缩短汇编语言源程序的长度,使源程序易读,也减少了由于重复书写而引起的错误。在本课题中,为了显示杨辉三角,必然需要多次使用换行代码,故将换行代码定义为“宏指令”,有以上所述的诸多好处。宏定义如下:huanh macro; 宏名为huanhmov ah, 2 ; 使用2号功能,显示器输出字符 mov dl, 13; 13即ascii为0dh是回车符 int 21h; dos系统功能调用 mov dl, 10; 10即ascii为0ah是换行符 int 21h; dos系统功能调用endm; 宏定义结束3.2 阶数输入过程过程是程序的一部分,它可以被程序调用。每次可调用一个过程,当过程中的指令执行之后,控制返回调用它的地方。过程的定义是用过程定义伪指令完成的。过程的定义有三个注意点:、过程名是自定义符,定义开始和结束时的过程名必须相同。、过程名有三个属性:段地址,偏移量和距离属性(near和far),汇编程序在汇编时根据过程类型生成段内或段间的调用或返回指令代码。、在一个过程中,可以有多个ret指令。一个过程总是通过ret指令返回,ret常作为过程的最后一条指令。在了解以上说明及注意点的基础上,我们根据实际需要定义了一个实现阶数输入功能的过程。具体定义如下:shuru proc; 输入过程定义,数字存在bpxor bp,bpmov bx,10mov cx,3; 控制输入位数,外加一位回车input:mov ah,1 ; dos功能调用,键盘输入和显示数据int 21hcmp al,0dh ; 判断是否以回车结束输入jz oksub al,30h ; 将ascii码转为16进制数cbw ; 字节扩展为字,为了下一条交换指令xchg ax,bpmul bx ; 扩大10倍add bp,ax ; 加一位loop inputok:ret; 返回调用过程的地方shuru endp; 过程定义结束3.3 数据判断功能在第一套程序编写完毕,试运行时,我们发现,本程序能够支持输入的数据最大值为14,当数据大于等于15时,则程序出现除法溢出问题,并且自动关闭,所以为了能让使用者不至于输入不合法的数据,我们特增加了数据判断功能,输入数据满足条件,允许执行。否则,提示输入数据超过范围,要求重新输入。程序段如下:main: movdx,offset msg ; 输出字符串,请输入一个数 mov ah,9; 9号功能调用,输出字符串 int 21h call shuru; 调用输入函数,显示输入的数cmpbp,15; 输入的数存在bp,与15比较 jb mztj; 满足条件,允许执行 huanh; 否则换行movdx,offset error; 准备显示错误信息 mov ah,9 int 21h huanh ; 继续换行 jmp main; 无条件跳转到main,重新开始mztj:huanh 3.4 询问继续模块在首套程序编写完毕运行时,每次我们只能运行一次显示杨辉三角的程序,以后还得重新键入相关命令,才能运行,如此调试程序,效率低下,且可能混乱我们对现象的记录。所以考虑到我们调试程序的高效性及对于使用者的便利性,我们又增加了一个询问继续模块,当第一次杨辉三角显示完毕,提示是否继续,如果键入“y”,则程序自动重新开始执行;如果键入“n”,则程序运行结束,退出。程序段如下:input1:huanhmov dx,offset con; 显示提问字符串,继续? mov ah,9 int 21h; 判断是否继续mov ah,1 ; 键盘输入数据int 21hcmp al,59h ; 判断输入的是否是yjnzexit1huanhjmpnear ptr main; 段内直接近转移,可以转移到段内的任何一个位置exit1: mov ah,4ch; 结束程序,返回dos int 21h3.5 数值计算模块本段数值计算,是正确显示杨辉三角的关键,所以能否找到一种既简便又能保证计算正确性的方法,是我们本阶段工作的中心,我们参阅了很多资料,从几种计算方法中,选取了最符合我们实际编程水平的,又在保证计算正确性的基础上,写出了如下的程序段,它的思想是基于:第n行的第1个数为1,第二个数为1(n-1),第三个数为1(n-1)(n-2)/2,第四个数为1(n-1)(n-2)/2(n-3)/3依此类推。如图3.5.1为本段程序的流程图,文字描述即为上段。图3.6.1 数值计算流程图calculate:dec b; b每次减1相乘 mul b div c; 除以c,再加1 inc c cmp b,0; b是否为0 jz ok1 push ax; 保存所得数据 mov d,0; 此处d为位数,为了显示后面的空格 call shownum mov ax,6; 预设,总共显示的空格数为6个单位 sub ax,d; 还需显示多少空格 call showspace1 pop ax call calculate; 继续执行ok1:ret 3.6 显示模块3.6.1 数据显示得到杨辉三角中的某一个数后,接下来的任务就是如何将它显示出来。不能完成这项工作,就不能完成整个课题。我们小组在参考平时微机实验的基础上,自己分析,找到了一种正确的显示方法:可以将某数不断除以10,取出余数显示,直到商为0,停止除法。例如:要显示的数是345,除以10后,商为34,余数为5,5压入堆栈。然后将34除以10,商为3,余数为4,4压入堆栈。最后将3除以10,商为0,余数为3,3压入堆栈。弹出堆栈,依次显示,在汇编中,使用无符号数除法指令div op。指令div bl,被除数存在ax中,整数商存在al,余数存在ah。所以在除以10后,只需将ah中的值取出,下一次除法,可以用逻辑指令and将其高八位屏蔽,调用2号功能,依次显示。为了能充分体现我们编程的思想,如图3.6.1是数据显示部分的流程图,以下编写的程序也是基于这种思想。图3.6.1 数据显示流程图具体程序段如下:shownum: mov bx, 10; bx中存除数10 cmp ax, 0; 除法运算是否完毕 jz ok2 inc d; 此处d为位数,以确定输出的空格数 div bl; 除以10,整数商存在al,余数存在ah push ax and ax, 00ffh; 屏蔽高八位,取商call shownum pop dx mov dl, dh; 取出高八位,即为要显示的余数 or dl, 30h; 转为ascii码 mov ah, 2 int 21hok2:ret3.6.2 空格显示空格的显示,是为了调整整体杨辉三角的布局,使其输出为美观的等腰三角形。前期,我们采用在方格纸上试书写的方式,确定需要显示的空格数。实际编程中,使用到了3中空格形式,第一种是首数字1之前的空格,定义为ahead,第二种是首数字1后面的空格,定义为between,第三种是和需显示的数字位数相关的空格,定义为back,具体在程序中定义如下:ahead db $ betweendb $ backdb $定义了这三种空格后,需要将其显示,这里我们使用dos功能调用,9号系统功能调用输出字符串。功能是将指定的内存缓冲区中的字符串在屏幕上显示出来,缓冲区的字符串以“$”为结束标志。showspace:mov bx, ax; 首行显示空格,空格数即为输入的阶数 mov ah, 9 mov dx,offset aheadnexts:cmp bx, 0; bx减1,控制输出的空格数 jz dones int 21h dec bx jmp nextsdones:ret; 完成显示,返回showspace1:mov bx, ax; ax为6-数据位数 mov ah, 9 mov dx,offset backnext:cmp bx, 0 jz done int 21h dec bx jmp nextdone:ret 第四章 实验结果及问题处理4.1 实验结果通过对程序的多次完善,现在能够达到的要求为:最小输出1阶,最大输出14阶的正反杨辉三角形,能够判断输入数据是否合法,能够询问是否继续输出,当输入阶数较小时,也能够很好的显示输出,输出的正反杨辉三角形美观、清晰,实现了题目所提出的基本要求,对于遇到的一些问题,将在下节讨论,下面附上一些运行调试图片。如图4.1.1和图4.1.2为正反杨辉三角显示图, 图4.1.3为当输入阶数超出范围时的提示错误信息,并要求重新输入数据。图4.1.1 11阶杨辉三角图4.1.2 继续输出的4阶和6阶杨辉三角图4.1.3 输入阶数不合法的提示界面4.2出现的问题以及解决的方案 4.2.1 数据输入问题对于数据输入,我们当初考虑到了两种方法,在方案选择中已论证了两种方法各自的优缺点,本来想使用0ah号系统功能调用,因为它能直接得到输入的字符串,而不像1号系统功能调用那样,只能够输入单字符,但是使用0ah号系统功能调用实际编写程序时,却不清楚输入的字符串存放在内存的哪个区域,虽然参考文献上有相关说明,但是我们还是未能取出输入的字符串,这对于我们是极大的打击,因为阶数输入是完成整个课题的第一步,这一步基础不做好,更不要提后面的计算、显示了。在要求首先能实现功能的情况下,我们还是选择了1号系统功能调用,但是要加一个循环控制,控制输入最大位数和enter的ascii码判断输入结束语句,因为是输入的单字符,其ascii码存在al寄存器中,所以对于2位数,必须要先将其ascii码转为16进制数,将首先输入的数乘以10,再加上第二次输入的数,得到实际键入的数值。基于以上思想,我们写出了上述3.2节的阶数输入功能程序。4.2.2 除法溢出问题 由查阅资料可知,对于高阶的杨辉三角形,其内部的数据会变得相当大,当阶数为15阶时,其最大的数已经超过65536,在数学上65536并不是一个特殊的数,但是在计算机系统中,65536=216,在8086cpu内部,有8个16为的内部寄存器,当然累加器ax也为16位,ax中能存放的最大的数为65536,分为高八位(ah)和低八位(al),使用汇编的无符号数除法指令div op,指令中给出的操作数是除数,它可以是8位/16位通用寄存器及存储器;被除数隐含在ax(字节除)或dx、ax(字除法)中。查阅资料得到,可以使用特定指令,实现整数商存至ax,余数存至dx中,这样能够提高数值的上限,但是随之而来的问题是,对于编程的复杂度的提高,杨辉三角的显示格式问题,数据除以10取余数的显示问题,从而影响到整个课题。所以考虑到限定的时间,输出的美观等因素,取折中选择,我们只做到了14阶,对于大于等于15阶的阶数输入,我们增加了判断语句,避免除法溢出问题。4.2.3 数据计算问题众所周知,杨辉三角形中的数据是有规律排列的,在上文整体设计思路中已经阐述了一些规律。对于数据的计算,我们一开始考虑到的是某数等于其上一行左右两数之和,依照此规律也可以写出整个杨辉三角形,而且不需要进行乘除法运算,不会出现除法溢出问题。但是如何得到这个数的上一行的左右两数,这两个数该存在哪里,却是一个不容忽视的问题,而且会占用很大的内存空间。后来我们查阅资料,又得到一些规律,即第n行的第1个数为1,第二个数为1(n-1),第三个数为1(n-1)(n-2)/2,第四个数为1(n-1)(n-2)/2(n-3)/3依此类推。这样可以用dec n和inc c,用乘除法指令就可运算出正确结果,但是前提是输入的阶数有限制,上一节已经论证。为了能知道这一行到底要运算多少次,我们又加了一个cx控制其运算次数,在计算前,对某一行的n,都要进行压栈保护。综上所述,我们写出了上节结束输入模块的程序。事实表明,这样的方法能够计算出正确的数值。第五章 总结与体会微机原理与接口技术,是我们电子科学与技术专业学生的专业课,由此可知,这门课对于我们的意义是多么重大。所以,在做这次微机的课程设计时,更是不敢怠慢。唯恐不能正确得到设计效果。这次我们的课程设计的题目是:汇编显示杨辉三角。刚拿到这个题目的时候,确实不知道从何下手,但是有句话说得好:不逼自己一把,怎么知道自己不可以?我们首先从什么是杨辉三角下手,查阅了相关资料,总结体会了杨辉三角的一些规律,这些规律能够在我们编程过程中得以体现,所以这个过程是必须的。接下来,在熟悉了杨辉三角的基础上,我们结合编程,总结了有几个工作要做,一是:字符串的显示;二是:杨辉三角值得计算;三是:这些数值的显示;四是:输出的排版问题,保证输出美观正确。把整个课题,分为以上四个部分后,各个击破,从而高效的完成整个课题是一种很实用、有效的方法。虽然在这个过程中遇到了不少问题,但是我们小组成员都很积极的讨论解决问题的方法。最后通过整合,得到了整个程序。总体来说,这个程序虽然还不完美,但是代表着我们这一段时间以来的成果,我们都很欣慰,能够实现题目的要求。这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时学得到很多实用的知识,在此我表示感谢!同时,对给过我帮助的所有同学表示忠心的感谢!参考文献1 朱金钧,麻新旗,等. 微型计算机原理及应用技术. 机械工业出版社,第2版.附录汇编输出杨辉三角程序代码:huanhmacro; 宏定义5句代码实现换行mov ah, 2 mov dl, 13 int 21h mov dl, 10 int 21hendmdata segmentmsg db please input a number: $resultdbthe yianghui triangle:$con db do you want to continue?(y/n): $error dbdata out of range!$ahead db $betweendb $backdb $adw?;a为阶数bdw?;b是行数cdw?ddw?;记录位数,控制空格数data endscode segment assume cs:code,ds:data shuru proc;输入子程序,数字存在bpxor bp,bpmov bx,10mov cx,3;控制输入位数,外加一位回车input:mov ah,1 ;键盘输入数据int 21hcmp al,0dh ;以回车结束输入jz oksub al,30h ;化ascii为hexcbw ;字节扩展为字xchg ax,bpmul bx ;扩大10倍add bp,ax ;加一位loop inputok:retshuru endpstart: mov ax,data mov ds,axmain: movdx,offset msg; 输出字符串,请输入一个数 mov ah,9 int21h call shuru; 调用输入函数,显示输入的数cmpbp,15; 输入的数在bp里 jb mztj; 满足条件 huanhmovdx,offset error; 准备显示错误信息 mov ah,9 int 21h huanh jmp mainmztj:huanh mov dx,offset result; 显示提示字符串 mov ah,9 int 21h huanh mov ax,bp;准备显示杨辉三角,ax=bp=阶数 call showspace mov dl,1 ;第一行显示空格完毕,输出1 mov ah,2 int 21h cmp bp,1;阶数bp与1比较 jz exit mov b,2;b=2 mov cx,bp;cx为阶数 mov a,bp;a为阶数 dec a call yhsjexit:huanhmov ax,bp;准备显示杨辉三角,ax=bp=阶数 call showspace mov dl,1 ;第一行显示空格完毕,输出1 mov ah,2 int 21hjmpnear ptr input1yhsj:mov c,1;杨辉三角 huanh dec bp mov ax,bp call showspace ;控制首数字前面的空格数 mov dl,1 ;首数字必为1 mov ah,2 int 21h movdx,offse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大颗粒花园课件
- 2025家具定制合同范本
- 2025国际EPC项目开发与合同谈判(承包商)
- 2025电子产品代销合同
- 2025前期装修合同备案证明
- 2025装修工程合同
- 2025简易采购合同
- 2025《劳动合同法解析》教案
- 基于社会网络分析的城中村改造项目利益主体协同障碍因素研究
- 大脑学社699课件
- 弹药入库堆垛方案模板
- 资源人脉入股协议书模板
- 提高住院患者围手术期健康宣教知晓率品管圈活动报告
- 不健康食品课件:健康成长远离垃圾食品
- 2025年贵州省中考英语试题(附答案和音频)
- 驾驶员高级工考试题及答案
- 2025届四川眉山中考历史真题试卷【含答案】
- 2024北京北师大实验中学高二10月月考数学试题及答案
- 在制品生产车间管理制度
- 学校口腔健康知识讲座
- 子公司运营规范管理制度
评论
0/150
提交评论