大连理工大学计算机原理实验,大连理工大学计算机原理实验实验报告.docx

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

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

亠、实验目的:

1、熟练掌握运算类指令以及其对各状态标志位的影响

2、掌握运算类程序的设计及调试方法。

3、掌握BC码的基本知识和BC码的转换。

二、实验要求:

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

、程序流程图:

调累加和子程序调求平均值子程序调转换子程序调显示子程序返回DOS

调累加和子程序

调求平均值子程序

调转换子程序

调显示子程序

返回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

ax,0

lea

bx,buf

lop:

add

ax,[bx]

add bx,2

loop lop mov data1,ax ret

average: mov ax,data1 movbl,count

divbl

mov data2,al ret

display:

lop3: mov si,offset data3 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

lop4: mov si,offset data4 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

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 int21H

lea dx,buf2 movah,09h

int21h

lop22:

mov ax,4c00h ; to DOS int 21h ret

code end

ends main

、实验结果:

DOSBox 0.74■匚pu3000 匚yde缶 FemEskip 0, Program: DOS?.-

Cross-reference CNUL.CRF1:

4呻76 * 453189 Bytes symbolfree

0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值