汇编实验14.docx

上传人:b****8 文档编号:10280445 上传时间:2023-02-09 格式:DOCX 页数:14 大小:52.60KB
下载 相关 举报
汇编实验14.docx_第1页
第1页 / 共14页
汇编实验14.docx_第2页
第2页 / 共14页
汇编实验14.docx_第3页
第3页 / 共14页
汇编实验14.docx_第4页
第4页 / 共14页
汇编实验14.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

汇编实验14.docx

《汇编实验14.docx》由会员分享,可在线阅读,更多相关《汇编实验14.docx(14页珍藏版)》请在冰豆网上搜索。

汇编实验14.docx

汇编实验14

暨南大学本科实验报告专用纸

课程名称汇编语言程序设计成绩评定

实验项目名称课程综合设计

一、实验目的和要求

1)利用本学期所学汇编知识完成一次综合设计。

2)熟悉各种输入、输出方法的调用方法。

设计一个打字练习软件,具体要求如下:

1)利用BIOS的屏幕窗口功能制作一个用户菜单,菜单包括:

①欢迎用语,提示按“ESC”键退出练习;②开始练习,给出练习句子;③显示成绩和时间;④退出用语

2)每次打字之前,屏幕上先显示出一个句子,然后打字员按照例句,将句中字符通过键盘输入。

这个过程反复进行。

利用BIOS16H键盘功能调用来判断输入是否正确,不正确给出标示;

3)利用DOS系统时间调用计时,屏幕上以min:

sec:

msec的格式显示出练习时间

4)练习句子定义在数据段中,定义10行,每行10个字符,区分大小写,分数根据准确率给出;允许中途退出,退出时给出提示语和选择,确定退出不给分和计时。

二、程序流程图(每题分开写)

三、源程序(每题分开写)

DSEGSEGMENT'DATA'

;addyourdatahere!

resdb0,0,0,'time:

'

mindb0,0,'min'

secdb0,0,'sec',10,13,'$'

timesdb0,0

string1db'WelcomeBABY!

',13,10,36

string2db'1toQUIT',13,10,36

string3db'2TOstart',13,10,36

string4db'No',13,10,36

string5db0

string6db'Pleasewritesuchsentences',13,10,36

;thedefinitionofthesentences

note0db'Hello!

Theme',13,10,36

note1db'abcdefghigklm',13,10,36

note2db'whatareyouns',13,10,36

note3db'aaaaaaaaaa',13,10,36

note4db'bbbbbbbbbbbbb',13,10,36

note5db'ccccccccccccc',13,10,36

note6db'globalhis',13,10,36

note7db'mmmmmmmmmmmmmm',13,10,36

note8db'kkkkkkkkkkkkk',13,10,36

note9db'nnnnnnnnnnnnn',13,10,36

lengthListdb13,13,14,10,14,13,11,12,13,13

outmsgdb'Yourgradeis',36

spacedb13,10

scoredb0

string6Timedw10

guangbiaomacrox,y//清屏

pushdx

pushbx

movdl,x

movdh,y

movbh,0

movah,02h;置光标位置BH=显示页号;DH:

DL=行:

int10h

popbx

popdx

endm

outputstrmacrostring

leadx,string

movah,09h

int21h

endm

DSEGENDS

SSEGSEGMENTSTACK'STACK'

db256DUP(0)

SSEGENDS

CSEGSEGMENT'CODE'

STARTPROCFAR

;setsegmentregisters:

MOVAX,DSEG

MOVDS,AX

MOVES,AX

;addyourcodehere

callDtishiyuju;//输出提示性语句

yaoqiu:

movah,0;//键盘功能调用,读键盘

int16h

cmpal,'1'

jzs0

cmpal,'2'

jzs1

jmps2

s1:

callexercise

movah,1

int21h

jmps0

s2:

guangbiao1,20

outputstrstring4

jmpyaoqiu

s0:

movah,4ch

xoral,al

int21h

end:

;////读取时间

movah,2ch

int21h

subcl,times

subdh,times+1

movtimes,cl

movtimes+1,dh

MOVAX,4C00h;exittooperatingsystem.

INT21h

STARTENDP

DrawUIproc

;cleartheentirescreen

pushax

pushdx

pushbx

pushcx

movah,07h

moval,0

movcl,0

movch,0

movbh,7

movdh,25

movdl,80

int10h

popcx

popbx

popdx

popax

ret

DrawUIendp

Dtishiyujuproc

;todrawthewelcomeinterface

guangbiao22

outputstrstring1

guangbiao12,8

outputstrstring3

guangbiao12,12

outputstrstring2;/////将提示性语句输出来

ret

Dtishiyujuendp

exerciseproc

mov[score],0

leasi,note0

subsi,3

ex:

dec[string6Time]

callDrawUI

guangbiao0,0

leadx,string6

movah,09h

int21h

addsi,3

guangbiao12,10

movdx,si

movah,09h

int21h

leadi,lengthList

adddi,string6Time

movcl,[di]

movch,0

guangbiao11,15

xordx,dx

judge:

movah,01h

int21h

cmp[si],al

jzaddpoint

cmpal,1bh

jz.endexercise

jmp.conti

addpoint:

incdl

jmp.conti

.conti:

incsi

loopjudge

add[score],dl

cmp[string6Time],0

jz.endexercise

jmpEX

.endexercise:

calldisplayresult

ret

exerciseendp

displayresultproc

callDrawUI///分数

cmpscore,100

jgeB1

cmpscore,90

jgeB2

cmpscore,80

jgeB3

cmpscore,70

jgeB4

jmpB5

B1:

movdl,'A'

jmpoutput

B2:

movdl,'B'

jmpoutput

B3:

movdl,'C'

jmpoutput

B4:

movdl,'D'

jmpoutput

B5:

movdl,'E'

jmpoutput

output:

pushdx

leadx,outmsg

movah,09h

int21h

popdx

movah,02h

int21h

ret

displayresultendp

CSEGENDS

ENDSTART;setentrypoint.

四、结果分析(对输入\输出部分截屏)

五、实验总结

十个打字练习的截图较多,因为是打一句,然后屏幕就清屏,于是就只截了几个

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1