汇编语言程序设计期末大作业。(2)

2025-08-03

mov ah,09h int 21h

lea dx,[si].English call TureShow

call MessTb ;输出1个Tab 用于排序对齐 lea dx,mess4 mov ah,09h int 21h

lea dx,[si].Chinese call TureShow

call MessTb ;输出1个Tab 用于排序对齐 lea dx,mess5 mov ah,09h int 21h

lea dx,[si].Math call TureShow

call MessTb ;输出1个Tab 用于排序对齐 lea dx,messSumScore mov ah,09h int 21h mov ax,[di] call Output call Endline add bx,2 add di,2 loop Loop1

lea dx,messNext mov ah,09h int 21h pop di pop si pop dx pop ax pop cx ret

ShowStu endp

;============================================================= ;子程序名:Endline ;功能:回车换行

;============================================================= Endline proc near

push ax ;保护相关寄存器 push dx push cx

mov ah,2 ;回车 mov dl,0ah int 21h

mov ah,2 ;换行 mov dl,0dh int 21h pop cx pop dx pop ax ret

Endline endp

;============================================================= ;子程序名GetEnglishScores:

;功能:将得到的指定个学生的分数以十进制保存到EnglishScore缓冲区中 ;============================================================= GetEnglishScore proc near

push di ;保护相关寄存器 push si push dx push cx push bx push ax push bp lea si,Stu ;使si指向第一个学生的偏移地

lea bp,EnglishScore ;使bp指向以十进制存学生分数的地址 mov cx,10 ;共有指定个学生 LoopScores0:

push cx ;保护外循环的CX值

lea bx,[si].English ;使bx指向学生字符分数缓冲区 xor di,di xor cx,cx

mov cl,[bx+1] ;学生字符分数缓冲区的字符数即使循环次数 LoopScore0:

mov al,[bx+2] ;从第三个偏移地址开始 sub al,30h ;得到一个十进制值 xor ah,ah xchg ax,di ;使其暂存到di,且将高位di的值乘10 push si ;保护寄存器的原值 push dx mov si,10

mul si ;将si乘10,乘积低位保存在ax pop dx pop si

xchg ax,di ;将原来di中低位的值与高位的值ax交换回来

add di,ax ;至此又录入一位十进制数 inc bx

loop LoopScore0 mov ax,di

mov ds:[bp],al ;将得到的十进制分数存入保存十进制分数缓冲区EnglishScore中

add si,50 ;使di指向下一个学生的偏移地址

inc bp ;使bp指向下一个保存十进制分数缓冲区的下一个单元,以保存下一个学生的分数

pop cx ;弹出外循环的CX值 loop LoopScores0 pop bp pop ax pop bx pop cx pop dx pop si pop di ret

GetEnglishScore endp

;============================================================= ;子程序名GetChineseScore:

;功能:将得到的指定个学生的分数以十进制保存到ChineseScore缓冲区中 ;============================================================= GetChineseScore proc near

push di ;保护相关寄存器 push si push dx push cx push bx push ax push bp lea si,Stu ;使di指向第一个学生的偏移地

lea bp,ChineseScore ;使bp指向以十进制存学生分数的地址 mov cx,10 ;共有指定个学生 LoopScores1:

push cx ;保护外循环的CX值

lea bx,[si].Chinese ;使bx指向学生字符分数缓冲区

xor di,di xor cx,cx

mov cl,[bx+1] ;学生字符分数缓冲区的字符数即使循环次数 LoopScore1:

mov al,[bx+2] ;从第三个偏移地址开始

sub al,30h ;得到一个十进制值 xor ah,ah xchg ax,di ;使其暂存到si,且将高位si的值乘10 push si ;保护寄存器的原值 push dx mov si,10

mul si ;将si乘10,乘积低位保存在ax pop dx pop si

xchg ax,di ;将原来si中低位的值与高位的值ax交换回来 add di,ax ;至此又录入一位十进制数 inc bx

loop LoopScore1 mov ax,di

mov ds:[bp],al ;将得到的十进制分数存入保存十进制分数缓冲区ChineseScore中

add si,50 ;使di指向下一个学生的偏移地址

inc bp ;使bp指向下一个保存十进制分数缓冲区的下一个单元,以保存下一个学生的分数

pop cx ;弹出外循环的CX值 loop LoopScores1 pop bp pop ax pop bx pop cx pop dx pop si pop di ret

GetChineseScore endp

;============================================================= ;子程序名GetMathScore:

;功能:将得到的指定个学生的数学分数以十进制保存到MathScore缓冲区中 ;============================================================= GetMathScore proc near

push di ;保护相关寄存器 push si push dx push cx push bx push ax push bp lea si,Stu ;使di指向第一个学生的偏移地

lea bp,MathScore ;使bp指向以十进制存学生分数的地址

mov cx,10 ;共有指定个学生 LoopScores2:

push cx ;保护外循环的CX值

lea bx,[si].Math ;使bx指向学生字符分数缓冲区

xor di,di xor cx,cx

mov cl,[bx+1] ;学生字符分数缓冲区的字符数即使循环次数 LoopScore2:

mov al,[bx+2] ;从第三个偏移地址开始 sub al,30h ;得到一个十进制值 xor ah,ah xchg ax,di ;使其暂存到si,且将高位si的值乘10 push si ;保护寄存器的原值 push dx mov si,10

mul si ;将si乘10,乘积低位保存在ax pop dx pop si

xchg ax,di ;将原来si中低位的值与高位的值ax交换回来 add di,ax ;至此又录入一位十进制数 inc bx

loop LoopScore2 mov ax,di

mov ds:[bp],al ;将得到的十进制分数存入保存十进制分数缓冲区MathScore中

add si,50 ;使di指向下一个学生的偏移地址

inc bp ;使bp指向下一个保存十进制分数缓冲区的下一个单元,以保存下一个学生的分数

pop cx ;弹出外循环的CX值 loop LoopScores2 pop bp pop ax pop bx pop cx pop dx pop si pop di ret

GetMathScore endp

;============================================================== ;子程序名:Writetofile

;功能:用于创建文件并且存储学生信息


汇编语言程序设计期末大作业。(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2024小升初50道经典奥数题及答案详细解析

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219