سورس برنامه ضرب دو ماتریس به زبان اسمبلی

multiplication two matrix in assembly 7548 تصویر

سورس برنامه ضرب دو ماتریس به زبان اسمبلی

در این بخش سورس برنامه ضرب دو ماتریس به زبان اسمبلی را برای شما آماده کرده ایم که با استفاده از زبان برنامه نویسی 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

نوشته سورس برنامه ضرب دو ماتریس به زبان اسمبلی اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *