姓名:班级:学号:1/73.5实验五输入输出程序设计一、实验目的1)掌握输入输出程序的编写方法。2)熟悉系统功能调用的方法。3)熟悉动画程序的编写方法。二、实验内容1)在CRT上每隔一秒连续显示字符0-9。编程提示为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND0FH指令屏蔽高4位。2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。3)编制在屏幕上画线的子程序,调用该子程序画一矩形。4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。5)创建一磁盘文件,保存从键盘输入的字符串。6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。三、实验设备PC机一台四、实验步骤1)按程序流程图编制实验程序。姓名:班级:学号:2/72)输入源程序。3)汇编、连接程序,执行程序,检查结果。4)程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。五、实验报告的要求1)列出源程序。2)总结输入输出程序及动画的编写方法。3)总结常用系统调用的功能及调用方法。实验5-2源程序:STACKSEGMENTSTACKDW20DUP(0)STACKENDSDATASEGMENTBUFFDB6,7DUP(?),'$'DATAENDSINPUTMACROBUFEMOVDX,OFFSETBUFEMOVAH,0AHINT21HENDMPUTCHARMACROCHARMOVDL,CHARMOVAH,02HINT21H姓名:班级:学号:3/7ENDMCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXINPUTBUFF;读取字符串?BUFFPUTCHAR0DHPUTCHAR0AH;光标另起一行MOVCX,0003HNEXT:PUTCHAR2AHLOOPNEXTMOVCL,BUFF+1SUBCH,CHMOVBX,OFFSETBUFF+2BEGIN:MOVAL,[BX]PUTCHARALINCBXLOOPBEGINMOVCX,0003HNEXT1:PUTCHAR2AHLOOPNEXT1MOVAH,4CHINT21HCODEENDS姓名:班级:学号:4/7ENDSTART运行结果:实验5-3源程序:DATASEGMENTLOCDW?DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,SS:STACK1,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,00HMOVAL,13HINT10HMOVBH,0MOVAL,07HMOVAH,0CH姓名:班级:学号:5/7MOVCX,15HMOVDX,20HCALLLHCALLLVMOVCX,15HMOVDX,20HCALLLVCALLLHINT10HMOVAH,4CHINT21H;(画边角一点)LHPROCMOVLOC,CXMOVCX,100HLOPH:PUSHCXMOVCX,LOCINT10HINCCXMOVLOC,CXPOPCXLOOPLOPHMOVCX,LOCRETLHENDP姓名:班级:学号:6/7LVPROCMOVLOC,CXMOVCX,80LOPL:PUSHCXMOVCX,LOCINT10HINCDXMOVLOC,CXPOPCXLOOPLOPLMOVCX,LOCRETLVENDPCODEENDSENDSTART结果:姓名:班级:学号:7/7