moon6
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору stak segment para public stack 'stack' dw 64 dup(?) stak ends data segment matr db 100 dup(?) n db ? m db ? msg1 db 10,13,'BBEDUTE KOL-BO CTPOK $' msg2 db 10,13,'BBEDUTE KOL-BO CTOL6COB $' msg3 db 10,13,'a[' msg4 db 10,13,'Preobr.: ' i db ? k db ? diag db ? l db ? s dw ? data ends extrn read: far, write: far code segment start: assume cs:code, ds:data mov ax, data mov ds, ax lea dx, msg1 mov ah,9h int 21h call read mov n, al lea dx, msg2 mov ah,9h int 21h call read mov m, al mov i, 1 mov k, 1 vvod: lea dx, msg3; vvod matrici mov ah, 9h int 21h mov al, i cbw call write mov dl,',' mov ah,6h int 21h mov al, k cbw call write mov dl,']' mov ah,6h int 21h mov dl,'=' mov ah,6h int 21h call read mov l, al mov al, i dec al mov bl,10 mul bl add al, k cbw mov si,ax mov al,l mov matr[si], al inc k mov al, k cmp al, m jg u jmp vvod u: mov al, i cmp al, n jge dal mov al, m sub k, al inc i jmp vvod dal: lea dx, matr preobr: mov diag, 1 mov al, matr[1] cbw call write inc diag cikl_diag: mov al, diag mov bl, 2 div bl cmp ah, 0 jne nech_diag ch_diag: mov al, diag mov k, al mov i, 0 vivod1: mov al, k cmp al, n jg gr mov al, i cmp al, m jge gr mov bl, 10 mul bl add al, k cbw mov si,ax mov al, matr[si] cbw call write mov dl,' ' mov ah, 6h int 21h gr: dec k inc i mov al,k cmp al, 0 jne dal1 jmp prov dal1: jmp vivod1 nech_diag: mov k, 1 mov al,diag mov i, al dec i vivod2: mov al, k cmp al, n jg gr1 mov al, i cmp al, m jge gr1 mov bl, 10 mul bl add al, k cbw mov si,ax mov al, matr[si] cbw call write mov dl,' ' mov ah, 6h int 21h gr1: dec i inc k mov al, diag inc al cmp al,k jne dal2 jmp prov dal2: jmp vivod2 prov: inc diag mov al, diag cmp al, 10 jg kj jmp cikl_diag kj: cmp al, 20 jl cikl2 jmp kon cikl2: mov al, diag mov bl, 2 div bl cmp ah, 0 jne nech_diag2 ch_diag2: mov k, 10 mov al,diag mov i, al sub i, 10 vivod3: mov al, k cmp al, n jg gr2 mov al, i cmp al, m jge gr2 mov bl, 10 mul bl add al, k cbw mov si,ax mov al, matr[si] cbw call write mov dl,' ' mov ah, 6h int 21h gr2: dec k inc i mov al,i cmp al, 10 je prov jmp vivod3 nech_diag2: mov al, diag mov k, al sub k, 9 mov i, 9 dec i vivod4: mov al, k cmp al, n jg gr3 mov al, i cmp al, m jge gr3 mov bl, 10 mul bl add al, k cbw mov si,ax mov al, matr[si] cbw call write mov dl,' ' mov ah, 6h int 21h gr3: dec i inc k mov al, k cmp al,10 jle dal4 jmp prov dal4: jmp vivod4 kon: mov ah, 4ch int 21h code ends end start |