admin 管理员组

文章数量: 887033


2024年1月12日发(作者:以色列对以色列)

实验4 DOS系统功能调用

班级:xxx 学号:xxx 姓名:xxx

实验题目:完善“调用宏DOSINT:调用DOS系统功能实现字符串的输出和输入,其中10号功能需要的字符数要求从键盘输入”,要求输入的数字是多位数。

实验目的:

1. 掌握DOS系统功能的调用过程和方法;

2. 熟悉源程序基本组成:assume的使用、段寄存器的赋值、程序返回;

3. 掌握MASM、LINK、DEBUG等工具的使用。

实验设备:

软件:DOS操作系统、编辑软件、MASM 5.0

实验内容:

1. 程序代码

DOSINT MACRO NO

MOV AH,NO

INT 21H

ENDM

DATA SEGMENT

ERRSTR DB 'ERROR NUMBER!$'

Hello DB 'Hello World!$'

STRING DB ?,?,16 DUP(?),'$';预留空间

DATA ENDS

CODE SEGMENT

ASSUME DS:DATA,CS:CODE

BEGIN: MOV AX,DATA

MOV DS,AX ;初始化DS

MOV DX,OFFSET Hello ;串首地址送DX

DOSINT 9 ;宏调用

DOSINT 1 ;宏调用

CALL ASCIINUM ;子程序调用

MOV BL,AL

DOSINT 1 ;宏调用

CALL ASCIINUM

MOV CL,AL

MOV AL,BL

MOV BL,10

IMUL BL

ADD AL,CL

MOV STRING,AL

MOV DL,0AH

DOSINT 2

LEA DX, STRING ;取预留空间首地址

DOSINT 10

DOSINT 4CH ;宏调用返回DOS

ASCIINUM PROC

PUSH DX

CMP AL,30H ;’0’?

JB ERR

CMP AL,39H ;’9’?

JBE CHNG

CHNG: SUB AL,30H

JMP EXIT

ERR:LEA DX,ERRSTR

DOSINT 9

EXIT: POP DX

RET

ASCIINUM ENDP

CODE ENDS

END BEGIN

2. 调试过程(具体应用DEBUG指令及其结果)

使用DEBUG调试过程以及程序运行结果如下所示:

实验思考与总结:

通过本次实验,掌握了宏定义、宏体的组成、宏调用等方法,掌握了子程序设计以及如何调用子程序,返回主程序等语句的使用,了解了宏指令和子程序的区别;进一步熟悉了DOS系统功能的调用;学会了如何将十进制数显示输出。


本文标签: 调用 功能 实验 系统 过程