汇编语言学生名次实验报.docVIP

  • 31
  • 0
  • 约4.39千字
  • 约 10页
  • 2017-11-21 发布于福建
  • 举报
汇编语言学生名次实验报

计算机__汇编语言实验报告 2011年 11月 27 日 姓 名 韩 郭 张 王(河南师范大学) 学 号 专 业 计算机科学与技术 班 级 2010级 一班 实验题目:显示学生名次表 实验目的: 1、熟练掌握循环与分支程序设计方法 2、熟练掌握子程序设计方法 3、熟悉8086处理器指令系统 实验内容与步骤: 分析题目,总体设计 该实验题目的要求是: 设计一个显示学生名次表,程序要包括分支、循环和子程序设计、输入输出程序设计、BIOS和DOS中断等实验项目 图1 设计各模块 main模块: 主要完成功能: 总控模块,根据输入的学生成绩, 计算并显示学生的名次。 输入:从键盘输入一个班的学生成绩 输出:显示一个班的学生名次 程序框图如图2-1 图2-1 input模块 主要完成功能: 接受一个班的成绩, 调用子模块decibin把从键盘输入的一个十进制数转换为二进制数。 调用子模块crlf完成回车、换行功能 以学号为序从键盘输入一个班的学生成绩,各个成绩之间用逗号隔开,最后以‘回车’符合结束 程序框图如图2-2 图2-2 rankp模块 主要完成功能:计算一个班的学生名次 输入:从grade数组取得一个班的学生成绩 输出:以学号为序计算出该班每个学生的名次,存入rank数组 output模块 主要完成功能:显示一个班的学生的名次,调用子模块binidec,以便把rank数组中的二进制数转换为十进制数并在终端显示出来 输入:从rank数组取得一个班的学生名次 暑促:把一个班的学生名次以学号为序显示在终端上 程序框图如图2-3 图2-4 图2-3 decibin模块 主要完成功能:把从键盘取得的一个十进制数转换为二进制数,并将该数存入BX寄存器中 输入:从键盘取得一个十进制数 输出;把该数转换为二进制数并存入BX寄存器中。 程序框图如图2-4 crlf模块 主要完成功能:完成一次回车、换行操作 输出:向终端发出回车、换行符 程序框图如图2-5 图2-5 2-5 binidec模块 主要完成功能:把BX寄存器中的二进制数转换为十进制数,并在终端上显示出来 输入:从BX寄存器中取得一个二进制数 输出:在终端屏幕上显示一个十进制数 程序框图如图2-6 图2-6 图2-7 dec_div模块 主要完成功能:把BX寄存器中的二进制数除以相应的十的幂,并在屏幕上显示一位上。余数保存在BX寄存器中。 输入:从BX寄存器中取得需转换为十进制数的数 输出:在屏幕上显示一位十进制数 程序框图如图2-7 代码编写 启动记事本,根据各个函数的流程图编写出如下代码: datarea segment grade dw 50dup(?) rank dw 50dup(?) count dw ? mess1 db Grade?$ mess2 db 13,10,Input Error!,13,10,$ mess3 db Rank:$ datarea ends prognam segment main proc far ;main函数,计算并显示学生的名次 assume cs:prognam,ds:datarea start: push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov ax,datarea mov ds,ax call input call rankp call output ret main endp input proc near ;接受一个班的成绩 lea dx,mess1 mov ah,09 int 21h mov si,0 mov count,0 enter: call decibin inc count cmp dl,, je store cmp dl,13 je exit2 jne error store: mov grade[si],bx add si,2 jmp enter error: lea dx,mess2 mov

文档评论(0)

1亿VIP精品文档

相关文档