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: $'
- strInput db 10,13, 'Enter Element $',10,13
- strOutPut db 10, 13, 'Massiv $',10,13
- strSumma db 10,13, 'Summa: $'
- strError db 10,13, 'Error $'
- lenArray db ?
- count db 0
- Array db 10 dup(?)
- Summa db 0
- error db ?
- .code
- digit proc
- mov error, 0
- mov ah, 01h
- int 21h
- sub al, '0'
- cmp al, 9
- ja @errorf
- ret
- @errorf:
- mov ah, 09h
- mov dx, OFFSET strError
- int 21h
- mov error, 1
- ret
- digit endp
- inputArr proc
- mov ah, 9h
- mov dx, OFFSET strInput
- int 21h
- mov cl, lenArray
- mov si, 0
- @input:
- call digit
- cmp error, 1
- je @exitf
- mov Array[si], al
- inc si
- loop @input
- @exitf:
- ret
- inputArr endp
- Sum proc
- movzx cx, lenArray
- mov si, 0
- @sum:
- mov al, array[si]
- add summa, al
- inc si
- loop @sum
- ret
- sum endp
- outputsumma proc
- mov ah, 02h
- cmp summa, 9
- ja @func
- jmp @eexit
- @func:
- add count, 1
- sub summa, 10
- cmp summa, 9
- ja @func
- mov dl, count
- add dl, '0'
- int 21h
- @eexit:
- mov dl, summa
- add dl, '0'
- int 21h
- ret
- outputsumma endp
- main:
- mov ax, @data
- mov ds, ax
- mov ah, 09h
- mov dx, OFFSET strLength
- int 21h
- call digit
- cmp error, 1
- je @exit
- mov lenArray, al
- call inputArr
- cmp error, 1
- je @exit
- call Sum
- mov ah, 09h
- mov dx, OFFSET strSumma
- int 21h
- call outputsumma
- @exit:
- mov ah, 4Ch
- int 21h
- end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement