Mikroişlemciler içeriğine geri dön

2016 Güz Vize

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

2016-2017 ÖĞRETİM YILI GÜZ DÖNEMİ

BİL3007 MİKROİŞLEMCİLER DERSİ

ARASINAV SORULARI

23/Kasım/2016

 

 

 

Soru 1)

 

.model tiny

.code

.startup

 

mov ax,0b800h

mov es,ax

mov ds,ax

 

mov di,0

mov cx,25

mov ax,0ff20h

 

cld

 

dongu1:

stosw

add di,160

loop dongu1

 

 

mov di,158

mov cx,25

mov ax,0ff20h

 

std

 

dongu2:

stosw

add di,160

loop dongu2

 

.exit

End

 

Program çalışırken ekrana yazdırılan karakterleri ve bu karakterlerin rengini de belirterek program sonlandıktan sonra oluşan ekran (screen) görüntüsünü çiziniz. Ayrıca b800:xxxx bellek hücrelerinden etkilenenlerin adreslerini ve yüklendikleri değerleri yazınız. Ekran 25 satır, 80 sütun (25×80) boyutlarına sahiptir. (33 puan)

 

Soru 2) Bellekteki dizinin her elemanının değerini bir artıran programı yazınız. Değer artırma işlemini döngü ile gerçekleştiriniz. (33 puan)

 

Soru 3) 8 elemanlı array dizisinin elemanlarından soldaki yarısını dairesel sola, sağdaki diğer yarısını dairesel sağa kaydıran bir program yazınız. Örneğin dizi elemanlarımız sırasıyla 1, 2, 3, 4, 5, 6, 7, 8 olsun. Program çalışıp bittikten sonra dizi elemanları sırasıyla 2, 3, 4, 1, 8, 5, 6, 7 olmalıdır. Dizinin eleman sayısının artabileceğini düşünerek, programınızın yeni duruma birkaç değer değişikliği ile uyumlu olabilmesi için kaydırma işlemlerini döngü ile gerçekleştiriniz.

(34 puan)

 

Sınav süresi 60 dakikadır.