汇编从键盘输入一串数字 统计正负数的个数,及零的个数
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]