预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验六输入输出程序设计 学生姓名:何茂杰学号:2010305104专业班级:计算机本科一班 指导老师:文远熔实验日期:实验成绩: 一、实验目的 1)掌握输入输出程序的编写方法。 2)熟悉系统功能调用的方法。 3)熟悉动画程序的编写方法。 二、实验内容 1)在CRT上每隔一秒连续显示字符0-9。 编程提示 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 三.实验设计及步骤 为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND0FH指令屏蔽高4位。 1)在CRT上每隔一秒连续显示字符0-9。 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。 4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。 6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。 7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 四.实验结果 执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格: 0123456789…… 执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果: ***HELLO*** 五.实验心得: 通过这次的实验又进一步加深了对汇编的理解以及它的整个运行过程,能熟练掌握它的运行过程,也能够看懂一些基本的顺序设计的汇编程序,能设计出简单的顺序汇编。 刚上机时只想按照老师给出的提纲,把缺省的部分照上面给出的提示简单修改后拷贝,可是当程序出错时便不知道哪里的问题也不会修改,最后静下心仔细看程序后理解了,很快就做出来了。 在今后的学习中要吸取这次的教训,不能急于求成,要脚踏实地,掌握每一个知识点 源代码: EXAM5-1 STACKSEGMENTSTACK DB1024DUP(0) STACKENDS CODESEGMENT ASSUMECS:CODE,SS:STACK START:MOVBL,0 LP:MOVDL,20H MOVAH,2 INT21H MOVAL,BL ADDAL,0 DAA ANDAL,0FH MOVBL,AL PUSHBX ORAL,30H MOVDL,AL MOVAH,2 INT21H MOVBX,3E8H LP2:MOVCX,176H;延时1ms LP1:PUSHF POPF LOOPLP1 DECBX JNZLP2 POPBX INCBL JMPLP CODEENDS ENDSTART EXAM5-2 STACKSEGMENTSTACK DB1024DUP(0) STACKENDS DATASEGMENT BUFFDB6,7DUP(?),‘$’ DATAENDS INPUTMACROBUFE MOVDX,OFFSETBUFE MOVAH,0AH INT21H ENDM PUTCHARMACROCHAR MOVDL,CHAR MOVAH,02H INT21H ENDM CODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK START:MOVAX,DATA MOVDS,AX INPUTBUFF;读取字符串➝BUFF PUTCHAR0DH PUTCHAR0AH;光标另起一行 MOVCX,0003H NEXT:PUTCHAR2AH LOOPNEXT MOVCL,BUFF+1 SUBCH,CH MOVBX,OFFSETBUFF+2 BEGIN:MOVAL,[BX] PUTCHARAL INCBX LOOPBEGIN MOVCX,0003H NEXT1:PUTCHAR2AH LOOPNEXT1 MOVAH,4CH INT21H CODEENDS ENDSTART 执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果: ***HELLO***