2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编求水仙花数

时间:07-29来源:作者:点击数:30

汇编求水仙花数

显示所有3位数的水仙花数(各位数字的立方和等于自身)。对于每一个水仙花数占一行输出。

  • include io.inc
  • .model small
  • .stack
  • .data
  • A_100 db 0;百位数
  • A_10 db 0;十位数
  • A_1 db 0;个位数
  • B_100 dw 0;百位数立方
  • B_10 dw 0;十位数立方
  • B_1 dw 0;个位数立方
  • .code
  • .startup
  • mov cx,100
  • next1:
  • mov ax,B_100
  • add ax,B_10
  • add ax,B_1
  • cmp ax,cx
  • jne next ;不相等则循环
  • jmp print ;相等则显示
  • next:
  • add cx,1
  • cmp cx,999
  • jne L1 ;循环到1000为止
  • mov ah,4ch ;4CH功能调用—-结束程序
  • int 21h
  • L1:
  • mov ax,cx
  • mov bl,100
  • div bl
  • mov A_100,al ;百位数
  • mov al,ah ;al=百位数, ah=余数
  • mov ah,0
  • mov bl,10
  • div bl
  • mov A_10,al ;十位数
  • mov A_1,ah ;个位数
  • jmp lifang
  • ;求各个位数的立方
  • lifang:
  • mov al,A_100
  • mov ah,0
  • mov bx,ax
  • mul bx
  • mul bx
  • mov B_100,ax
  • mov al,A_10
  • mov ah,0
  • mov bx,ax
  • mul bx
  • mul bx
  • mov B_10,ax
  • mov al,A_1
  • mov ah,0
  • mov bx,ax
  • mul bx
  • mul bx
  • mov B_1,ax
  • jmp next1
  • print:
  • mov ah,2 ;输出一个字符
  • mov dl,A_100 ;百
  • add dl,30h ;将数字转换成对应的ASCII码
  • int 21h
  • mov dl,A_10 ;十
  • add dl,30h
  • int 21h
  • mov dl,A_1 ;个
  • add dl,30h
  • int 21h
  • mov al,3DH
  • call dispc ;显示一个字符
  • mov ax,B_100 ;百
  • call dispuiw ;显示无符号十进制整数
  • mov al,2BH
  • call dispc
  • mov ax,B_10 ;十
  • call dispuiw
  • mov al,2BH
  • call dispc
  • mov ax,B_1 ;个
  • call dispuiw
  • call dispcrlf ;光标回车换行
  • jmp next
  • .exit

输出:

在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门