24 Mart 2010 Çarşamba

MAL(More Abstract Language) ile Dizi Elemanların Karelerini Alan Kod

		.data
dizi:	.word	0:20
		.text
	la	$3,dizi
	li	$4,76
	li	$5,0
for:	bgt	$5,$4,endfor
	add	$6,$3,$5
	lw	$7,($6)
	mult	$7,$7,$7
	sw	$7,($6)
	add	$5,$5,4
	b	for
endfor:	done

la $3,dizi –>Dizinin başlangıç adresini 3.registera atıyor.li $4,sabit—>sabiti registera atamak içindir.MAL da işlem yapabilmek için ilk önce değerleri bellekten okuyup bir registera atanmalı(load), işlemimizi bu register üzerinden gerçekleştirdikten sonra tekrar belleğe yazılmalı(store).lw ile bellekten değer okuruz ve sw ile belleğe değerleri yazarız.lw $7,0($6) –>şeklinde de yazılabilir.Sıfır yerine yanı katsayı 4 ün katı olamalı.Çünkü adresler 4 er artıyor.

1 yorum: