m.dehkordi.py
شنبه 21 بهمن 1391, 17:43 عصر
سلام دوستان!
من یه کداسمبلی برای 80x86 برای ضرب 2 ماتریس 2*2 نوشتم (ادیترم هم emu8086 هستش)
ولی توی قسمت lable3 خط آخر گیر میکنه. اگه لطف کنید کمکم کنید ممنون میشم.
در ضمن ماتریس A و B رو از طریق ماکرو گرفتم (از درستی اون تقریبا مطمئنم) و به خاطر طولانی شدن کد اون رو ننوشتم.
ممنون میشم سریع تر بم بگید چون 2 روز بیشتر وقت ندارم.
بازم ممنون!
main:
mov si , -1
CIsZero :
inc si
mov C[si] , 0
cmp si , 99
jle CIsZero
recA A
mov ah , 00h
int 16h
recB B
mov di , 0
mov si , 0
mov bx , -1
lable1 :
cmp bx , 4
je Print
mov di , 0
mov cx , si
lable2 :
cmp di , 4
je lable1
mov si , cx
inc bx
lable3 :
mov al , A[si]
mul B[di]
;mov temp , al
add C[bx] , al
inc si
inc di
mov ax , di
mov dl , 2
div dl
cmp ah , 0
je lable2
jmp lable3
Print :
mov si , 0
mov al , C[si]
add al , 48
mov ah , 0eh
int 10h
inc si
cmp si , 3
jle Print
ret
من یه کداسمبلی برای 80x86 برای ضرب 2 ماتریس 2*2 نوشتم (ادیترم هم emu8086 هستش)
ولی توی قسمت lable3 خط آخر گیر میکنه. اگه لطف کنید کمکم کنید ممنون میشم.
در ضمن ماتریس A و B رو از طریق ماکرو گرفتم (از درستی اون تقریبا مطمئنم) و به خاطر طولانی شدن کد اون رو ننوشتم.
ممنون میشم سریع تر بم بگید چون 2 روز بیشتر وقت ندارم.
بازم ممنون!
main:
mov si , -1
CIsZero :
inc si
mov C[si] , 0
cmp si , 99
jle CIsZero
recA A
mov ah , 00h
int 16h
recB B
mov di , 0
mov si , 0
mov bx , -1
lable1 :
cmp bx , 4
je Print
mov di , 0
mov cx , si
lable2 :
cmp di , 4
je lable1
mov si , cx
inc bx
lable3 :
mov al , A[si]
mul B[di]
;mov temp , al
add C[bx] , al
inc si
inc di
mov ax , di
mov dl , 2
div dl
cmp ah , 0
je lable2
jmp lable3
Print :
mov si , 0
mov al , C[si]
add al , 48
mov ah , 0eh
int 10h
inc si
cmp si , 3
jle Print
ret