东华微机实验aaa(6)
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
…… 此处隐藏:887字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




