判断并统计正负数的个数
题目:统计正数和负数的个数
实现代码(有注释惹)
;判断并统计正负数个数
include irvine32.inc
.data
arr dd 10 dup(?)
count dd ($-arr)/4
sum1 dd 0
sum2 dd 0
.code
main proc
mov edx,offset arr
mov ecx,count
call input ;调用输入子函数
call jug ;调用判断函数
mov eax,sum1
call writeint ;输出负数
call crlf ;换行
mov eax,sum2
call writeint ;输出正数
exit
main endp
input proc
mov ebx,0
again1:
cmp ebx,count
je final1
call readint
mov [edx+ebx*4],eax
inc ebx
jmp again1
final1:
ret
input endp
jug proc
mov ebx,0 ;i=ebx
again:
cmp ebx,count ;比较i和数组元素个数大小
je final2 ;相等了就goto final2退出
mov esi,[edx+ebx*4] ;esi=数组元素
cmp esi,0 ;比较每个数组元素和0的大小
jl next1 ;数组元素小于0就去next1
cmp esi,0 ;比较每个数组元素和0的大小
jg next2 ;数组元素大于0就去next2
next1:
inc ebx ;i++
inc sum1 ;负数统计
jmp again
next2:
inc ebx ;i++
inc sum2 ;正数统计
jmp again
final2:
ret
jug endp
end main
运行结果
先输出的负数,后输出的正数…