noname.asm

来自「通过这个程序可以精确计算100!」· 汇编 代码 · 共 82 行

ASM
82
字号
assume cs:code,ds:data
data   segment
first  db 1,254 dup(0)
second db 255 dup(0)
third  db 255 dup(0)
IBUF   db 0ffh,0,255 dup(0)
data   ends
code   segment
begin: mov ax,data
       mov ds,ax
       mov bx,1
       mov cx,100
again: push cx
       push bx
       mov cx,255
       mov si,0
       mov dh,0
       mov al,bl
       aam
       mov bx,ax
s0:    mov al,first[si]
       mul bl
       aam
       add al,dh
       aaa
       mov dh,ah
       mov second[si],al
       inc si
       loop s0
       mov cx,254
       mov si,0
       mov dh,0
s1:    mov al,first[si]
       mul bh
       aam
       add al,dh
       aaa
       mov dh,ah
       mov third[si+1],al
       inc si
       loop s1
       mov third[0],0
       mov cx,255
       mov si,0
       mov dh,0
s2:    mov al,third[si]
       add al,second[si] 
       add al,dh
       aam         ;ghbhbhbhbhbhbhbh
       mov dh,ah
       mov first[si],al
       inc si
       loop s2
       pop bx
       inc bx
       pop cx
       loop again
       mov ax,0b800h
       mov es,ax
       mov si,254
       mov di,160*3
       mov cx,255
t:     mov al,[si]
       add al,30h
       cmp al,30h
       jne e
       dec si
       loop t
e:     mov al,[si]
       add al,30h
       mov es:[di],al
       mov byte ptr es:[di+1],2
       dec si
       add di,2
       loop e
        mov dx,offset IBUF
       mov ah,10
       int 21h
       mov ax,4c00h
       int 21h
code ends
end begin

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?