STA SEGMENT STACK
    DW 40H DUP(?)
    TOP LABEL WORD

STA ENDS

DATA SEGMENT

CRLF DB 0DH,0AH,24H

DATA ENDS
 
CODE SEGMENT
   ASSUME CS:CODE,DS:DATA
   MAIN PROC FAR
   MOV AX,STA
   MOV SS,AX
   LEA SP,TOP
   MOV AX,DATA
   MOV DS,AX

 

   MOV CX,16
   XOR BX,BX
   L10:MOV AH,1
   INT 21H
   CMP AL,0DH
   JE L9
   CMP AL,30H
   JB L10
   CMP AL,31H  ; 输入
   JA L10
   AND AX,1
   SHL BX,1
   ADD BX,AX
   LOOP L10

 

  L9:
     MOV AH,9
     LEA DX,CRLF
     INT 21H

                                 ;实现回车换行操作

     MOV DL,0
     MOV CX,10H          
 
   
  L1:SHL BX,1
      ADC DL,0
      LOOP L1

                               ;DL完成计数
  
   MOV SI,0
  L20: XOR AX,AX
   MOV DH,0
   MOV AX,DX
   MOV BL,10
   DIV BL
   MOV DL,AL
   INC SI
   PUSH AX              ;整除求得余数进栈
   CMP AL,0
   JA L20
   CMP AL,0
   JB L20

 

  L30:MOV DL,30H
  POP AX
  ADD DL,AH
  MOV AH,2              ;出栈输出
  INT 21H
  DEC SI
  JNE L30
  
  

     MOV AH,4CH
     INT 21H
 MAIN ENDP
   CODE ENDS
   END MAIN

posted on 2010-04-15 10:48  KuSiuloong  阅读(411)  评论(0编辑  收藏  举报