大连理工大学 计算机原理实验 实验报告 联系客服

发布时间 : 星期五 文章大连理工大学 计算机原理实验 实验报告更新完毕开始阅读93e620596e175f0e7cd184254b35eefdc8d315e2

《计算机原理实验报告》----- 汇编语言编程部分

实验(3)名称:计算学生平均成绩实验

一、实验目的:

1、熟练掌握运算类指令以及其对各状态标志位的影响。 2、掌握运算类程序的设计及调试方法。 3、掌握BCD码的基本知识和BCD码的转换。

二、实验要求:

在DOS环境下利用EDIT软件来编辑源文件,并使用MASM和LINK工具对源文件进行编译链接,最终在实现对30个学生成绩的求和以及求平均数,并将平均数转换为BCD码显示出来。

三、程序流程图:

Buf:十进制数据串(30个字) data1:累加和(dw) data2:平均值(db) data3、4、5:BCD码(db) 显示姓名、学号字符调累加和子程序 调求平均值子程序 调转换子程序 调显示子程序 返回DOS 图一 求平均分流程图

四、程序清单:

data segment

buf dw 60,70,80,90,95,98,20,30,40,50 dw 25,35,65,67,88,99,100,78,12,23 dw 100,90,80,70,60,50,59,68,79,90 count equ ($-buf)/2 data1 dw ? data2 db ? data3 db ? data4 db ? data5 db ?

buf1 db ' my name is chongkun 201383109',0dh,0ah,'$' buf2 db 0dh,0ah,'$'

buf3 db ' The average score is ','$' buf4 db ' 80,100,100,80,75,66,58,100,69,95

',0dh,0ah,'95,72,78,58,62,63,98,91,72,78',0dh,0ah,'90,85,67,74,82,59,66,88,99,77',0DH,0AH,'$' data ends ssg1 segment

dw 100 dup(?) ssg1 ends

code segment

assume cs:code,ds:data,ss:ssg1 main: mov ax,data mov ds,ax

lea dx,buf1 mov ah,09h int 21h lea dx,buf4 mov ah,09h int 21h

call accum call average

call conver

lea dx,buf3

mov ah,09h int 21h call display

conver: mov al,data2 mov ah,0

mov bl,100 div bl

mov data3,al mov al,ah mov ah,0 mov bl,10 div bl

mov data4,al mov data5,ah ret

accum: mov cx,count mov lea lop: add bx,2 loop lop

mov data1,ax ret

average: mov ax,data1 mov div mov data2,al ret

display:

lop3: mov si,offset data3

mov al,ds:[si] and al,0f0h mov cl,04h add al,30h mov dl,al mov al,ds:[si] and al,0fh add al,30h mov mov ah,02h int

lop4: mov si,offset data4

mov al,ds:[si] and al,0f0h

ax,0 bx,buf ax,[bx] bl,count bl

shr al,cl

dl,al

21H

add

mov cl,04h shr al,cl

add al,30h mov dl,al mov al,ds:[si] and al,0fh add al,30h mov dl,al

mov ah,02h int 21H

lop5: mov si,offset data5

mov al,ds:[si] and al,0f0h mov cl,04h shr al,cl

add al,30h mov dl,al mov al,ds:[si] and al,0fh add al,30h mov dl,al

mov ah,02h int 21H

lea dx,buf2 mov ah,09h int 21h

lop22: mov ax,4c00h ; to DOS int 21h ret code ends

end main

五、实验结果:

学生签字: 日期:

图二 运行结果