Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Заполнить массив байт фиксированной длины с клавиатуры числами от 0 до 9.
- ;Найти максимум в массиве.
- ;Вывести полученное число на экран.
- model small
- .386
- .stack 100h
- .data
- strLength db 10,13, 'Enter length Array: $'
- strInput db 10,13, 'Input Array: $'
- strOutput db 10,13, 'OutPutArray: $',10,13
- strError db 10,13, 'Error$'
- strMax db 10,13, 'Max element: $'
- ArrayDigit db 100 dup(0)
- buffer db 11 dup(0)
- len db ?
- error db 0
- max db ?
- iMax dw ?
- .code
- checkDigit proc
- mov error, 0
- mov ah, 01h
- int 21h
- cmp al, '0'
- jb @error
- cmp al, '9'
- ja @error
- jmp @fexit
- @error:
- mov error, 1
- mov ah, 9h
- mov dx, OFFSET strError
- int 21h
- @fexit:
- ret
- checkDigit endp
- inputArray proc
- mov cl, len
- mov si, 0
- mov ah, 9h
- mov dx, OFFSET strInput
- int 21h
- @input:
- call checkDigit
- cmp error, 1
- je @errorInput
- mov ArrayDigit[si], al
- inc si
- loop @input
- @errorInput:
- ret
- inputArray endp
- outputArray proc
- mov cl, len
- mov si, 0
- mov ah, 09h
- mov dx, OFFSET strOutput
- int 21h
- @OUTPUT:
- mov ah, 02h
- mov dl, ArrayDigit[si]
- int 21h
- mov dl, ' '
- int 21h
- inc si
- loop @output
- ret
- outputArray endp
- findMax proc
- dec len
- mov cl, len
- xor si, si
- mov al, ArrayDigit[si]
- mov bx, si
- mov si, 0
- @loop:
- cmp ArrayDigit[si], al
- jbe @endLoop
- mov bx, si
- mov al, ArrayDigit[si]
- @endLoop:
- inc si
- loop @loop
- inc len
- mov imax, bx
- mov max, al
- ret
- findMax endp
- Main:
- mov ax, @data
- mov ds, ax
- mov ah, 9h
- mov dx, OFFSET strLength
- int 21h
- call checkDigit
- cmp error, 1
- je @exit
- sub al, '0'
- mov len, al
- call inputArray
- cmp error, 1
- je @exit
- call outputArray
- call findMax
- mov ah, 9h
- mov dx, OFFSET strMax
- int 21h
- mov dl, max
- mov ah, 02h
- int 21h
- @exit:
- mov ah, 4Ch
- int 21h
- end Main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement