《求和输出--微机原理实验报告.doc》由会员分享,可在线阅读,更多相关《求和输出--微机原理实验报告.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、南通大学计算机科学与技术学院上机实验报告课程名称:微机原理年级:上机日期:姓名: 学号:班级实验名称:综合程序设计教师:成绩:一、目的及要求通过键盘输入一个数字,求1加到该数的和,并将结果显示在屏幕上。1、数据段定义: DATA SEGMENT N DB 4 DB ? DB 4 DUP(?) SUM DW ? MSG1 DB INPUT A NUMBER:$ MSG2 DB SUM IS $ DATA ENDS2、利用10号DOS功能调用,接受输入数字的ASCII码3、将输入数字的ASCII码转换成十进制数4、利用循环结构求和5、将所求和,转换成ASCII码字符串,并输出6、提示信息字符串用9
2、号DOS功能调用完成,可写成子程序,以供调用; 累加和,可用2号DOS功能调用,依次显示每一位字符。二、环境(软、硬件平台)计算机(xp系统)、DOS系统、masm6emu8086三、内容及步骤(包括程序流程及说明)DATA SEGMENT ;数据定义N DB 4 DB ? DB 4 DUP(?)SUM DW ?MSG1 DB INPUT A NUMBER:$MSG2 DB SUM IS $DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA MAIN PROC FARSTART:MOV AX,DATA MOV DS,AX LEA DX,MSG1 CALL D
3、ISPMESS ;显示INPUT A NUMBER LEA DX,N MOV AH,0AH ;输入数字 INT 21H CALL NEWLINE ;另起一行 LEA SI,N ;数据存储位置 MOV CL,SI+1 ADD SI,2 ;指针+2,指向数字第一位 XOR AX,AX ;清零;循环乘十,将输入字符变为数字AGAIN:ADD AX,AX ; AX*10。2 MOV BX,AX ADD AX,AX ;。4 ADD AX,AX ;。8 ADD AX,BX ;。10 MOV BX,0 MOV BL,SI SUB BL,30H ;由ASCII码变为数字 ADD AX,BX INC SI LO
4、OP AGAIN MOV CX,AX MOV AX,0;计算1到n的和A: ADD AX,CX LOOP A MOV SUM,AX LEA DX,MSG2 PUSH AX CALL DISPMESS ;显示SUM IS POP AX PUSH BX CALL DISPAL CALL NEWLINE POP BX MOV AH,4CH ;退出 INT 21HMAIN ENDPDISPMESS PROC NEAR ;9号功能调用 MOV AH,9 INT 21H RETDISPMESS ENDP;除以10,取余,提出每一位数字变为ASCII码输出DISPAL PROC NEAR MOV CX,5
5、MOV BX,10DISP1: CWD ;字扩展 DIV BX ;AX除以10 XCHG DX,AX ;交换: ADD AL,0 ;变为ASCII码 PUSH AX XCHG DX,AX MOV DX,0 LOOP DISP1 MOV CX,5DISP2: POP DX CALL ECHOCH ; 显示 LOOP DISP2 RETDISPAL ENDPECHOCH PROC NEAR ;2号功能调用 MOV AH,2 INT 21H RETECHOCH ENDPNEWLINE PROC NEAR ;回车换行 PUSH AX PUSH DX MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH INT 21H POP DX POP AX RETNEWLINE ENDPCODE ENDS四、运行结果因为电脑是win764位,无法使用dos,所以使用 emu8086调试五、问题及心得