汇编语言-实验五 输入输出程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五输入输出程序设计

一、实验目的

1) 掌握输入输出程序的编写方法。

2) 熟悉系统功能调用的方法。

3) 熟悉动画程序的编写方法。

二、实验内容

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

编程提示

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

2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。

3)编制在屏幕上画线的子程序,调用该子程序画一矩形。

4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。

5)创建一磁盘文件,保存从键盘输入的字符串。

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

7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。

8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。

三、源程序

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-1·EXE,屏幕上依次循环显示一个数字一个空格:

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

EXAM5-2

STACK SEGMENT STACK

DB 1024 DUP(0)

STACK ENDS

DA TA SEGMENT

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

DA TA 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:DA TA,SS:STACK START:MOV AX,DA TA

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 ***

EXAM5-5

NAME EXAM6

SSTACK SEGMENT STACK ’stack’

DB 1024 DUP(?)

SSTACK ENDS

DATA SEGMENT

ASKNAME DB 0DH,0AH,’Enter the’

DB ’dest file name:$’

ASKCONT DB 0DH,0AH,’Enter the string’

DB ’as file content:’0dh,0ah,’$’ FILEBUF DB 62,63DUP(?)

HAND_D DW?

MSGMER DB 0DH,0AH,0AH

DB ’Directory full’,0DH,0AH,’$’

MSGWER DB 0DH,0AH,0AH

DB ’Disk full’,0DH,0AH,’$’

MSGSUC DB 0DH,0AH,0AH,

DB ’Write file is Successful’

DB 0DH,0AH,’$’

DATA ENDS

DISPLY MACRO TEXT

MOV DX,OFFSET TEXT

MOV AH,09H

INT 21H

相关文档
最新文档