汇编语言程序设计期末大作业。
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
stude nt ends
;数据段
data segme nt
messMe nu
db
'TheHomework
of
Assembler
----$'
messMe nu1
db
'Name:TU
LIN
No:8000110028------
$'
messNext
db
$'
messName db 'Please in put the stude nt n ame(<11):$' messNum db 'Please in put the stude nt nu mber(<11):$' messE nglish db 'Please in put the En glish score:$' messChi nese db 'Please in put the Chin ese score:$' messMath db 'Please in put the Math score:$' mess1db 'n ame:$'
程序运行停止一下,按回车键继续执行
程序运行暂停一下,按回车键,继续执
;子程序名:GetStudent
;功能:录入学生信息
GetStude nt proc n ear
push si
push dx
push ax
push cx;子程序保护现场
lea dx,messName
mov ah,9
int 21h
lea dx,[si].S name
(2)按照各科成绩总分先高后低的顺序输出全部学生记录和排名顺序;
(3)输出总分高于班平均总分的全部学生记录。
要求:元月4日前提交一份纸质报告(班长统一收齐)。
大作业格式:
1.标题:汇编语言程序设计期末大作业
2.作业题目:(上述)
3.算法分析(流程图)
4.实现代码(必须含注释)
5.实验结果(汇编、连接、运行的截图)
mov ss,ax;
mov sp,0 call En dli ne lea dx,messMe nu mov ah,09h int 21h
将数据段首地址传给ds
将堆栈段首地址传给ss
call En dli ne lea dx,messMe nu1 mov ah,09h int 21h call En dli ne lea si,Stu;
call Writetofile call stop call SumAverage call GetSum call GetAddress call SortStude nt call Stop行
call ShowStu mov ah,4ch int 21h
取student的首地址给si
输出循环结束
mess2db 'nu mber:$'
db 'En glish:$' db 'Chi nese:$' db 'Math:$'
mess3
mess4
mess5 messSumScore db 'SumScore:$' MessTabdb 09,'$'
齐
StudAddress dw 10 dup⑺
En glishScore db 10 dup⑺生英语成绩的十进制数
6.总结
代码实现
stude nt struct来自百度文库定义结构
Snu mber db 11,0,11 dup⑺
Sn ame db 11,0,11 dup⑺
En glish db 4,0, 4 dup⑺
Chinese db 4,0, 4 dup⑺
Math db 4,0, 4 dup⑺
Sum db 4,0, 4 dup⑺
lea dx,[si].Ch in ese mov ah,0Ah int 21h call En dli ne lea dx,messMath mov ah,9 int 21h lea dx,[si].Math mov ah,0Ah int 21h call En dli ne pop cx pop ax pop dx pop si ret
Chi neseScore db 10 dup⑺
生语文成绩的十进制数
MathScore db10dup⑺生数学成绩的十进制数
Average
Buf db6dup⑺SumScore dw记录每个学生总分
NumbersOfStude nt
Stu stude nt 10 dup(<>)
dw?
10dup⑺
db0
汇编语言程序设计期末大作业:
编写一完整的汇编语言源程序, 实现从键盘输入一个班(不少于10人)的学生记录(学号:8位数字、姓名:不多余10个英文字符,语文:0-100的整数、数学:0-100的整数、英语:0-100的整数)后,
(1)将输入的记录保存在C盘根目录下名为stuscore.dat的文件中;
mov cx,10
In putStu:
call GetStude nt lea dx,messNext mov ah,09h int 21h add si,50 loop In putStu lea si,Stu call GetE nglishScore call GetCh in eseScore call GetMathScore call Stop;
;Tab
用于排列对
;存各学生的偏移地址
存学
存学
存学
用于
SumRa nk
db 0, 1,2, 3, 4, 5, 6, 7, 8, 9
FName
db 'C:\StuScore.dat', 0;文件
FileHa ndle
dw ?;文件句柄
En dOfFile
dw 0ffh
OtherLi ne
db 0ah, 0dh, '$'
FileSpace
db ""
i ends
data
;堆栈段
stack segme nt
db 100h dup⑺
stack ends
;代码段
code segme nt
assume cs:code,ds:data,ss:stack start: mov ax,data
mov ds,ax;
mov ax,stack
mov ah,0Ah
int 21h call En dli ne lea dx,messNum mov ah,9 int 21h lea dx,[si].S nu mber mov ah,OAh int 21h call En dli ne lea dx,messE nglish mov ah,9 int 21h lea dx,[si].E nglish mov ah,0Ah int 21h call En dli ne lea dx,messCh in ese mov ah,9 int 21h
;数据段
data segme nt
messMe nu
db
'TheHomework
of
Assembler
----$'
messMe nu1
db
'Name:TU
LIN
No:8000110028------
$'
messNext
db
$'
messName db 'Please in put the stude nt n ame(<11):$' messNum db 'Please in put the stude nt nu mber(<11):$' messE nglish db 'Please in put the En glish score:$' messChi nese db 'Please in put the Chin ese score:$' messMath db 'Please in put the Math score:$' mess1db 'n ame:$'
程序运行停止一下,按回车键继续执行
程序运行暂停一下,按回车键,继续执
;子程序名:GetStudent
;功能:录入学生信息
GetStude nt proc n ear
push si
push dx
push ax
push cx;子程序保护现场
lea dx,messName
mov ah,9
int 21h
lea dx,[si].S name
(2)按照各科成绩总分先高后低的顺序输出全部学生记录和排名顺序;
(3)输出总分高于班平均总分的全部学生记录。
要求:元月4日前提交一份纸质报告(班长统一收齐)。
大作业格式:
1.标题:汇编语言程序设计期末大作业
2.作业题目:(上述)
3.算法分析(流程图)
4.实现代码(必须含注释)
5.实验结果(汇编、连接、运行的截图)
mov ss,ax;
mov sp,0 call En dli ne lea dx,messMe nu mov ah,09h int 21h
将数据段首地址传给ds
将堆栈段首地址传给ss
call En dli ne lea dx,messMe nu1 mov ah,09h int 21h call En dli ne lea si,Stu;
call Writetofile call stop call SumAverage call GetSum call GetAddress call SortStude nt call Stop行
call ShowStu mov ah,4ch int 21h
取student的首地址给si
输出循环结束
mess2db 'nu mber:$'
db 'En glish:$' db 'Chi nese:$' db 'Math:$'
mess3
mess4
mess5 messSumScore db 'SumScore:$' MessTabdb 09,'$'
齐
StudAddress dw 10 dup⑺
En glishScore db 10 dup⑺生英语成绩的十进制数
6.总结
代码实现
stude nt struct来自百度文库定义结构
Snu mber db 11,0,11 dup⑺
Sn ame db 11,0,11 dup⑺
En glish db 4,0, 4 dup⑺
Chinese db 4,0, 4 dup⑺
Math db 4,0, 4 dup⑺
Sum db 4,0, 4 dup⑺
lea dx,[si].Ch in ese mov ah,0Ah int 21h call En dli ne lea dx,messMath mov ah,9 int 21h lea dx,[si].Math mov ah,0Ah int 21h call En dli ne pop cx pop ax pop dx pop si ret
Chi neseScore db 10 dup⑺
生语文成绩的十进制数
MathScore db10dup⑺生数学成绩的十进制数
Average
Buf db6dup⑺SumScore dw记录每个学生总分
NumbersOfStude nt
Stu stude nt 10 dup(<>)
dw?
10dup⑺
db0
汇编语言程序设计期末大作业:
编写一完整的汇编语言源程序, 实现从键盘输入一个班(不少于10人)的学生记录(学号:8位数字、姓名:不多余10个英文字符,语文:0-100的整数、数学:0-100的整数、英语:0-100的整数)后,
(1)将输入的记录保存在C盘根目录下名为stuscore.dat的文件中;
mov cx,10
In putStu:
call GetStude nt lea dx,messNext mov ah,09h int 21h add si,50 loop In putStu lea si,Stu call GetE nglishScore call GetCh in eseScore call GetMathScore call Stop;
;Tab
用于排列对
;存各学生的偏移地址
存学
存学
存学
用于
SumRa nk
db 0, 1,2, 3, 4, 5, 6, 7, 8, 9
FName
db 'C:\StuScore.dat', 0;文件
FileHa ndle
dw ?;文件句柄
En dOfFile
dw 0ffh
OtherLi ne
db 0ah, 0dh, '$'
FileSpace
db ""
i ends
data
;堆栈段
stack segme nt
db 100h dup⑺
stack ends
;代码段
code segme nt
assume cs:code,ds:data,ss:stack start: mov ax,data
mov ds,ax;
mov ax,stack
mov ah,0Ah
int 21h call En dli ne lea dx,messNum mov ah,9 int 21h lea dx,[si].S nu mber mov ah,OAh int 21h call En dli ne lea dx,messE nglish mov ah,9 int 21h lea dx,[si].E nglish mov ah,0Ah int 21h call En dli ne lea dx,messCh in ese mov ah,9 int 21h