99网
您的当前位置:首页汇编实验报告--输入输出程序设计

汇编实验报告--输入输出程序设计

来源:99网
实验六 输入输出程序设计

学生姓名: 何茂杰 学 号: 2010305104 专业班级:计算机本科一班 指导老师: 文远熔 实验日期: 实验成绩:

一、实验目的

1) 掌握输入输出程序的编写方法。 2) 熟悉系统功能调用的方法。 3) 熟悉动画程序的编写方法。

二、实验内容

1)在CRT上每隔一秒连续显示字符0-9。 编程提示

2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 三.实验设计及步骤

为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND 0FH指令屏蔽高4位。

1)在CRT上每隔一秒连续显示字符0-9。

2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。

4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。

6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。

7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 四.实验结果

执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格:

0 1 2 3 4 5 6 7 8 9 ……

执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果: *** HELLO ***

五.实验心得:

通过这次的实验又进一步加深了对汇编的理解以及它的整个运行过程,能熟练掌握它的运行过程,也能够看懂一些基本的顺序设计的汇编程序,能设计出简单的顺序汇编。 刚上机时只想按照老师给出的提纲,把缺省的部分照上面给出的提示简单修改后拷贝,可是当程序出错时便不知道哪里的问题也不会修改,最后静下心仔细看程序后理解了,很快就做出来了。

在今后的学习中要吸取这次的教训,不能急于求成,要脚踏实地,掌握每一个知识点

源代码:

EXAM5-1

STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS CODE SEGMENT

ASSUME CS:CODE,SS:STACK START: MOV BL, 0 LP: MOV DL, 20H MOV AH, 2 INT 21H

MOV AL, BL ADD AL, 0 DAA

AND AL, 0FH MOV BL, AL PUSH BX OR AL, 30H MOV DL, AL MOV AH, 2 INT 21H

MOV BX, 3E8H

LP2: MOV CX, 176H ;延时1ms LP1: PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP

CODE ENDS

END START

EXAM5-2

STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DATA SEGMENT

BUFF DB 6,7 DUP(?),‘$’ DATA ENDS

INPUT MACRO BUFE

MOV DX, OFFSET BUFE

MOV AH, 0AH INT 21H ENDM

PUTCHAR MACRO CHAR MOV DL, CHAR MOV AH, 02H INT 21H ENDM CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX, DATA

MOV DS, AX

INPUT BUFF ;读取字符串➝BUFF PUTCHAR 0DH

PUTCHAR 0AH ;光标另起一行 MOV CX, 0003H NEXT:PUTCHAR 2AH

LOOP NEXT MOV CL, BUFF+1 SUB CH, CH

MOV BX, OFFSET BUFF+2

BEGIN: MOV AL, [BX]

PUTCHAR AL

INC BX

LOOP BEGIN

MOV CX, 0003H

NEXT1: PUTCHAR 2AH

LOOP NEXT1

MOV AH, 4CH

INT 21H

CODE ENDS

END START

执行程序EXAM5-2·EXE,输入HELLO↙屏幕上显示结果: *** HELLO ***

因篇幅问题不能全部显示,请点此查看更多更全内容