也许 发表于 2012-6-15 00:24:19

汇编从键盘输入一串数字 统计正负数的个数,及零的个数

stacksegment stack'stack'
       dw 32 dup(0)
stackends
data   segment
ibuf   db 7,0,7 dup(0)
ibuf1dw 50 dup(0)
obf    db'qing shu ru yi chuan shu zi:$'
obf1   dw 0
obf2   dw 0
obf3   dw 0

data   ends
code   segment

       assume ss:stack,cs:code,ds:data
       push ds
       sub ax,ax                        
       push ax

start: mov ax,data
       mov ds,ax
       mov di,offset ibuf1
       mov si,offset ibuf1
       mov cx,10
       mov dx,offset obf
       mov ah,9
       int 21h
       mov ah,2
       mov dl,0dh
       int 21h
       mov dl,0ah
       int 21h
again: call input1
       mov bx,binary
       mov ,bx
       add di,2
       loop again
       mov ibuf1,'$'
       mov dx,offset ibuf1
       mov ah,9
       int 21h
       mov ah,2
       mov dl,0dh
       int 21h
       mov dl,0ah
       int 21h
next:mov ax,
       add si,2
       and ax,ax
       jzagain1
       jsagain2
       jns again3
again1: inc    obf1
      loop   next
again2: inc    obf2
      loop   next
again3: inc    obf3
      loop   next
      mov dl,obf1+30h
      mov ah,2
      int 21h
      mov ah,2
      mov dl,0dh
      int 21h
      mov dl,0ah
      int 21h
      mov dl,obf2+30h
      mov ah,2
      int 21h
      mov ah,2
      mov dl,0dh
      int 21h
      mov dl,0ah
      int 21h
      mov dl,obf3+30h
      mov ah,2
      int 21h
      mov ah,4ch
      int 21h
input1 proc      
      
       mov dx,offset ibuf
       mov ah,10
       int 21h
       mov cl,ibuf+1
       mov ch,0
       mov si,offset ibuf+2
       cmp byte ptr,'-'
       pushf
       jne sininc
       inc si
       dec cx
sininc:mov ax,0
again: mov dx,10
       mul dx
       and byte ptr,0fh
       add al,
       adc ah,0
       inc si
       loop again
       popf
       jnz nneg
       neg ax
nneg:mov binary,ax
       ret
input1 endp
      
      
code    ends
      end start求帮忙修改
页: [1]
查看完整版本: 汇编从键盘输入一串数字 统计正负数的个数,及零的个数