![汇编语言程序设计报告_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-8/6/bbca874e-4925-4345-8514-78d427179916/bbca874e-4925-4345-8514-78d4271799161.gif)
![汇编语言程序设计报告_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-8/6/bbca874e-4925-4345-8514-78d427179916/bbca874e-4925-4345-8514-78d4271799162.gif)
![汇编语言程序设计报告_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-8/6/bbca874e-4925-4345-8514-78d427179916/bbca874e-4925-4345-8514-78d4271799163.gif)
![汇编语言程序设计报告_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-8/6/bbca874e-4925-4345-8514-78d427179916/bbca874e-4925-4345-8514-78d4271799164.gif)
![汇编语言程序设计报告_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-8/6/bbca874e-4925-4345-8514-78d427179916/bbca874e-4925-4345-8514-78d4271799165.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、综合实验报告( 2014 - 2015 年度第 一 学期)名 称: 汇编语言程序设计综合实验 题 目: 汇编语言程序设计 院 系: 控制与计算机工程学院 班 级: 计科1203 学 号: 2 学生姓名: 张毅民 指导教师: 王保义 王蓝婧 设计周数: 一周 成 绩: 日期: 2015 年 1 月32 / 32文档可自由编辑打印实验一 用表格形式显示字符一、 实验要求按15*16列的表格形式显示ASC码为10H100H的所有字符,即以行为主的顺序及ASC码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符隔开。二、 设计思路1. 设两个计数值,行和列,分别为15、
2、16,输出一个字符,输出一个空格,字符加1,判断是否输完一行,未输出完继续输出字符。每行输完后,输出回车换行符,判断是否输玩15行,未输出完,从新输出新的一行。2. 流程图开始初始化cx(16)显示dldl+1cx为0?换行bx为0?结束初始化bx(15)dl(10h)bx-1三、设计要点、细节(1) 显示每个字符可使用功能号为02的显示输出功能调用: Mov ah,02h Mov dl,输出字符的ASC码 Int 21h 将dl初始化为10H,然后使用其加1以取得下一个字符的ASC码。(2) 显示空白符是,用其ASC码置0入dl寄存器。每行结束时,用回车和换行来结束本行并开始下一行。(3)
3、由于逐个显示相继的ASC码字符是,需要不断修改dl寄存器的内容,而显示空白、回车、换行也需要使用dl寄存器,为此可使用堆栈保存dx。(即push pop指令)四、 实验程序及调试结果CODES SEGMENT;* ASSUME CS:CODESSTART: Mov bx,15 mov dl,10hloop: mov cx,16next: mov ah,02h int 21hinc dl;-输出空格 push dx mov dl,0 int 21hpop dx loop next ;未输完一行继续输出;-每行输完,输出换行回车 push dx mov dl,0dh int 21h mov dl,
4、0ah int 21h pop dx dec bxjne loop;未输完15行从新输入下一行exit: ret CODES ENDSEND START五、实验结果六、实验心得本次实验是我初次实际上机编写汇编实验,实验很简单,但在编写中出现大大下小不少问题,在修改程序的过程中也渐渐熟悉了MASM软件,并且也简单了解了调试功能。本次实验我具体地了解到了如何输出单个字符(及2号功能调用DOS),也熟悉了用堆栈保存信息,并简单了解了循环程序设计。实验二 查找匹配字符串一、 实验要求程序接受用户键入的一个关键字以及一个句子,如果句子中不包含关键字则显示“No match!”;如果句子中包含关键字则显示
5、“match!”,且把该字在句子中的位置用十六进制数显示出来。要求程序的执行过程如下:Enter keyword:abcEnter sentence:we are studying abcMatch at location:11H of the sentenceEnter sentence:xyzNo match!Enter sentence:二、 设计思路1. 输入关键字和一个句子,分别存入相应的缓冲区中(用功能调用2ah)。在句子中查找关键字用串比较命令cmpsb并加前缀repnz,SI为寄存器为关键字的指针, DI为寄存器为句子中正相比较的字段的指针,CX为寄存器存放关键字的字母个数(长
6、度), 整个句子和关键字的比较过程可以用一个循环结构来完成,循环次数为:(句子长度-关键字长度)+1; 在计算循环次数时,如遇到句子长度小于关键字长度的情况则应转向显示“no match”,循环中还需要用到BX寄存器,它用来保存句子中当前正在比较字段的首地址。比较完成有两种情况一种为句子比较完成,一种为在句子中找到与关键字相同的段,两种区别就是cx是否为零,为零则match。最后再用二进制转换十六进制将bx的数显示出来,即为关键字在句子中的位置。2.流程图 三、设计细节、要点(1)输入关键字和一个句子,分别存入相应的缓冲区中。可用功能调用0AH。(2)在句子中查找关键字: 关键字和句子中相应字
7、段的比较可使用串比较指令。为此必须定义附加段,但附加段和数据段可以定义为同一段,以便于串指令的使用,相应的寄存器内容也有了确定的含义,即如下: SI 寄存器为关键字的指针 DI 寄存器为句子中正相比较的字段的指针 CX 寄存器存放关键字的字母个数(长度) 整个句子和关键字的比较过程可以用一个循环结构来完成,循环次数为: (句子长度-关键字长度)+1在计算循环次数时,如遇到句子长度小于关键字长度的情况则应转向显示“no match”,循环中还需要用到BX寄存器,它用来保存句子中当前正在比较字段的首地址。 输出信息:用功能调用09h分“找到”或“找不到”两种情况分别显示不同的信息。在“找到”时,还
8、要求显示出匹配字符串在句子中的位置,在“找到”时BX寄存器的内容为匹配字符串的首地址,将此值减到句子的首地址,再将差值加1 即是所要的匹配字符串在句子中的位置,可将位置转换为十六进制。三、 实验程序DATAS SEGMENT para data mess1 db match!,13,10,$ mess2 db no match!,13,10,$ mess3 db enter keyword:,$ mess4 db enter sentence:,$ mess5 db match at location:,$ mess6 db H of the sentence,$ stoknim label
9、byte max db 10 act db ? stokn db 10 dup(?) sentence label byte ma db 100 ac db ? sto db 100 dup(?)DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,es:datasSTART: push ds sub ax,ax push ax MOV AX,DATAS MOV DS,AX mov es,ax;*输入关键字和一个句子*k: lea dx,mess3 mov ah,09 int 21h ; 显示字符串enter word lea dx,stoknim
10、mov ah,0ah int 21h ;输入关键字到缓冲区Word push dx mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 pop dxd: lea dx,mess4 mov ah,09 int 21h ;显示字符串enter sentence lea dx,sentence mov ah,0ah int 21h ;输入句子到缓冲区sentence push dx mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 pop
11、dx;*比较查找信息* lea si,stoknim ;si指向关键字 lea di,sentence ;di指向句子 mov ax,0 mov bl,1 ;初始化bx mov cl,0 ;初始化外循环计数单元 mov al,act mov ah,ac sub ah,al add ah,1 mov cl,ah ;cl中循环次数 cmp cl,0 je nomatcha: push cx mov cl,al repnz cmpsb jz match sub di,1 sub si,2 add bl,1 pop cx dec cl cmp cl,0 jne a je nomatch;*输出信息*m
12、atch: lea dx,mess1 mov ah,09h int 21h ;显示match push dx mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 pop dx lea dx,mess5 mov ah,09h int 21h ;显示match at location mov al,bl and al,0fh add al,30h cmp al,3ah jl p add al,7h p: mov dl,al mov ah,02h int 21h lea dx,mess6 mov ah,09h int 2
13、1h push dx mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 pop dx jmp wernomatch: lea dx,mess2 mov ah,09h int 21h ;显示no match push dx mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ;回车换行 pop dxwer: jmp d main endpCODES ENDS END START五、实验结果六、实验心得 本次是汇编第二个实验,相比第一个实验有更大难度
14、,但是实验内容也有一定实际意义,这次编写代码比较费时费力但也收益良多。 具体地在实验中学习使用了带前缀地串比较,学会了如何在一段字符中查找目标字符。更熟练地使用了循环程序设计,在句子位置显示部分也参照课本使用了二进制到十六进制转换,这方面知识掌握的更深入了。 这次由于时间所限,所写代码并不是十分完善,关于后续的改进,我有以下想法,上述程序,只能查找到句子中的首个关键字,即当出现 关键字为a,句子为abca时,只能找到第一个a。是由于程序设计中,当串比较match后,程序退出。所以我的改进为在显示match及在句子中位置后,继续从上述位置继续比较,一直把句子比较完才退出程序。这样会找到句子中所有
15、关键字位置,更有实用价值。实验三 分类统计字符个数一、 实验要求程序接受用户键入一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母、数字、其它字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中。二、 设计思路1. 先用01H功能调用接收一个字符,对照ASC码一步一步分类将各字符分入不同种类中并计数,最后用十进制数将各类字符数显示出来2. 流程图结束计数值置80接受1个字符 9?回车? Z? 0? A? z?Others+1开始显示others开始Ax/10显示al显示ah结束三、 实验程序DATAS SEGMENT string1 DB Input
16、 Your String: $;输入提示信息 string2 DB Digit: $ ;各类字符提示信息 string3 DB ALetter: $ string5 DB bLetter: $ string4 DB Others: $ digit DB 0 ;数字 letter DB 0 ;字母 others DB 0 ;其他DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: mov ax,datas mov ds,ax lea dx,string1 ;显示输入提示信息 mov ah,9 int 21h mov cx,80 ;设置循环次
17、数L1: mov ah,01h ;中断调用,单字符输入 int 21h cmp al,0dh ;若输入回车符则结束 jz over cmp al,30h jb OTHER ;若39H(9),跳转进一步比较 ja HIGHER1 jmp DIGITAL ;digit+HIGHER1: cmp al,41h ;if5ah(Z),跳转继续比较 ja HIGHER2 jmp LETTER1 HIGHER2: cmp al,61h ;if7AH(z),others+ ja OTHER jmp LETTER1 ;etter+OTHER: ;others+ inc others loop L1 DIGITA
18、L: ;digit+ inc digit loop L1 ALETTER1: ; letter+ inc Aletter loop L1 OVER: call ENDLINE ;回车换行 lea dx,string2 ;输出数字个数 mov ah,9 int 21h xor ax,ax mov al,digit ;将统计的数字送AL,为输出做准备 call DISPLAY ;调用输出两位数字的子程序 call ENDLINE lea dx,string5 ;输出字母个数 mov ah,9 int 21h xor ax,ax mov al,bletter call DISPLAY call EN
19、DLINE lea dx,string4 ;输出其他字符个数 mov ah,9 int 21h xor ax,ax mov al,others call DISPLAY mov ah,4ch int 21hENDLINE PROC NEAR ;控制输出格式,输出回车换行子程序 mov ah,2 mov dl,0ah ;换行 int 21h mov ah,2 mov dl,0dh ;回车 int 21h retENDLINE ENDPDISPLAY PROC NEAR ;输出两位数字的子程序 mov bl,10 ;10送BL div bl ;AX/BL,AL=商,AH=余数 push ax ;保
20、存AX中的信息 mov dl,al add dl,30h mov ah,2 int 21h ;输出十位数 pop ax ;出栈送AX mov dl,ah add dl,30h mov ah,2 int 21h ;输出个位数 retDISPLAY ENDPCODES ENDS四、 实验结果 五.实验心得这次实验目的主要是学会分支程序设计,虽然分类繁琐,可是我感觉本次实验并不是太难在实验中定义了letter,digit,others三个存储单元用于记录每种符号个数。在内循环中,找出字符串属于哪类,通过与相应的ASCII码进行比较来确定相应的类别,通过比较和跳转来对不同类别的符号计数。通过改变跳转条
21、件可以获得更加详细的分类结果。本次实验成功实现了题目的要求,可以统计输入字符类别的个数。本次试验中得到的结果仍需调用相应程序将二进制数转换为十六进制并显示出来。本实验的重点在分类,通过分支程序的角度来解决问题使问题得到简化。实验四 查找电话号码一、 实验要求(1) 要求程序建立一个可存放50项的电话号码表,每项包括人名及电话号码两部分;(2) 程序可接受输入人名及相应的电话号码,并把它们加入电话号码表中;(3) 凡有新的输入后,程序可按人名对电话号码表重新排序;(4) 程序可接受需要查询电话号码的人名,并从电话号码表中查出其电话号码,再在屏幕上以如下格式显示出来。 Name tel 二、 设计
22、说明(1)显示提示符 Input name:; (2)调用子程序 input_name 接收人名; (3)调用子程序 stor_name 把人名存入电话号码表 tel_tab 中:(4)显示提示符 Input a telephone number:;(5)调用子程序 inphone 接收电话号码,并把它存入电话号码表tel_tab中;(6)如输入已结束则调用 name_sort 子程序对电话号码表接人名排序; (7)显示提示符 Do you want a telephone number ?(Y/N);(8)回答N收退出程序; (9)回答Y则再显示提示符 name ?;(10)调用子程序 in
23、put_name接收人名;(11)调用子程序 name_search 在电话号码表中查找所要的电话号码; (12)调用子程序 printline 按要求格式显示人名及电话号码; (13)重复查号提示符直至用户不要求查号为止。三、设计思路1.模块图2.主要模块流程图四、模块说明模块名输入输出功能main总控制模块用户的各种操作选择如选择是否继续插入,继续查询等各种提示信息,如提示输入姓名、号码、提示是否继续操作建立联系人号码表,对号码表人名排序,提供查询、显示功能input_name联系人的姓名到tname缓冲区无读入姓名到tname缓冲区并把不满20位部分补空格name_searchtname
24、缓冲区的姓名查找结果放在bx寄存器在号码表查找tname缓冲区的姓名,找到则bx存放该记录的地址,否则(bx)=-1crlf无回车换行输出回车换行stor_nametname缓冲区的姓名把tname缓冲区的姓名移动到号码表,对应记录数tab_len增1,endaddr增28把姓名从缓冲区移动到号码表inphone电话号码把inphone缓冲区的号码移动到号码表中读入电话号码并转存到号码表中name_sort从tab_len取出记录数,从endaddr取出最后一个记录地址。号码表中只有最后一个记录无序,前面记录有序排序对号码表进行排序(用插入排序,每次输入一个联系人后进行排序) print_al
25、l号码表的地址无显示号码表中的所有电话号码printline要显示的联系人地址存放在bx无显示单个联系人的信息五 、实验程序dataseg segment namepar label byte maxnlen db 21 actnlen db ? _name db 21 dup(?) phonepar label byte maxplen db 9 actplen db ? phone db 9 dup(?) crlf db 13,10,$ endaddr dw ? mess1 db enter name:,$ mess2 db enter a telephone number:,$ mess
26、3 db Do you want a telephone number?(Y/N),$ mess4 db name?,$ mess5 db name,16 dup( ),tel,0dh,0ah,$ mess6 db Not in the table.,0dh,0ah,$ mess7 db Invalid input!,0dh,0ah,$ count db 0 tel_tab db 50 dup(20 dup( ),8 dup( ) temp db 20 dup( ),8 dup( ),0dh,0ah,$ s db 0dataseg ends;*codeseg segmentmain proc
27、far assume cs:codeseg,ds:dataseg,es:datasegstart: push ds sub ax,ax push ax mov ax,dataseg mov ds,ax mov es,ax; cld lea di,tel_tab ;di中存放表首地址inputloop: mov ah,09h lea dx,mess1 int 21h call input_name cmp actnlen,0 ;没有输入人名时 jz a1 ;直接跳到提示是否查找的地方 cmp count,50 ;输入上限 je a1 call stor_name ;保存人名到tel_tab mo
28、v ah,09h lea dx,mess2 int 21h call input_stor_phone ;输入并保存电话号码 jmp inputloopa1: cmp count,1 jbe searchloop ;如果没有输入或者输入一个 call name_sort ;排序 call disp_all ;显示所有searchloop: lea dx,mess3 mov ah,09h int 21h mov ah,01h int 21h cmp al,N je exit cmp al,n je exit cmp al,Y je showname cmp al,y je showname mo
29、v ah,09 lea dx,crlf int 21h lea dx,mess7 ;非法输入 mov ah,09h int 21h jmp searchloopshowname: mov ah,09 lea dx,crlf int 21h lea dx,mess4 ;当输入Y时,显示name? mov ah,09 int 21h call input_name ;输入要查找的人名 call name_search ;查找 call printline jmp searchloop exit: ret main endp;*input_name proc near mov ah,0ah lea
30、dx,namepar int 21h ;输入名字 mov dl,0ah mov ah,02h int 21h ;换行 mov bh,0 ;bx高位置0 mov bl,actnlen ;bx低位置输入名字个数 mov cx,21 sub cx,bx ;计算剩下的长度i1: mov _namebx,20h inc bx loop i1 ;把bx之后剩下的填充空格 retinput_name endp ;*stor_name proc near inc count ;有人名输入所以个数加1 cld lea si,_name ;把si指向刚才输入名字的位置 mov cx,10 ;把name中的前20个
31、字符放入tel_tab中每一个人信息的前20个byte中 rep movsw ;把si所指名字赋值给di所指地方tel_tab retstor_name endp ;* input_stor_phone proc near mov ah,0ah lea dx,phonepar int 21h ;把电话号码存入phonrpar mov ah,02h mov dl,0ah ;换行 int 21h mov bh,0 mov bl,actplen mov cx,9 sub cx,bx ;计算剩下的长度s2: mov phonebx,20h ;剩下的地方填充空格 inc bx loop s2 cld l
32、ea si,phone ;再把名字放入之后di就已经移动到名字之后了 mov cx,4 ;把phone中的前8个字符放入tel_tab中每一个人信息的后8个byte中 rep movsw retinput_stor_phone endp ;*name_sort proc near sub di,56 mov endaddr,din1: mov s lea si,tel_tabn2: mov cx,20 mov di,si add di,28 ;下一个被比较的名字 mov ax,di mov bx,si repe cmpsb ;比较20次 jbe n3 ;小于或等于不用交换 call npxch
33、gn3: mov si,ax cmp si,endaddr jbe n2 cmp s jnz n1 ret name_sort endp;*npxchg proc near mov cx,14 ;交换名字和电话号码 lea di,temp mov si,bx rep movsw ;move lower item to save mov cx,14 mov di,bx rep movsw mov cx,14 lea si,temp rep movsw mov s ret npxchg endp;*disp_all proc near mov ah,09h lea dx,mess5 int 21h
34、 lea si,tel_tabd1: lea di,temp mov cx,14 rep movsw mov ah,09h lea dx,temp int 21h dec count jnz d1 ret disp_all endp ;*name_search proc near lea si,tel_tab mov bx,si add endaddr,28e1: lea di,_name ;存放待查找的人名地址 mov cx,10 repe cmpsw jcxz exit3 ;相等 add bx,28 ;表中下一个比较的人名 mov si,bx cmp si,endaddr jbe e1 m
35、ov cx,-1 retexit3: mov si,bx lea di,temp mov cx,14 rep movsw ret name_search endp ;*printline proc near cmp cx,-1 je norecord mov ah,09h lea dx,mess5 int 21h ;输出name和tel mov ah,09h lea dx,temp int 21h ;输出名字和电话号码 retnorecord: mov ah,09h lea dx,mess6 int 21h ;输出没找到 retprintline endp ;* codeseg ends en
36、d start六、实验结果七、实验心得本次查找电话号码实验内容与我们现实生活更贴切,也更有实用性,设计起来虽然繁琐,但由于分成各个模块所以编起来层次分明,逻辑清晰。经过这次实验,我也对模块化编程有了更深入的了解。具体到本次试验,实验中最费力的地方便是电话簿排序的实现,最后我参照书中的冒泡排序及不断调试,终于编写成功。也学会使用了子程序,收益良多。实验五 屏幕窗口程序1 实验要求显示digit(18,15)(22,65)光标首先定位在右窗口最下面一行的行首(15,50),如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下左键,接着再从键盘输入字
37、符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。在屏幕上开出三个窗口,它们的行列坐标如下图所示。(1)光标首先定位在右窗口最下面一行的行首(15,50);(2)如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行;(3)若需要将字符显示于左窗口,则先按下键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。(4)在左窗口再按下键,则输入字符就会接在先前输入的字符之后显示出来。(5)当一行字符显示满(左右窗口一行显示20个字符,下
38、窗口一行显示50个字符)后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。二设计思路定义宏指令,在程序中可以直接引用宏指令,同时可赋予不同的参数而对不同的窗口进行上卷操作在数据段中设置6个变量lx,ly,rx,ry,dwx和dwy,它们分别来记录左窗口、右窗口和下窗口的当前光标位置,以保证在返回本窗口显示字符时,能够接着前一次显示的字符串之后继续显示。在窗口中每显示一个字符,都要修改光标的列变量,同时判断是否超出本窗口的边界,如果没有超出可续接收并显示字符,如已经超出边界,则需上卷一行同时把光标重新定位在本窗口底行的行首。流程图三、 实验代码datas segmentlx db 15 ;记录左窗口当前光
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智能仓储卷帘门系统采购及集成合同
- 2025年度区块链技术应用项目开发与许可合同
- 2025年休假村租赁协议模板
- 2025年建筑工程模板工程承包合同书
- 2025年信用卡债务履行协议
- 2025年金刚石膜工具项目立项申请报告模范
- 2025年血液系统用药项目规划申请报告模范
- 2025年街头篮球项目规划申请报告
- 2025年放射性药品项目提案报告模式
- 2025年生活用橡胶制品:塑胶盒项目规划申请报告范文
- 2024年云南省公务员考试【申论县乡卷、行测、事业单位招聘】3套 真题及答案
- 300亩文冠果树栽培基地建设项目可行性研究报告
- 数字媒体艺术专业行业分析报告
- 2025年度企业安全生产与环保管理服务协议范本3篇
- 全国职业院校技能大赛高职组(市政管线(道)数字化施工赛项)考试题库(含答案)
- 湖南省长沙市长郡教育集团2024-2025学年七年级上学期期末考试英语试题(含答案)
- 公司员工升职加薪制度模板
- 2024上海市招聘社区工作者考试题及参考答案
- 春季开学教职工安全培训
- (正式版)JTT 1497-2024 公路桥梁塔柱施工平台及通道安全技术要求
- 【班级管理表格】学生检讨反思承诺书
评论
0/150
提交评论