PDA

View Full Version : ضرب دو ماتریس



luckyluck
شنبه 16 دی 1385, 02:32 صبح
آقا اگه بلد لطفا منو راهنمایی کنه
آخه چه جوری ضرب 2 ماتریس رو میشه نوشت
دم همتون گرم:عصبانی++:

Younes
سه شنبه 19 دی 1385, 14:16 عصر
سلام
این برنامه برای ضرب دو ماتریس 2*3 و 3*2 امتحان شده و جواب داده.:لبخندساده:

];;;;;; ضرب دو ماتریس در هم : MAt1 (n*m) * MAT2 (m*k) -----> MAT3(n*k)

;;;;;;Macro:با توجه به سطروستون آفست یک خانه را در ماتریس محاسبه می کند
Ind macro row,col,c1
mov al,c1
mul row
add al,col
endm

datass segment
r db 0 ; متغیر سطر
column db 0 ; متغیر ستون
M2 db 0 ; متغیر کمکی سطرو ستون
n = 2 ; مقادیر برای این مثال خاص
m = 3 ; مقادیر برای این مثال خاص
k = 2 ; مقادیر برای این مثال خاص
mat1 db 1,2,3,4,5,6 ; مقادیر برای این مثال خاص
mat2 db 1,2,3,4,5,6 ; مقادیر برای این مثال خاص
mat3 dw 4 dup(?)
datass ends

[RIGHT]codes segment
assume ds:datass,cs:codes
start:
mov ax,datass
mov ds,ax
Mov cx,n
mov r,0
L1: push cx
mov column,0
mov cx,k
L2: push cx
mov cx,m
mov dx,0
mov m2,0
L3: Ind r,m2,m
mov si,ax
mov bl,mat1[si]
Ind m2,column,k
mov si,ax
mov al,mat2[si]
mul bl
add dx,ax
inc m2
loop l3
Ind r,column,k
mov si,ax
mov mat3[si],dx
inc column
pop cx
loop l2
inc r
pop cx
loop l1


mov ah,4ch
int 21h
codes ends
end start