Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- assume cs:code, ds:data
- code segment
- begin:
- jmp main
- chislo dw 0
- mult10 dw 1
- main proc near
- mov ax, data
- mov ds,Ax
- mov ah, 09h
- lea dx, msg1
- int 21h
- mov ah, 0ah
- lea dx,param
- int 21h
- lea si,field -1
- mov bh,0
- mov bl, actlen
- call InNumber
- mov ax,chislo
- mov c1,ax
- mov chislo,0
- mov mult10,1
- mov ah, 09h
- lea dx,new_line
- int 21h
- mov ah, 09h
- lea dx, msg2
- int 21h
- mov ah, 0ah
- lea dx,param
- int 21h
- lea si,field - 1
- mov bh,0
- mov bl, actlen
- call InNumber
- mov ax,chislo
- mov d1,ax
- mov ah, 09h
- lea dx,new_line
- int 21h
- mov ah, 09h
- lea dx, msg3
- int 21h
- xor ax,ax
- xor bx,bx
- mov cx,5
- mov si,0
- vvod:
- mov tmp,si
- mov tmp2,cx
- mov chislo,0
- mov mult10,1
- mov ah, 09h
- lea dx,new_line
- int 21h
- mov ah, 0ah
- lea dx,param
- int 21h
- lea si,field - 1
- mov bh,0
- mov bl, actlen
- call InNumber
- mov ax,chislo
- mov si,tmp
- mov cx,tmp2
- mov array[si],ax
- cmp ax,c1
- JAE checkc
- jmp exc
- checkc:
- cmp ax,d1
- JBE checkd
- jmp exc
- checkd:
- add k1,ax
- exc:
- add si,2
- loop vvod
- output:
- mov ax,k1
- mov chislo, ax
- call FromNumber
- mov ah, 09h
- lea dx,new_line
- int 21h
- mov ah, 09h
- lea dx, msg
- int 21h
- mov ah, 09h
- lea dx,otvet
- int 21h
- mov ah, 0ah
- lea dx,param
- int 21h
- mov ax,4c00h
- int 21h
- ret
- main endp
- InNumber proc
- mov cx,10
- b20:
- mov al,[si+bx]
- and ax, 000fh
- mul mult10
- add chislo, ax
- mov ax,mult10;
- mul cx
- mov mult10,ax
- dec bx
- jnz b20
- ret
- InNumber endp
- FromNumber proc
- mov cx,0010;
- lea si, otvet + 5
- mov ax,chislo
- mov bx, ax
- and bx, 8000h
- cmp bx, 8000h
- jb plus
- mov bx, ax
- mov ax, 65535
- sub ax, bx
- add ax, 1
- mov bx, 1
- plus:
- c20:
- cmp ax,0010
- jb c30
- xor dx,dx
- div cx
- or dl,30h
- mov [si],dl
- dec si
- jmp c20
- c30:
- or al,30h
- mov [si],al
- cmp bx, 1
- je addminus
- ret
- addminus:
- dec si
- mov al, zminus
- mov [si], al
- ret
- FromNumber endp
- ;=============================================
- code ends
- data segment
- new_line db 0dh,0ah,'$'
- msg db 'Rezultat = $'
- msg1 db 'Vvedite c: $'
- msg2 db 'Vvedite d: $'
- msg3 db 'Vvedite 5 elementov massiva: $'
- otvet db ' $'
- zminus db '-'
- array dw 5 dup (?)
- tmp dw 0
- tmp2 dw 0
- k1 dw 0
- c1 dw ?
- d1 dw ?
- param label byte
- maxlen db 20
- actlen db ?
- field db 20 dup(' ')
- data ends
- stk segment
- db 256 dup (?)
- stk ends
- end begin
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement