武汉理工大学微机原理课程设计之存储器扩展分析与设计(3)

2018-11-24 18:42

武汉理工大学《微机原理与接口技术》课程设计说明书

按要求显示提示语句

图3-3输出程序流程图

提示继续输入 显示在屏幕 DOS调用输出指令 从键盘输入序号,并运用DOS命令将所得结果显示在屏幕上,随后返回输入序号提示语句。

3.3设计程序一

根据题目,尝试编写了一个简单程序。为与最后的程序作比较,将此程序列出,如下:

DATA SEGMENT

n0 db '0000000000000000000000000000000000000000' n1 db'1111111111111111111111111111111111111111' n2 db '2222222222222222222222222222222222222222' n3 db '3333333333333333333333333333333333333333' n4 db '4444444444444444444444444444444444444444' n5 db '5555555555555555555555555555555555555555' n6 db'6666666666666666666666666666666666666666' n7 db '777' n8 db '888'

Errmsg DB 'No! Input 0-8! Q or q , Exit $' ;输出错误信息 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA ;段属性说明 START:

MOV AX,DATA ;初始化DS MOV DS,AX LOP:

MOV AH,01H ;输入一个数字 INT 21H

8

武汉理工大学《微机原理与接口技术》课程设计说明书

CMP AL,'Q' ;判断是否输入字符与Q相等,相等跳到EXIT退出 JZ EXIT CMP AL,'q' ;判断是否输入字符与q相等,相等跳到EXIT退出 JZ EXIT CMP AL,'0' ;输入不在0-8范围则退出 JB ERR ;小于0跳转 CMP AL,'8' JA ERR ;大于8跳转 SUB AL,30H ;计算字符串的地址 MOV DH,28H MUL DH MOV BX,AX CALL DISP JMP LOP ERR:

MOV DL,0DH MOV AH,02 INT 21H MOV DX,OFFSET Errmsg MOV AH,9 INT 21H MOV DL,0DH MOV AH,02 INT 21H JMP LOP EXIT:

MOV AH,4CH INT 21

DISP PROC NEAR MOV DL,0DH MOV AH,02 INT 21H MOV DL,0AH MOV AH,02 INT 21H MOV CX,28H LOP1:

MOV DL,[BX] MOV AH,02H INT 21H INC BX LOOP LOP1 MOV DL,0DH MOV AH,02 INT 21H

;28H=40 ;数据放入BX ;输出错误信息后,继续输入序号 ;输出提示错误语句 ;回车和换行 ;返回LOP继续输入序号 ;返回DOS ;回车换行 ;多字符输入 ;28H=40 控制循环次数即输出的信息字符个数 ;循环输出字符串 ;BX打印字符 9

武汉理工大学《微机原理与接口技术》课程设计说明书

MOV DL,0AH MOV AH,02 INT 21H RET

DISP ENDP CODE ENDS

END START ;源程序结束

调试结果如图3-4所示。

图3-4调试结果

出现的问题有:

问题1:开始输入序号时,只能显示在屏幕的第一个空间。 问题2:在输出没有写满40个字符的字符串时,输出是乱码。 问题3:按Q或q退出时,还会显示一串数字再退出。

3.4设计程序二

在程序一调试的基础上,检查程序发现一些问题,在输入不是Q或q或0至8的数字时,没有写输出显示字符的程序;输入是应该是字符串,因为有回车。在此基础上,继续改善设计的程序,设计出程序二,即最终程序。

输入一个序号,首先判断是否是Q或q。如果是,则直接跳出,结束程序。如果不是,就在已设定好的信息库中检索相应信息,并将信息显示在屏幕上,紧接着跳入下一次序号输入界面。如果没有相应的序号所对应的信息,即超出序号范围会自动报错,并跳到下一次序号输入界面。

主体部分程序如下:

BEGIN:

CALL CRLF ;回车换行

10

武汉理工大学《微机原理与接口技术》课程设计说明书

LEA DX,MSG ;输出提示语句Please input a number: MOV AH,09H INT 21H

MOV AH,1 ;输入序号 INT 21H

CMP AL,'Q' ;判断为?Q?退出 JE EXIT

CMP AL,'q' ;判断为?q?退出 JE EXIT

SUB AL,'0' ;小于0跳转ERROR JB ERROR

CMP AL,8 ;大于9跳转ERROR JA ERROR

MOV BX,OFFSET MSG0 ;取第一个字符串的首地址 MUL FORTY

ADD BX,AX ;找到相应字符串的地址 CALL DISPLAY ;调用DISPLAY子程序

定义ERROR程序:提示错误,重新要求输入序号,再次检测。

ERROR:

CALL CRLF ;回车换行

LEA DX,ERRMSG ;提示错误语句 MOV AH,09H INT 21H CALL CRLF

JMP BEGIN ;返回BEGIN程序

定义显示信息程序:将字符信息一个个输出。

DISPLAY PROC NEAR CALL CRLF

LEA DX,MSG9 ;提示语The message is: MOV AH,09H INT 21H

MOV CX,40 ;设置循环次数

DISP1:

MOV DL,[BX] ;输出字符串 MOV AH,2 INT 21H INC BX LOOP DISP1 CALL CRLF JMP BEGIN CALL CRLF

RET ;返回程序

DISPLAY ENDP

11

武汉理工大学《微机原理与接口技术》课程设计说明书

完整程序见附录一。

3.5调试过程

3.5.1调试过程

调试过程主要由编辑、汇编、链接和执行等几个步骤组成。当编辑好汇编语言源程序后,将其保存为.ASM文件。再调用汇编程序对源程序进行翻译,生成.OBJ的目标文件。在汇编过程中,源程序有错误则不能生成目标文件,经过多次修改最终生成无错误目标文件。之后,调用链接程序(LINK)将用户目标程序和库文件进行链接、定位,生成.EXE可执行文件。如果刚开始可执行程序运行之后没有得到预想的结果,又要重新检查源程序的算法错误,重新编辑、汇编、链接和执行,最终得到预期的结果。

3.5.2结果记录

经过多次调试、修改、测试结果,最后基本符合要求。 调试最终结果如图3-5所示。 完整的调试见附录二。

图3-5调试最终结果

12


武汉理工大学微机原理课程设计之存储器扩展分析与设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:长江大学土木工程结构试验复习题

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

马上注册会员

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