77范文网 - 专业文章范例文档资料分享平台

东华微机实验aaa(8)

来源:网络收集 时间:2019-07-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

CALL DISPLAY MOV BX,WORD PTR ADDOP2 CALL DISPLAY MOV AH,09H MOV DX,OFFSET DENGHAO INT 21H MOV BX,WORD PTR SUM+2 CALL DISPLAY MOV BX,WORD PTR SUM CALL DISPLAY MOV AH,4CH INT 21H

;----------------------------------------------------------- 跳到下一行 CRLF PROC NEAR MOV DL,0AH ;换行 MOV AH,02H INT 21H MOV DL,0DH ;从头开始 MOV AH,02H INT 21H RET CRLF ENDP

;------------------------------------------------------------接受数字函数 INPUT PROC NEAR MOV AX,0 PUSH AX

AGAIN1:MOV AH,01H ;键盘输入 INT 21H CMP AL,30H ;当输入不是数字的时候(如空格),跳出,一个数字输入完成, JL EXIT CMP AL,39H JG EXIT SUB AL,30H ;将ASCII码值转化为数值 MOV BL,AL MOV BH,0 POP AX CWD

36

IMUL TEN ;将已有的数乘10,加上新输入的数 ADD AX,BX PUSH AX JMP AGAIN1 EXIT: POP AX RET INPUT ENDP

DISPLAY PROC NEAR MOV CX,10000D ;DIVIDE BY 10000 CALL DEC_DIV MOV CX,1000D ;DIVIDE BY 1000 CALL DEC_DIV MOV CX,100D ;DIVIDE BY 100 CALL DEC_DIV MOV CX,10D ;DIVIDE BY 10 CALL DEC_DIV MOV CX,1D ;DIVIDE BY 1 CALL DEC_DIV RET ;RETURN FROM BINIDEC

DEC_DIV PROC NEAR ; ;--------从 位取出数字显示 MOV AX,BX ;NUMBER LOW HALF MOV DX,0 ;ZERO OUT HIGH HALF DIV CX ;DIVIDE BY CX MOV BX,DX ;REMAINDER INTO BX MOV DL,AL ;QUOTIENT INTO DL ;PRINT THE CONTENTS OF DL ON SCREEN ADD DL,30H ;CONVERT TO ASCII MOV AH,2H ; DISPLAY FUNCTION INT 21H ;CALL DOS RET ;RETURN FROM DEC_DIV DEC_DIV ENDP

;;------------------------------------------------------------------ DISPLAY ENDP

CODE ENDS END START 2)实验步骤:同上

37

(三)模块化程序设计

模块化程序设计是指将一个较大的功能分解成几个独立功能的子模块,每个子模块独立编缉各自建立一个文件,通过单独的汇编生成各个独立的目标文件,然后由LINK 程序将各个目标文件链接在一起,形成一个完整的执行文件。

1)实验程序的设计思想及其实现功能 程序实现键盘输入十进制数,以十六进制数形式在屏幕上显示的功能。程序分成两个模块,模块A为主程序,负责从键盘输入一个十进制数,处理后存入指定内存单元。模块B主要实现屏幕提示和将十六进制数转换及显示的功能。

实验程序参见教科书“微型计算机原理及应用”(吴宁主编)P185页上 模块化程序设计例1。 EXTRN PROMPT:FAR,BINHEX:FAR PUBLIC DEC_NUM,KEY_IN

SSEG SEGMENT PARA STACK 'STACK' DB 100 DUP(?) SSEG ENDS DSEG1 SEGMENT DEC_NUM DW ? DSEG1 ENDS CSEG1 SEGMENT ASSUME CS:CSEG1,DS:DSEG1 START: MOV AX,DSEG1 MOV DS,AX PUSH DS

JMP FAR PTR PROMPT KEY_IN: CALL DECBIN MOV DEC_NUM,BX CALL FAR PTR BINHEX

38

MOV AH,4CH INT 21H

DECBIN PROC NEAR MOV BX,0

GETCHAR:MOV AH,1 INT 21H SUB AL,30H JL EXIT CMP AL,09H JG EXIT MOV AH,0 XCHG AX,BX MOV CX,0AH MUL CX XCHG AX,BX ADD BX,AX JMP GETCHAR CALL CRLF EXIT: RET

DECBIN ENDP

;----------------------------------------------------------- 跳到下一行 CRLF PROC NEAR MOV DL,0AH ;换行 MOV AH,02H INT 21H MOV DL,0DH ;从头开始 MOV AH,02H INT 21H RET CRLF ENDP

CSEG1 ENDS END START

EXTRN DEC_NUM:WORD,KEY_IN:FAR PUBLIC PROMPT,BINHEX

SSEG SEGMENT PARA STACK 'STACK' DB 200 DUP(?)

39

SSEG ENDS DSEG2 SEGMENT

MSG DB 'PLEASE INPUT:$' DSEG2 ENDS CSEG2 SEGMENT PARA ASSUME CS:CSEG2,DS:DSEG2 PROMPT: MOV AX,DSEG2 MOV DS,AX LEA DX,MSG MOV AH,09H INT 21H POP DS

JMP FAR PTR KEY_IN

BINHEX PROC FAR CALL CRLF

MOV BX,DEC_NUM MOV CH,04H ROTATE:

MOV CL,04H ROL BX,CL MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ADD AL,07H PRINTIT:

MOV DL,AL MOV AH,02H INT 21H DEC CH JNZ ROTATE RET

BINHEX ENDP

;----------------------------------------------------------- 跳到下一行 CRLF PROC NEAR MOV DL,0AH ;换行 MOV AH,02H INT 21H MOV DL,0DH ;从头开始

40

MOV AH,02H INT 21H RET CRLF ENDP

CSEG2 ENDS END

2) 实验步骤:

(1) 输入模块A程序和模块B程序,各产生一个文件。 (2) 汇编两个程序生成两个目标文件。

(3) 用LINK 文件名1+文件名2 命令链接为一个可执行文件。 (4) 运行程序,输入不同的十进制数,观察结果。

五、试验报告要求

写出(二)1、2、3自行设计的采用DOS功能调用设计源程序的程序清单。

41

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库东华微机实验aaa(8)在线全文阅读。

东华微机实验aaa(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/666452.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: