Assembly ile 100h Adresinden 200h Adresine 20 Adet Veri Kopyalama

Merhaba arkadaşlar bugün assembly de bir soru çözeceğiz.Sorumuz şu:

Soru:100h bellek adresinden başlayan 20 sayıyı 200h adresine kopyalayan program kodlarını assembly dilinde yazınız.

Soruyu çözerken kaynak ve hedef dizilerimizi tanımladık.Sonra 20 ye kadar saydırmak için bir sayac tanımladık.Ve 20 defa kaynak diziyi dolaylı olarak belleğe yükleyip,yine dolaylı olarak hedef adrese yazdırdık.Kodlarımız şöyle

[Assembly]

ORG 0;Programımızın baslangic adresi
DON:Dongu kurmak icin " DON " adında bir etiket tanimladik

LDA ARR_KAYNAK I;kaynak diziyi dolaylı olarak bellege yukledik(Yani icerigini AC ye aktardik)
STA ARR_HEDEF I ;AC nin icerigini dolayli olarak hedef adresine yazdik
ISZ ARR_KAYNAK;kaynak dizi ;kaynak dizinin adresini bir artirdik
ISZ ARR_HEDEF;hedef dizinin adresini bir artirdik
ISZ SAY;Sayacimizi bir artirdik,Sayac eger 0 ise 1 atlayacagi icin duracaktir(HLT).0 dan farkli ise normal devam edip bir alt satira inecek.
BUN DON;Don etiketine tekrar git.
HLT;Programi durdur

;Degisken Tanimlamalari

SAY:DEC -20

ARR_KAYNAK:HEX 100
ARR_HEDEF:HEX 200
END

[/Assembly]

Leave a Comment

to top