Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 100h
- mov ah, 09h
- mov dx, Letter1
- int 21h
- mov ah, 0Ah
- mov dx, InpBuf
- int 21h
- mov ah, 09h
- mov dx, EndL
- int 21h
- mov si, InpBuf + 2
- @@:
- mov ax, [ArrSize];
- mov bl, 10
- mov bh, 0
- mul bx
- mov bl, [si]
- sub bl, '0'
- mov bh, 0
- add ax, bx
- mov [ArrSize], ax
- inc si
- cmp byte [si], 0Dh
- jne @B
- cmp [ArrSize], 0
- je @@4
- mov ah, 09h
- mov dx, Letter2
- int 21h
- mov ah, 0Ah
- mov dx, InpBuf
- int 21h
- mov ah, 09h
- mov dx, EndL
- int 21h
- mov si, InpBuf + 2
- mov bp, Arr
- mov ax, 0
- @@1:
- cmp byte [si], '-'
- je Minus
- cmp byte [si], ' '
- je Space
- mov bl, 10
- mov bh, 0
- mul bx
- mov bl, [si]
- sub bl, '0'
- mov bh, 0
- add ax, bx
- jmp step
- Space:
- cmp [Flag], 1
- jne @F
- mov bx, -1
- imul bx
- @@:
- mov [bp], ax
- mov ax, 0
- mov [Flag], 0
- add bp, 2
- jmp step
- Minus:
- mov [Flag], 1
- step:
- inc si
- cmp byte [si], 0Dh
- jne @@1
- cmp [Flag], 1
- jne @F
- mov bx, -1
- imul bx
- @@:
- mov [bp], ax
- mov ax, 0
- mov [Flag], 0
- add bp, 2
- mov si, [ArrSize]
- mov bp, Arr
- @@2:
- cmp word [bp], 0
- jl @F
- mov bx, [bp]
- add [Sum], bx
- jmp @@3
- @@:
- inc [Cnt]
- @@3:
- dec si
- add bp, 2
- cmp si, 0
- jne @@2
- @@4:
- mov ah, 09h
- mov dx, Letter3
- int 21h
- mov bp, OutpBuf + 4
- mov ax, [Cnt]
- ConvToDecCnt:
- mov cx, 10
- mov dx, 0
- div cx
- mov [bp], dl
- add byte [bp], '0'
- dec bp
- cmp ax, 0
- jne ConvToDecCnt
- mov dx, bp
- inc dx
- mov ah, 09h
- int 21h
- mov ah, 09h
- mov dx, Letter4
- int 21h
- mov bp, OutpBuf + 4
- mov ax, [Sum]
- ConvToDecSum:
- mov cx, 10
- mov dx, 0
- div cx
- mov [bp], dl
- add byte [bp], '0'
- dec bp
- cmp ax, 0
- jne ConvToDecSum
- mov dx, bp
- inc dx
- mov ah, 09h
- int 21h
- return:
- mov ah, 08h
- int 21h
- cmp al, 0
- jne @F
- mov ah, 08h
- int 21h
- @@:
- ret
- Letter1 db 'Enter the size of the array', 0Ah, '$'
- Letter2 db 'Enter array', 0Ah, '$'
- Letter3 db 'Count of negative numbers = $'
- Letter4 db 0Ah, 'Sum of positive numbers = $'
- EndL db 0Ah, '$'
- Sum dw 0
- Cnt dw 0
- Flag db 0
- ArrSize dw 0
- OutpBuf db 5 dup ?, '$'
- InpBuf db 255, 0, 255 dup ?
- Arr dw 100 dup ?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement