实验指导书 最终版(7)

2019-04-10 09:23

许昌学院微机原理实验指导书

实验六 子程序及DOS功能调用

一.实验目的

1、掌握子程序(过程)的结构、设计及调试方法。 2、掌握常用DOS功能调用的方法。 二.实验内容

1.熟悉分支及循环程序的设计思想和方法。

过程名

PROC [NEAR|FAR] …… ENDP

;过程体

过程名

2.了解常用DOS功能的调用方法(INT 21H)。

1)输入单个字符——DOS功能号:01H;

出口参数:AL=所输入的ASCII码;

功能:等待用户从键盘输入一个字符,输入字符后返回,同时显示所输入的字符。如按Ctrl+Break或Ctrl+C则退出。(验证课本P116例46) 2)输入字符串——DOS功能号:0AH;

入口参数:DS:DX指向字符串缓冲区的第1个字符,且第1个字节需填入最多接收的字符个数;

出口参数:前述缓冲区存放实际输入字符的个数(不包括回车);第3个字节开始将存放字符串的结果。实际输入的字符数多于所定义的数时,多出的字符将被丢掉,且响铃。

功能:等待用户输入字符,以回车结束。(验证课本P117例47) 3)显示单个字符——DOS功能号:09H;

入口参数:DL=待显示字符的ASCII码;

功能:在当前显示器光标位置显示给定字符,且光标右移一个字符位置。如按Ctrl+Break或Ctrl+C则退出。(验证课本P117例48) 4)显示字符串——DOS功能号:0AH;

27

许昌学院微机原理实验指导书

入口参数:DS:DX指向字符串所在内存的首地址,要求字符以$结束; 功能:显示器上输出指定的字符串。(验证课本P117例49)

3. 验证并运行课本P111例4-43和P112例4-44。

1)课本P111例4-43,将内存中一串1位的十六进制数转换为对应的ASCII码。

DATA SEGMENT

HEXBUF DB 02H,08H,0AH,09H,0FH COUNT EQU $-HEXBUF DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK HEXD PROC NEAR CMP AL, 0AH JL ADDZ

ADD AL, 'A'-'0'-0AH ADDZ: ADD AL, '0' RET HEXD ENDP

BEGIN: MOV AX, DATA MOV DS, AX

MOV BX, OFFSET HEXBUF MOV CX, COUNT REPEAT0:

MOV AL, [BX] CALL HEXD MOV [BX], AL INC BX

28

许昌学院微机原理实验指导书

LOOP REPEAT0 MOV AX, 4C00H INT 21H CODE ENDS END BEGIN

2)课本P112例4-44,将内存中两个字单元的值分别转换为4个ASCII码表示的十六进制数码串,串的起始地址为STRING1和STRING2.

DATA SEGMENT

NUMBER DW 25AFH,33FBH STRING1 DB 4 DUP (?) STRING2 DB 4 DUP (?) DATA ENDS STACK SEGMENT DB 100 DUP (?) STACK ENDS CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK HEXD PROC NEAR CMP AL, 0AH JL ADDZ

ADD AL,'A'-'0'-0AH ADDZ: ADD AL,'0' RET HEXD ENDP BEGIN:

MOV AX, DATA MOV DS, AX MOV ES, AX ;第一个字单元的转换 LEA BX, STRING1

29

许昌学院微机原理实验指导书

PUSH BX PUSH NUMBER CALL BINHEX ;第二个字单元的转换 LEA BX, STRING2 PUSH BX PUSH NUMBER+2 CALL BINHEX MOV AX, 4C00H INT 21H ;子程序

BINHEX PROC PUSH BP MOV BP, SP PUSH AX PUSH DI PUSH CX PUSH DX PUSHF

MOV AX, [BP+4] MOV DI, [BP+6] ADD DI, 3 MOV DX, AX MOV CX, 4 AGAIN: AND AX, 0FH CALL HEXD STD STOSB PUSH CX MOV CL, 4

30

许昌学院微机原理实验指导书

SHR DX, CL MOV AX, DX POP CX LOOP AGAIN POPF POP DX POP CX POP DI POP AX POP BP RET 4 BINHEX ENDP CODE ENDS END BEGIN

三.实验要求

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。 四.思考题

子程序是怎样被调用的?请用DEBUG调试程序观察并分析。 五.实验报告

1、程序说明。说明程序的功能、结构。

2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、画出程序框图。

4、写出源程序清单和执行结果。 5、回答思考题。

31


实验指导书 最终版(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:我爱我班——写一个学生感动我的故事

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: