汇编语言求公约数和平方差(3)

2019-05-24 16:53

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

INT 21H ADD CL,30H MOV DL,CL MOV AH,2 INT 21H

MOV DX,OFFSET BUFF MOV AH,9 INT 21H NEXT:INC BH CMP BL,BH JL DONE JMP L1 DONE:

MOV AX,OFFSET PF; CALL DISPMSG CALL PFC

PFC PROC;声明子程序,求平方差

WORK: MOV AL,BYTE PTR X MUL AL MOV Z,AX

MOV AL,BYTE PTR Y MUL AL CMP Z,AX JB INT1 SUB Z,AX JMP INT2 INT1: SUB AX,Z MOV Z,AX

8

;CL=CL+30H ;DL=CL

;输出DL中的内容

;将BUFF的首地址给DX

;BH+1

;BL与BH做比较 ;跳转到JL ;跳转到L1

;将PF的首地址给AX

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

MOV C,'-' INT2: MOV CX,5H MOV DI,4H MOV BX,0AH MOV AX,Z WORK2: MOV DX,0 DIV BX

ADD DL,30H

MOV S[DI],DL DEC DI CMP AX,0H JZ W2EXIT LOOP WORK2 W2EXIT: MOV AL,C MOV S[DI],AL MOV DX,OFFSET CTRL MOV AH,09H INT 21H

MOV DI,0

WORK3: INC DI CMP S[DI],0H JZ WORK3 LEA DX,S[DI] MOV AH,09H INT 21H MOV AH,4CH INT 21H RET PFC ENDP

9

;返回DOS

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

MOV AH,4CH ;返回DOS

INT 21H CODE ENDS ;代码段结束标志 END START

;程序结束标志

运行结果:

图2.4 运行结果 图

10

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

第3章 课程设计总结

首先要对这个问题进行分析,选择你所想用的算法,使这个程序能键盘输入自己想求的两个数,回车结束,即可看到该算法求出的公约数。对这次试验,我只能用一些简单的代码进行编程,由于我的编程水平有限,我所用的代码也很简单,在算法中,存在一个问题有待改进,那就是输入的两个数之后,第一次只能求出公约数,再输入一次才能求出平方差,而且,平方差输出前面没有提示。

先用辗转法求出两个数的最大公约数,再求出最大公约数的所有约数并显示,先用小的一个数除大的一个数, 得第一个余数; l再用第一个余数除小的一个数, 得第二个余数; 又用第二个余数除第一个余数, 得第三个余数; l这样逐次用后一个数去除前一个 余数,直到余数是0为止。那么, 最后一个除数就是所求的最大公 约数(如果最后的除数是1,那么 原来的两个数是互质数)。然后所求出的最大公约数的约数都是这两个数的公约数。实验中充分熟悉了辗转相除法。

从这次实验中,我复习了汇编语言代码,同时也通过辗转算法解决了求解出最大公约数这个问题。之前也尝试过其他算法,从这个试验的结果我了解到了算法的优与劣的差别,虽然得到的是同样的结果,但是需要的时间和资源却相差很大,这提示我们在以后写算法的时候要找出最优算法。可见汇编语言编程的人来说是多么的重要,在以后写程序过程中要时刻提醒自己找最优算法,当然得先学会分析。在以后的学习中我要学会多实践、多分析,在不停的改正错误中提高自己。

11

辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)

参考文献

[1] 方立友.微机原理与汇编语言实用教程,北京:清华大学出版社,2007 [2] 朱定华.微机原理、汇编与接口技术(第2版),北京:清华大学出版社,2010 [3] 周杰英.微机原理、汇编语言与接口技术,北京:人民邮电出版社,2011

[4] 钱晓捷.16/32位微机原理、汇编语言及接口技术(第3版),北京:机械工业出版社, 2011 [5] 姜蓉.微机原理汇编语言及接口技术.西安:西安交通大学出版社,2006

源文件代码:DATA SEGMENT BUFF DB 0DH,0AH,'$'

IN_MSG1 DB 'PLEASE ENTER A NUMBER:',0DH,0AH,'$'

IN_MSG2 DB 'PLEASE ENTER ANOTHER NUMBER:',0DH,0AH,'$' OUT_MSG DB 'THE COMMON NUMBER(S) IS(ARE):',0DH,0AH,'$' PF DB 'PING FANG CHA:',0DH,0AH,'$'

LOAD DB 'PRESS ANY KEY TO CONTINUE$' x dw 0 y dw 0 z dw 0 c db 0h s db 6 dup(0h),'$' ctrl db 0dh,0ah,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV AX,OFFSET IN_MSG1 ; 提示输入第一个数据 CALL DISPMSG

CALL READSID ; 输入第一个数据 MOV BX,AX MOV x,BX

12


汇编语言求公约数和平方差(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016-2022年中国医疗诊断、监护及治疗设备行业市场分析及发展趋

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: