سورس برنامه ضرب دو ماتریس به زبان اسمبلی
در این بخش سورس برنامه ضرب دو ماتریس به زبان اسمبلی را برای شما آماده کرده ایم که با استفاده از زبان برنامه نویسی Assembly نوشته شده است. در ادامه می توانید توضیحات و تصاویر مربوط به این پروژه را مشاهده کنید.
توضیحات پروژه
ماتریس (Matrix) به آرایش مستطیلی شکل از اعداد یا عبارات ریاضی که به صورت سطر و ستون در کنار هم قرار گرفته باشند، گفته می شود. هر سطر یا ستون یک ماتریس، یک بردار را تشکیل می دهد. عناصر تشکیل دهنده ماتریس دِرایه خوانده می شوند.
در این پروژه سه ماتریس وجود دارد که مقادیر ماتریس اول و دوم بعد از اجرا شدن برنامه از کاربر گرفته می شود و مقادیر ماتریس سوم هم با نتیجه ضرب دو ماتریس قبلی پر می شود. در نهایت مقادیر ماتریس سوم در خروجی نمایش می دهد. مشاهده سورس کد این پروژه می تواند به شما در درک نحوه نوشتن برنامه های اسمبلی و استفاده از قابلیت های آن کمک کند. برای این که یادگیری کدها ساده تر شود، بخش های مختلف به صورت ماکرو نوشته شده اند. این برنامه با استفاده از برنامه Emu8086 نوشته شده است که می توانید آن را از لینک مورد نظر دانلود کنید.
قسمت های از سورس کد
writeln macro str savereg lea dx,str mov ah,09h int 21h getreg endm ;---------------------- int_to_string macro n,str,len local while savereg lea di,str mov dl,len mov dh,0 add di,dx mov byte ptr[di],'$' mov ax,n mov cl,10 while: dec di div cl add ah,48 mov [di],ah mov ah,0 cmp al,0 jne while getreg endm ;---------------------- .model small .stack 64 .data ;---------------------- num db ? stringleft db 'Matrix[ $' stringright db ' ]= $' txtonvan db "Matrix A * Matrix B = Matrix C",10,13,10,13,'$' txtMatrixA db "Matrix A:",10,13,'$' txtMatrixB db 10,13,"Matrix B:",10,13,'$' txtMatrixC db 10,13,"Matrix C:",10,13,'$' newline db 10,13,'$' ;========================= N equ 4 sizerow db N sizeindex db 1 row db 0 col db 0 address dw 0 ;========================= n1 db 0 n2 db 0 n3 db 0 ;========================= MatrixA db 16 dup(0) MatrixB db 16 dup(0) MatrixC db 16 dup(0) ;========================= i db 0 j db 0 k db 0 ;========================= strlist1 label byte max1 db 10 len1 db ? str1 db 11 dup('$') str2 db 5 dup(' '),'$' .code main proc far ;========================= mov ax,@data mov ds,ax ;========================= writeln txtonvan writeln txtMatrixA get MatrixA writeln txtMatrixB get MatrixB call Zarb_AB ;zarb C=A*B writeln txtMatrixC print MatrixC ;============= kerftane character az karbar mov ah,01h int 21h ;============= khoroj az barname mov ax,4c00h int 21h ;============= main endp end main
نوشته سورس برنامه ضرب دو ماتریس به زبان اسمبلی اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.