您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编求水仙花数

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

汇编求水仙花数

显示所有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

输出:

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