Sunday, January 9, 2011

Matrix Addition

Share Orkut
        print macro msg         lea dx,msg         mov ah,09h         int 21h     endm     reads macro m         mov ah,01h         int 21h         sub al,30h         mov m,al     endm     read macro n,j1,j2     j1:mov ah,01h         int 21h         cmp al,0dh         je j2         sub al,30h         mov bl,al         mov ax,n         mov dx,0ah         mul dx         xor bh,bh         add ax,bx         mov n,ax         jmp j1     j2 :nop     endm     readmat macro mat,l1,j3,j4,newmsg         mov cx,noe         mov si,00h         print msg6     l1:print newmsg         ;read a multidigit number         read mat[si],j3,j4         add si,02         loop l1     endm     printmul macro n1,l2,l3         mov bx,000ah         mov ax,n1         xor cx,cx         ;push into stack     l2:xor dx,dx         div bx         push dx         inc cx         cmp ax,0000h         jne l2         ;pop from stack     l3:pop dx         add dl,30h         mov ah,02h         int 21h         loop l3     endm     printmat macro mat1,l4,l5,l6,j5         mov cx,noe         mov si,00h     l4: push cx         print msg7         printmul mat1[si],l5,l6         add si,02h         inc f         mov bl,f         cmp bl,colum         jne j5         print msg6         mov f,00h     j5: pop cx         loop l4     endm     .model small     .stack 100h     .data         msg1 db 10,13,'Enter the no of rows: $'         msg2 db 10,13,'Enter the no of column: $'         msg3 db 10,13,'Enter the element of matrix1 : $'         msg4 db 10,13,'Enter the element of matrix2 : $'         msg5 db 10,13,' Sum Matrix $'         msg6 db 10,13,' $'         msg7 db ' $'         msg8 db 10,13,' 1st Matrix$'         msg9 db 10,13,' 2nd Matrix$'         row db 0         colum db 0         matrix1 dw 100 dup(0)         matrix2 dw 100 dup(0)         matrix3 dw 100 dup(0)         sum dw 0         f db 0         noe dw 0     .code     main proc         mov ax,@data         mov ds,ax         ;read no of rows         print msg1         reads row         ;read no of column         print msg2         reads colum         ;calculating total no of elements         mov al,row         mov bl,colum         mul bl         mov noe,ax         ;read 1st matrix elements         readmat matrix1,loop1,jump1,jump2,msg3         ;read 2nd matrix elements         readmat matrix2,loop2,jump3,jump4,msg4         ;matrix addition         mov cx,noe         mov si,00h     loop3:mov ax,matrix1[si]         add ax,matrix2[si]         mov matrix3[si],ax         add si,02h         loop loop3         ;print 1st matrix         print msg8         print msg6         printmat matrix1,loop4,loop5,loop6,jump5         ;print 2nd matrix         print msg9         print msg6         printmat matrix2,loop7,loop8,loop9,jump6         ;print Sum matrix         print msg5         print msg6         printmat matrix3,loop10,loop11,loop12,jump7         mov ah,4ch         int 21h     main endp     end

No comments:

Post a Comment