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]