汇编语言 输入字流统计非数字的个数(里面有个转换为10进制的子程序)

来源:互联网 发布:海森矩阵 编辑:程序博客网 时间:2024/06/04 17:52
这个学期要学汇编语言了,我把我上机的题的代码发上来,希望对大家有帮助,当然代码有许多改进的地方,还需大家提供宝贵的代码啊!  

题目是对输入字流统计非数字的个数的统计,必须以十进制显示。

; multi-segment executable file template.

data segment
    ; add your data here!
    pkey db "Count the udigtal string ,Please input the word!$"
    BACK   db "input over,the count is:$"
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
      mov ax, data
      mov ds, ax
      mov es, ax
      ; add your code here
      mov dX, OFFSET pkey ;输出字符串!
      mov ah, 9
      int 21h        ; output string at ds:dx
      MOV CL,0
      MOV AL,0
REPT: MOV AH,1
      INT 21H
      CMP AL,1BH
      JZ  RT
      CMP AL,30H
      JB  COUNT
      CMP AL,39H
      JA  COUNT
      JMP REPT
COUNT:INC CL
      JMP REPT           
RT:   MOV DX ,OFFSET BACK
      MOV AH, 9
      INT 21H
      CALL TURN10
      MOV AH,4CH
      INT 21H     
         
ends

TURN10  PROC NEAR
        PUSH AX
        PUSH BX
        PUSH CX
        PUSH DX
        MOV DL,-1
SUB1:   SUB CL,100
        INC DL
        JNC SUB1
        ADD CL,100
        OR  DL,30H
        MOV AH,2
        INT 21H
       
        MOV DL,-1
SUB2:   SUB CL,10
        INC DL
        JNC SUB2
        ADD CL,10
        OR  DL,30H
        MOV AH,2
        INT 21H
       
        MOV DL,CL
        OR  DL,30H
        MOV AH,2
        INT 21H 
        POP  DX
        POP  CX
        POP  BX
        POP  AX
        RET
ENDP         
          
       
       
      

end start ; set entry point and stop the assembler.

原创粉丝点击