80x86 汇编语言编程:寻找水仙花数
来源:互联网 发布:python 多行命令 编辑:程序博客网 时间:2024/05/22 04:51
一个三位的十进制数字 N,如果它的百位数、十位数和个位数的立方和,恰好等于这个数字本身,那么,这个数字 N 就是水仙花数。
现在已经知道,三位的水仙花数共有4个:153,370,371,407;
四位的水仙花数共有3个:1634,8208,9474;
五位的水仙花数共有3个:54748,92727,93084;
六位的水仙花数只有1个:548834;
七位的水仙花数共有4个:1741725,4210818,9800817,9926315;
八位的水仙花数共有3个:24678050,24678051,88593477
……
十进制自然数中的所有水仙花数共有88个,最大的水仙花数有39位数。
这么些水仙花数,都是怎么找出来的呢 ? 当然需要编写程序。
做而论道用汇编语言编写的程序如下。
DATAS SEGMENT
IN1 DB 13,10,'The number is : $'
A1 DB 0 ;百位数
A2 DB 0 ;十位数
A3 DB 0 ;个位数
B1 DW 0 ;百位立方
B2 DW 0 ;十位立方
B3 DW 0 ;个位立方
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
MOV CX, 999
L1:
MOV AX, CX
MOV BL, 100
DIV BL ;AL=百位数, AH=余数
MOV A1, AL ;百位
MOV AL, AH
MOV AH, 0
MOV BL, 10
DIV BL
MOV A2, AL ;十位
MOV A3, AH ;个位
CALL LIFANG ;求各个立方
MOV AX, B1
ADD AX, B2
ADD AX, B3
CMP AX, CX
JNE NEXT
CALL PRINT ;相等则显示
NEXT:
LOOP L1 ;循环到0为止
MOV AH, 4CH
INT 21H
;------------------------------
LIFANG:
MOV AL, A1
MOV AH, 0
MOV BX, AX
MUL BX
MUL BX
MOV B1, AX
MOV AL, A2
MOV AH, 0
MOV BX, AX
MUL BX
MUL BX
MOV B2, AX
MOV AL, A3
MOV AH, 0
MOV BX, AX
MUL BX
MUL BX
MOV B3, AX
RET
;------------------------------
PRINT:
LEA DX, IN1
MOV AH, 9
INT 21H
MOV AH, 2
MOV DL, A1 ;百
ADD DL, 30H
INT 21H
MOV DL, A2 ;十
ADD DL, 30H
INT 21H
MOV DL, A3 ;个
ADD DL, 30H
INT 21H
RET
;------------------------------
CODES ENDS
END START
执行后显示:
c:\masm510>XX
The number is : 407
The number is : 371
The number is : 370
The number is : 153
The number is : 001
c:\masm510>
本程序,是为百度知道上面的一个问题而编写:
链接:http://zhidao.baidu.com/question/1446176832407316980.html
提问者评价:谢谢!
- 80x86 汇编语言编程:寻找水仙花数
- 80x86汇编语言编程:求 10000 以内的《完数》
- 80x86 汇编语言编程:有符号数输出
- 80x86 汇编语言编程:求和
- 80x86 汇编语言编程:EXE2COM
- 寻找水仙花数
- 80x86 汇编语言:猜数游戏
- 80x86 汇编语言编程:输入数字串,排序、并求最大和最小
- 80x86汇编语言编程--
- 80x86 汇编语言:编程一题
- 80x86汇编语言编程:排序与显示
- 80x86汇编语言编程:宏指令
- 80x86汇编语言编程:求素数
- 80x86汇编语言编程:两个矩阵相乘
- 80x86 汇编语言编程:排序与显示
- 80x86 汇编语言编程:移动平均处理
- 八进制数转换为二进制数 -80x86汇编语言
- 80x86 汇编语言:正负数分别存放、统计个数
- kbe源代码读
- 80x86 汇编语言编程:用 “*” 显示一个三角形
- cocos2dx发展路线
- java bio nio aio
- Asp.Net 文件加解密
- 80x86 汇编语言编程:寻找水仙花数
- 51 汇编语言编程:0.00~99.9 秒表
- 数据库索引原理讲解之二
- 用80x86汇编语言:在字符串中删除一个字符
- java开发环境搭建
- 51 单片机 C 语言串行双机通信的问题
- 检查了好久才发现原来js中elseif是要分开的
- 用 C 语言编写一个单片机流水灯程序
- spring mvc初始化及其原理