《2022年2022年汇编实验之四则运算 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编实验之四则运算 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机工程系计算机原理实验报告1 计算机原理实验室实验报告课程名称:姓名学 号班 级成 绩设备名称及软件环境实验名称四则运算实验日期一实验内容从键盘输入一个十进制两位数的四则运算表达式,如 23*56(8*19)/6 678,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),*/位置任意。并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止。二理论分析或算法分析根据题目的要求,可以把整个源程序大致划分为几个基本结构:程序加法、减法、乘法、除法、显示结果五个部分。首先用 1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII 码,如果是+、
2、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n 执行继续计算和退出操作三实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)主程序流程:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -计算机工程系计算机原理实验报告2 代码:根据题目的要
3、求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分源程序:CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS NEXTLINE MACRO ;显示换行宏 MOV AH,2 MOV DL,10 INT 21H 开始从键盘输入字符AL=+AL=-AL=*AL=AL=/输出结果结束从键盘输入加数并执行加运算从键盘输入加数并执行减运算从键盘输入加数并执行乘运算从键盘输入加数并执行除运算Y Y Y Y Y N N N N 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -计算机工程系计算机原理实验
4、报告3 MOV AH,2 MOV DL,13 INT 21H ENDM START:MOV AX,DATAS MOV DS,AX MOV BX,0 INPUT1:MOV AH,1 ;从键盘输入一个字符 INT 21H CMP AL,+;判断是否为+JZ ADDITION CMP AL,-;判断是否为-JZ SUBTRATION CMP AL,*;判断是否为*JZ MULTIPLICATION CMP AL,/判断是否为/JZ DIVISION CMP AL,=判断是否为=JZ RESULT CMP AL,58 判断输入是否为数字 JS L1 JMP INPUT1 L1:CMP AL,47 节
5、JNS L2 JMP INPUT1 L2:SUB AL,48 如果输入为数字,将数值计入BX MOV CL,AL MOV AX,BX MOV CH,10 MUL CH ADD AL,CL MOV BX,AX JMP INPUT1 ADDITION:输入+后,进入加法运算 MOV DX,0 INPUT2:MOV AH,1 从键盘输入字符 INT 21H 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -计算机工程系计算机原理实验报告4 CMP AL,+判断是否为+JZ L23 CMP AL,-判断是否为-JZ L24 CMP AL,*判断是否为*JZ L25 CMP AL
6、,/判断是否为/JZ L26 CMP AL,=判断是否为=JZ L27 CMP AL,58 判断是否为数字 JS L21 JMP INPUT2 L21:CMP AL,47 JNS L22 JMP INPUT2 如果不是数字,则跳转到INPUT2 L22:SUB AL,48 将输入字符转换为数值 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT2 L23:ADD BX,DX 执行加运算 JMP ADDITION L24:ADD BX,DX JMP SUBTRATION L25:ADD BX,DX JMP MULT
7、IPLICATION L26:ADD BX,DX JMP DIVISION L27:ADD BX,DX JMP RESULT SUBTRATION:如果输入-,则执行减法 MOV DX,0 INPUT3:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -计算机工程系计算机原理实验报告5 MOV AH,1 INT 21H CMP AL,+判断是否为+JZ L33 CMP AL,-判断是否为-JZ L34 CMP AL,*判断是否为*JZ L35 CMP AL,/判断是否为/JZ L36 CMP AL,=判断是否为=JZ L37 CMP AL,58 判断是否为数字 JS L
8、31 JMP INPUT3 L31:CMP AL,47 JNS L32 JMP INPUT3 L32:SUB AL,48 将字符转换为数值 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT3 L33:SUB BX,DX 执行减法操作 JMP ADDITION L34:SUB BX,DX JMP SUBTRATION L35:SUB BX,DX JMP MULTIPLICATION L36:SUB BX,DX JMP DIVISION L37:SUB BX,DX JMP RESULT 名师资料总结-精品资料欢迎下
9、载-名师精心整理-第 5 页,共 10 页 -计算机工程系计算机原理实验报告6 MULTIPLICATION:MOV DX,0 INPUT4:MOV AH,1 INT 21H CMP AL,+JZ L43 CMP AL,-JZ L44 CMP AL,*判断是否为*JZ L45 CMP AL,/判断是否为/JZ L46 CMP AL,=判断是否为=JZ L47 CMP AL,58 判断是否为数字 JS L41 JMP INPUT4 L41:CMP AL,47 JNS L42 JMP INPUT4 L42:SUB AL,48 将字符转换为数值 MOV CL,AL MOV AX,DX 将字输入数字加
10、入数值 MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT4 L43:MOV AX,BX 将BX 移入AX MUL DX 与DX 中的数进行乘运算 MOV BX,AX 将AX 中的数值返回 BX JMP ADDITION L44:MOV AX,BX 将BX 移入AX MUL DX 与DX 中的数进行乘运算 MOV BX,AX 将AX 中的数值返回 BX JMP SUBTRATION L45:MOV AX,BX 将BX 移入AX MUL DX 与DX 中的数进行乘运算 MOV BX,AX 将AX 中的数值返回 BX 判断是否为+判断是否为-名师资料总结-
11、精品资料欢迎下载-名师精心整理-第 6 页,共 10 页 -计算机工程系计算机原理实验报告7 JMP MULTIPLICATION L46:MOV AX,BX 将BX 移入AX MUL DX 与DX 中的数进行乘运算 MOV BX,AX 将AX 中的数值返回 BX JMP DIVISION L47:MOV AX,BX 将BX 移入AX MUL DX 与DX 中的数进行乘运算 MOV BX,AX 将AX 中的数值返回 BX JMP RESULT DIVISION:MOV DX,0 INPUT5:MOV AH,1 INT 21H CMP AL,+JZ L53 CMP AL,-JZ L54 CMP
12、AL,*JZ L55 CMP AL,/JZ L56 CMP AL,=JZ L57 CMP AL,58 JS L51 JMP INPUT5 L51:CMP AL,47 JNS L52 JMP INPUT5 L52:SUB AL,48 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT5 L53:MOV AX,BX 判断是否为+判断是否为-判断是否为*判断是否为/判断是否为=判断是否为数字名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -计算机工程系计算机原理实验报告8 DIV DX MOV
13、AH,0 MOV BX,AX JMP ADDITION L54:MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP SUBTRATION L55:MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP MULTIPLICATION L56:MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP DIVISION L57:MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP RESULT RESULT:显示结果 MOV CH,10 MOV CL,100 R1:将BX 中的计算结果以十进制输出 M
14、OV AX,BX DIV CL MOV DL,AL MOV DH,AH MOV AL,AH MOV AH,0 MOV BX,AX ADD DL,48 MOV AH,2 INT 21H MOV AH,0 MOV AL,CL DIV CH MOV CL,AL 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 10 页 -计算机工程系计算机原理实验报告9 CMP CL,1 JZ R2 JMP R1 R2:MOV DL,DH ADD DL,48 MOV AH,2 INT 21H S2:NEXTLINE LEA DX,STRING 询问是否继续输入 MOV AH,9 INT 21H MOV
15、AH,1 INT 21H CMP AL,y 输入y则跳转到 S1 JE S1 CMP AL,n 输入n则跳转到 S3,即结束程序 JE S3 JNE S2 S3:MOV AH,4CH INT 21H CODES ENDS 四实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)运行结果输入要计算的式子,按等号输出结果,计算机提示是否继续输入,输入字符y,继续输入,键入n退出程序,如果键入字符为其他,则反回提示输入如图:名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 10 页 -计算机工程系计算机原理实验报告10 五结论程序的主要功能是实现四则运算,整个程序中主要分为,输入算式,加法,减法,乘法,除法和以十进制显示结果这几个部分本程序基本实现了四则运算的功能,但还没能实现带有括号的四则运算,还有在除法运算中不能运算较大的数,会产生溢出现象一开始的时候自己编出来的程序有很多问题,尤其是在循环程序上,因此查阅了不少资料,也请教了好几个同学帮着修改,调试了好久才能正常运行。由于能力有限,程序还是有不完美的地方。这次的综合实验让我对汇编有了更深刻的认识,对各种指令有了进一步的理解。报告提交日期名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 10 页 -
限制150内