汇编:求100!

用汇编,有意思,32位实验的内容,求自然数N的阶乘(N小于等于100)
以前都是用高级语言做的高精度,第一次在汇编下做算法题,呵呵……

        .486
DATA    SEGMENT USE16
BUF     DB      1,200 DUP(0)
N       DB      100
DATA    ENDS

CODE    SEGMENT USE16
        ASSUME  CS:CODE,DS:DATA
BEG:
        MOV     AX,DATA
        MOV     DS,AX
        CMP     N,0
        JNA     EXIT
        MOVZX   CX,N
        DEC     CX
        MOV     DL,2
        MOV     DH,10
L1:
        PUSH    CX
        LEA     SI,BUF          ;从个位开始计算
        MOV     BX,0            ;BX用于保存进位
        MOV     CX,200
L2:
        MOV     AL,[SI]         ;取出当前位
        MUL     DL             
        ADD     AX,BX           ;加上低位进位
        DIV     DH     
        MOVZX   BX,AL           ;商向高位进位
        MOV     [SI],AH         ;保存当前位
        INC     SI              ;计算下一位
        LOOP    L2
       
        INC     DL
        POP     CX
        LOOP    L1
EXIT:
        MOV     CX,200
        MOV     BL,0
        LEA     SI,BUF
        ADD     SI,199
L3:
        MOV     DL,[SI]
        OR      BL,DL
        JZ      NEXT
        ADD     DL,30H
        MOV     AH,2
        INT     21H
NEXT:
        DEC     SI
        LOOP    L3
        MOV     AH,4CH
        INT     21H
       
CODE    ENDS
        END     BEG
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值