li7.asm

来自「本程序是汇编语言的一些基本功能的组合」· 汇编 代码 · 共 89 行

ASM
89
字号
code segment
main proc far
 assume cs:code
start:
 push ds
 sub ax,ax
 push ax
 mov bx,1
 call binidec 
 call crlf
 mov bx,1
 call binidec
 call crlf
 mov cx,18 
 mov di,1   
 mov ax,1   
output:
 add di,ax
 mov bx,di
 push ax
 call binidec
 call crlf
 pop  ax
 mov di,ax  
 mov ax,bx  
 loop output
 ret
main endp
;---------------
binidec proc near
     cmp   bx,0
     jne   nz
     mov   dl,'0'
     mov   ah,2
     int   21h
     ret
nz:
     push  bx
     push  cx
     push  si
     push  di
     mov   di,0
     mov   cx,10000d
     call  dec_div
     mov   cx,1000d
     call  dec_div
     mov   cx,100d
     call  dec_div
     mov   cx,10d 
     call  dec_div
     mov   cx,1
     call  dec_div
     pop   di
     pop   si
     pop   cx
     pop   bx
     ret
binidec endp
;------------------
dec_div proc near
     mov  ax,bx
     mov  dx,0
     div  cx
     mov  bx,dx
     mov  dl,al
     add  dl,30h
     cmp  dl,'0'
     je   done
     mov  di,1
done:cmp  di,1
     jne  exit2
     mov  ah,2
     int  21h
exit2:ret
dec_div  endp
;-----------------
crlf proc near
  mov dl,0dh
  mov ah,2
  int 21h
  mov dl,0ah
  int 21h
  ret
crlf endp
;---------------
code ends
  end start

⌨️ 快捷键说明

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