Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dseg segment
- N dw ?
- Array db 100 dup(?)
- dseg ends
- Code:
- mov ah, 09
- mov dx, offset Message1
- int 21h
- call ReadNumber
- mov N, ax
- mov ah, 09
- mov dx, offset Message2
- int 21h
- call ReadArray
- mov ah, 09
- mov dx, offset Message3
- int 21h
- call FindMin
- mov ah, 09
- mov dx, offset NewLine
- int 21h
- call FindMin
- mov ah, 09
- mov dx, offset NewLine
- int 21h
- ret
- ReadNumber proc
- ReadNumberStart:
- mov bx, 0
- ReadDigit:
- mov ah, 01
- int 21h
- cmp al, 48
- jb ReadNumberEnd
- cmp al, 57
- jg ReadNumberEnd
- sub ax, 256
- sub ax, '0'
- mov si, ax
- mov ax, bx
- mov cx, 10
- mul cx
- add ax, si
- mov bx, ax
- jmp ReadDigit
- ReadNumberEnd:
- mov ax, bx
- ret
- ReadNumber endp
- ReadArray proc
- ReadArrayStart:
- mov si, 0
- ReadElement:
- cmp si, N
- je ReadArrayEnd
- push si
- call ReadNumber
- pop si
- mov Array[si], al
- inc si
- jmp ReadElement
- ReadArrayEnd:
- ret
- ReadArray endp
- FindMin proc
- FindMinStart:
- mov ax, 255
- mov si, 0
- mov di, 0
- CheckElement:
- cmp si, N
- je FindMinEnd
- cmp Array[si], al
- jb SetMin
- inc si
- jmp CheckElement
- SetMin:
- mov al, Array[si]
- mov di, si
- inc si
- jmp CheckElement
- FindMinEnd:
- call PrintNumber
- mov Array[di], 255
- ret
- FindMin endp
- PrintNumber proc
- PrintNumberStart:
- push ax
- push bx
- push cx
- push dx
- DivideNumber:
- mov dx, 0
- mov cx, 10
- div cx
- cmp ax, 0
- jne PrintDigit
- add dl, '0'
- mov ah, 02
- int 21h
- jmp PrintNumberEnd
- PrintDigit:
- call PrintNumber
- add dl, '0'
- mov ah, 02
- int 21h
- PrintNumberEnd:
- pop dx
- pop cx
- pop bx
- pop ax
- ret
- PrintNumber endp
- Message1 db "Unesi duzinu niza : ", 0Dh, 0Ah, "$"
- Message2 db "Unesi clanove niza : ", 0Dh, 0Ah, "$"
- Message3 db "Dva najmanja clana niza su : ", 0Dh, 0Ah, "$"
- NewLine db "", 0Dh, 0Ah, "$"
Add Comment
Please, Sign In to add comment