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

东华微机实验aaa(6)

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

2、键盘输入小写字母,显示器显示大写字母 1)实验程序: CSEG SEGMENT ASSUME CS:CSEG MAIN PROC FAR START: PUSH DS MOV AX,0 PUSH AX BEGIN: MOV AH,1 INT 21H CMP AL,'a' JB STOP CMP AL,'z' JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP: RET MAIN ENDP CSEG ENDS END START 2) 实验步骤: (1)建立源程序文件。

(2)用MASM宏汇编程序和LINK连接程序生成执行程序。 (3)运行执行程序,输入不同字母,观察结果。

26

3、从键盘输入一个二位十进制的月份数(01-12),显示相应月份的英文缩写名

1)程序及其结构

程序采用子程序的结构形式,子程序有:将输入的二位月份数转换为二进制数的子程序;从字符表中查找相应的英文缩写的子程序;将月份的英文字母显示在屏幕上的子程序。 %程序运行存在问题,只要第一个数字不为0,则当输入的第二个数字为1或2时就会对应输出NOV和DEC 程序如下:

DATASG SEGMENT PARA 'DATA' THREE DB 3 MONIN DB 3, 4 DUP(?) ALFMON DB '???','$' MONTAB DB 'JAN','FEB','MAR','APR','MAY','JUN' DB 'JUL','AUG','SEP','OCT','NOV','DEC' DATASG ENDS

STACK SEGMENT PARA STACK 'STACK' STA DB 100 DUP(?) STACK ENDS

CODESG SEGMENT PARA 'CODE' ASSUME CS:CODESG,DS:DATASG,ES:STACK MAIN PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATASG MOV DS,AX

27

MOV ES,AX CALL INPUT CALL LOCATE CALL DISPLAY RET MAIN ENDP

INPUT PROC NEAR ; 键盘输入并将ASCⅡ码转换二进制数的子程序 PUSH DX MOV AH,0AH ; 键盘输入月份数 LEA DX,MONIN INT 21H MOV AH,MONIN+2 ; 将月份数字的ASCⅡ码取入AH和AL MOV AL,MONIN+3 XOR AX,3030H ; 将ASCⅡ码转换为BCD码 CMP AH,00 JZ RETURN SUB AH, AH ADD AL,10 RETURN: POP DX RET INPUT ENDP

LOCATE PROC NEAR ; 将月份数字转换为英文缩写字母的子程序 PUSH SI PUSH DI PUSH CX LEA SI,MONTAB DEC AL MUL THREE ADD SI,AX MOV CX,03 CLD LEA DI,ALFMON REP MOVSB POP CX POP DI POP SI RET LOCATE ENDP DISPLAY PROC NEAR ; 屏幕显示子程序 PUSH DX LEA DX,ALFMON

28

MOV AH,09 INT 21H POP DX RET DISPLAY ENDP CODESG ENDS END MAIN

(二)采用DOS功能调用设计源程序,并运行调试程序

1、十进制加法和结果显示程序(自行设计) 1)程序设计要求

将数据段DSEG中的ADDOP1定义的双字变量的4位十进制数和附加段ESEG中的ADDOP2定义的双字变量的4位十进制数相加,和存放于数据段DSEG中的SUM中,采用DOS显示功能调用将和显示在屏幕上。

DSEG SEGMENT ADDOP1 DD 1234 SUM DD ? DSEG ENDS

ESEG SEGMENT ADDOP2 DD 2345 ESEG ENDS

STACK SEGMENT PARA STACK 'STACK' DB 100 DUP(?) STACK ENDS

CODE SEGMENT ASSUME DS:DSEG,CS:CODE,ES:ESEG START: MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,WORD PTR ADDOP1

29

ADD AX,WORD PTR ADDOP2 MOV WORD PTR SUM,AX MOV AX,WORD PTR ADDOP1+2 ADC AX,WORD PTR ADDOP2+2 MOV WORD PTR SUM+2,AX MOV BX,WORD PTR SUM+2 CALL DISPLAY MOV BX,WORD PTR SUM CALL DISPLAY MOV AH,4CH INT 21H

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

30

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

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