05.01.2015 Views

Deney-2

Deney-2

Deney-2

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. <strong>Deney</strong><br />

Örnek Programlar<br />

<strong>Deney</strong>in Amacı<br />

‣ Simülasyon yazılımı kullanılarak program hazırlama<br />

‣ İTÜ-Eğit için yararlı programların hazırlanması<br />

1. Ara açma programı<br />

2. Blok aktarma programı<br />

<strong>Deney</strong> Öncesi Yapılması Gerekenler<br />

Bu deneyde uygulaması yapılacak olan donanım sınama, ara açma ve blok aktarma programları<br />

yazılmalı, simülatörde MC6800 mikroişlemcisi dili kullanılarak derlenmeli, çalıştırılmalı ve<br />

simülasyonu adım adım izlenmelidir. Programın beklenen işlevi gerçekleştirdiğinden emin<br />

olunmalıdır.Yazılım ile elde edilen makine kodları, İTÜ-Eğit’ e yazılacağından deneye başlamadan<br />

hazır bulundurulmalıdır.<br />

<strong>Deney</strong> İçeriği<br />

Donanım Sınama<br />

Ara açma ve blok aktarma deneylerinden önce bu deneyler sırasında ötelenecek bilginin yazılacağı<br />

adreslerde bellek bulunup bulunmadığı sınanmalıdır. Bellek yoksa bilgilerin bazıları kaybedilebilir.<br />

Bellek haritası içinde oku/yaz türü bellek bulunup bulunmadığını anlamak için her bellek gözüne<br />

sırasıyla $55 ve $AA yazıp okunmalıdır. Bellek gözüne $55 yazıldığında $55, $AA yazıldığında $AA<br />

okunuyor ise bu adreste bir oku/yaz bellek gözü olduğu anlaşılır.<br />

Sınanacak bellek haritasının başlangıç adresi<br />

Sınanacak bellek haritasının son adresi<br />

BAS<br />

SON<br />

simgesi ile belirtilecek şekilde sınama programını yazınız.<br />

BAS adresi $0000-$0001, SON adresi $0002-$0003 bellek gözlerinden okunacaktır. Sınama programı<br />

$0010 adresli bellek gözünden başlayarak yazılacaktır.<br />

Ara Açma<br />

Ara açma programı ile bellekte yazılı olan bir program ya da veri kümesine belirlenen bir noktasından<br />

itibaren yeni bir program ya da veri parçası eklenebilir. Böylece, programcı eklemek istediği birkaç<br />

satır için, programı baştan yazma zahmetinden kurtulur. Örneğin, $5000 adresi ile $5100 adresi<br />

arasında yer alan programa $5050 adresinden itibaren eklenen 10 satır ara açma programı sayesinde<br />

programın bitiş adresini $5110’a çekecektir.<br />

Bellekte yazılı bulunan verinin bitiş adresi<br />

Ara açma işleminin başlatılacağı adres<br />

Açılacak adım sayısı<br />

DIP<br />

ARA<br />

ADIM<br />

simgesi ile belirtilecek şekilde ara açma programını yazınız. Örnek Şekil-1’de gösterilmiştir.


BAŞ<br />

ARA<br />

A<br />

B<br />

C<br />

D<br />

E<br />

DİP<br />

A<br />

B<br />

C<br />

D<br />

E<br />

DİP + ADIM<br />

Bellek Haritası<br />

Şekil-1: Ara açma programının işleyişi<br />

BAS adresi $0000-$0001 DIP adresi $0002-$0003, ARA adresi $0004-$0005 ve ADIM sayısı $0006<br />

bellek gözlerinden okunacaktır. Ara açma programı $4000 adresli bellek gözünden başlayarak<br />

yazılacaktır.<br />

Ara açma işleminin yapılacağı alanın başı $5000 ve sonu $500F olarak seçilecektir. $5000 adresinden<br />

başlayarak bellek gözlerine sırasıyla $00, $01 $02, ..., ve $500F gözüne $0F yazınız. ARA noktası<br />

$500A ve ADIM sayısı 3 olarak deneyi gerçekleyiniz.<br />

Blok Aktarma<br />

Blok aktarma programı belleğin belli bir bölgesinde bulunan bir blok veri ya da programın, belleğin<br />

başka bir bölgesine taşınmasını sağlar. Aktarılacak bloğun başlangıç ve bitiş adresleri ile aktarılacağı<br />

yerin adresi bilinmelidir. Blok aktarma işleminde 3 durum söz konusu olabilir:<br />

1. Asıl blok ile kopya bloğun ara kesiti yoktur.<br />

2. Kopya bloğun üst bölgesiyle asıl bloğun alt bölgesi kesişebilir.<br />

3. Kopya bloğun alt bölgesiyle asıl bloğun üst bölgesi kesişebilir.<br />

İlk durum için yazılan program 2. durum için de geçerlidir. Çünkü Şekil-2’de görüldüğü gibi kopya<br />

bloğun alt kısmı asıl bloktaki verileri bozmadan asıl programın üst kısmı aktarılmış olacaktır. Ancak 3.<br />

durumda Şekil-2’den de takip edilirse asıl bloğun aktarılan ilk verileri asıl bloğun alt kısmına<br />

yazıldığından asıl blok bozulmaktadır.<br />

Üstten ve alttan kesişme durumlarında da çalışabilecek bir blok aktarma programını simülasyon<br />

programında hazırlayınız.<br />

Asıl bloğun başlangıç adresi<br />

Asıl bloğun bitiş adresi<br />

Kopya bloğun başlangıç adresi<br />

Kopya bloğun son adresi<br />

BAS<br />

SON<br />

VARIS<br />

DIP


Varış<br />

KOPYA<br />

Varış<br />

KOPYA<br />

Baş Baş Baş<br />

ASIL ASIL ASIL<br />

Son<br />

Son<br />

Varış<br />

KOPYA<br />

KOPYA<br />

Varış<br />

Son<br />

Şekil-2: Blok aktarma işleminde ortaya çıkan olasılıklar<br />

BAS adresi $0000-$0001, SON adresi $0002-$0003, VARIS adresi $0004-$0005 bellek gözlerinden<br />

okunacaktır. DIP adresi için $0006-$0007 adresli bellek gözleri kullanılacaktır.<br />

Blok aktarma programı $4000 adresli bellek gözünden başlayarak yazılacaktır.<br />

Blok aktarma işleminin yapılacağı alanın başı $5050 ve sonu $5070 olarak seçilecektir. $5050<br />

adresinden başlayarak bellek gözlerine sırasıyla $00, $01 $02, ..., ve $5070 gözüne $20 yazınız. Blok<br />

başlangıcı $5050 ve sonu $5070 olarak kabul edilecektir.<br />

1. <strong>Deney</strong>: Varış adresini $5040 seçerek deneyi gerçekleyiniz.<br />

2. <strong>Deney</strong>: Varış adresini $5060 seçerek deneyi gerçekleyiniz.<br />

3. <strong>Deney</strong>: BAS=$F000, SON=$F100, VARIS= $E000 olarak deneyi yineleyiniz.<br />

Raporda İstenenler<br />

Donanım sınaması ile ilgili sorular:<br />

1. Hazırladığınız programın simgesel ve makine dilindeki kodlarını açıklamaları ve akış<br />

diyagramları ile birlikte rapora yazınız.<br />

2. <strong>Deney</strong>de bulduğunuz sonuçları yazınız.<br />

3. Bir bellek gözünü sınamak için neden $AA ve $55 verilerini kullandığınızı açıklayınız.<br />

4. Yazdığınız program $0000dan $FFFF’ e kadar tüm bellek alanını sınayabilir mi, açıklayınız.<br />

Ara açma ile ilgili sorular:<br />

1. Hazırladığınız programın simgesel ve makine dilindeki kodlarını akış diyagramları ile birlikte<br />

rapora yazınız.<br />

2. <strong>Deney</strong> sonunda $5000 - $5020 aralığındaki bellek gözlerinin içeriğini yazınız.<br />

3. Adım sayısı 16 bitlik olan bir ara açma programını yazınız.<br />

Blok aktarma ile ilgili sorular:<br />

1. Hazırladığınız programın simgesel ve makine dilindeki kodlarını akış diyagramları ile birlikte<br />

rapora yazınız.<br />

2. 1. deney için $5040-$5080, 2. deney için $5060-$5080 aralığındaki bellek gözlerinin<br />

içeriklerini yazınız.<br />

3. 3. deneyin sonucunu açıklayınız.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!