Vize cevap anahtarı - Karabük Üniversitesi

Transkript

Vize cevap anahtarı - Karabük Üniversitesi
KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
MTM305 MİKROİŞLEMCİLER ARASINAV CEVAP ANAHTARI
1. Bir mikroişlemcinin yapısında temel olarak hangi birimler bulunur? Birer cümle ile bu birimlerin görevlerini aç ıklayınız.
Kaydediciler: Veir manevrasında ve geçici olarak tutulmasında görevlidirler.
Aritmetik ve Mantık Birimi (ALU): Aritmetik ve mant ık işlemlerin yapıldığı birim.
Zamanlama ve kontrol birimi: Bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodunun
çözülmesi, ALU tarafından işlenilmesi ve sonucunun alınıp belleğe geri konulması için gerekli olan kontrol sinyalleri üretir.
2. Assembly dilinin avantajları nelerdir?
•
Bigisayar donanımı üzerinde daha iyi bir denetim sağlar. İşlemcinizin gücünü en iyi şekilde ortaya koyabilecek tek
programlama dilidir.
•
Küçük boyutlu bellekte az yer kaplayan programlar yazılabilir.
•
Yazılan programlar daha hızlı çalış ır. Çok hızlı çalıştıkları için işletim sistemlerinde k ernel ve donanım
sürücülerinin programlanmas ında, hız gerektiren kritik uygulamalarda kullanılmaktadır.
•
Herhangi bir programlama dili altında, o dilin kodları arasında kullanılabilir.
•
İyi öğrenildiğinde diğer dillerde karş ılaş ılan büyük problemlerin assembly ile basit çözümleri olduğu görülür.
3.Bellekte 1000 nolu adresten itibaren 1'er baytlık sayılar bulunmaktadır. Yerleştirilen sayıların en sonunda belleğe '$'
karakteri yerleştirilmiştir. '$' karakterine kadar olan sayı adedini A X kaydedicisine atayan bir program yazın.
org 0100h
2.Çözüm
mov di,1000H
mov al,'$'
mov bx, 0
cld
ara:
org 0100h
mov ax,0
mov bx, 1000H
ara:
scasb
je buldu
inc bx
jmp ara
cmp [bx], '$'
je buldu
inc bx
inc ax
jmp ara
buldu:
mov ax,bx
hlt
buldu:
hlt
4. SI ile gösterilen bellek konumunda 100 adet 1’er baytlık sayı vardır. Bu sayılardan çift olanları say ı dizisinin başına, tek
olanları sayı dizisinin sonuna gelecek şekilde sayıları yeniden sıralayan bir program yaz ın. Örneğin dizi 3, 6, 4, 9, 2, 1 ise
program çalıştıktan sonra dizi 6, 4, 2, 3, 9, 1 olmalıdır.
org 0100h
mov si, offset veri
;lea si,veri şeklindede kullanılabilir.
push si
mov bx, 0400h
mov di, 0500h
mov dx, 0
mov cx, 100
ciftmi_tekmi:
mov al, [si]
test al, 00000001b
jz cift
; ciftleri tutan yer
; tekleri tutan yer
; veri adedi kadar kontrol yapılacak
;son bit bir olacak şekilde değere test işlemi uygulanır.
;
tek:
mov
inc
inc
jmp
[di], al
di
dl
atla
cift:
mov [bx], al
inc bx
inc dh
atla:
inc si
loop ciftmi_tekmi
pop si
;sayıları yerleştirme kısmı
mov cx, 0
mov cl, dh
mov bx, 0400h
ciftler:
mov al, [bx]
mov [si], al
inc bx
inc si
loop ciftler
mov cx, 0
mov cl, dl
mov di, 0500h
tekler:
mov al, [di]
mov [si], al
inc di
inc si
loop tekler
hlt
veri db "............."
;100 baytlık veri olduğu varsayılıyor.
2.YÖNTEM
org 0100h
mov si, offset veri
;lea si,veri şeklindede kullanılabilir.
push si
mov bx, 0400h
mov di, 0463h
; geçici dizi başlangıç adresi
; 400+99 geçici dizi bitiş adresi
mov cx, 100
; veri adedi kadar kontrol yapılacak
ciftmi_tekmi:
mov al, [si]
mov ah,0
mov bl,2
div bl
cmp ah,0
jz cift
tek:
mov al,[si]
mov [di], al
dec di
jmp atla
cift:
mov al,[si]
mov [bx], al
inc bx
atla:
inc si
loop ciftmi_tekmi
pop si
;sayıları yerleştirme kısmı
mov cx, 100
;geçici diziden alıp asıl kısma yerleştirme yapılması için
mov bx, 0400h ;sayac ve dizi başlangıç adresleri ayarlanır.
yerleştir:
mov al, [bx]
mov [si], al
inc bx
inc si
loop yerleştir
hlt
veri db "............."
;100 baytlık veri olduğu varsayılıyor.
3.YÖNTEM
org 0100h
mov si, offset veri
mov cx, 100
ciftmi_tekmi:
mov al, [si]
shr al,1
jnc cift
tek:
push cx
mov di,si
cift_ara:
inc di
mov al,[di]
shr al,1
jc sıradaki
yer_degistirme:
mov al,[si]
mov ah,[di]
mov [di],al
mov [si],ah
jmp kontrol_devam
sıradaki:
loop cift_ara
jmp bitir
kontrol_devam:
pop cx
cift:
inc si
loop ciftmi_tekmi
bitir:
hlt
veri db "............."
;lea si,veri şeklindede kullanılabilir.
; veri adedi kadar kontrol yapılacak
;son bit elde bayrağına alınır
;c=0 ise çift
;c=1 ise tek
; Yer değiştirme işlemi için cx döngü değeri saklanır.
;arama işleminde di adres olarak kullanılacak.
;tek sayı bulunan ilk ilk çift sayı ile yer
;değiştirecektir.
;çift sayı bulunamıyorsa sayılar istendiği şekilde
;sıralı demektir.Program bitirilir.
;100 baytlık veri olduğu varsayılıyor.
5. Aşağıdaki kod adım adım çalıştırılmaktadır. Boşlukları hexadesimal karşılıklarıyla doldurunuz.
MOV AX,20H
MOV BX,12H
ADD AX,BX
SUB AX,2
MUL BL
MOV CL,2
MOV AX,4
DIV CL
AND AL,01100100B
OR BL,11110000B
NOT AX
XOR AH,01100110B
MOV AX,2
MOV CX,5
SBB AX,CX
MOV AL,01010000B
SHL AL,3
ROL AL,2
SAR AL,1
; AX= 32H
; AX= 30H
; AX= 0360H
BX= 12H
;
;
;
;
;
00H
0H
F2H
FFFFH
19H
AL= 02H
Z= 1
CL= 02H
; AX= FFFDH
CX= 05H
C= 1
; AL= 80H
; AL= 02H
; AL= 01H
C= 0
C= 0
C= 0
AH=
AL=
BL=
AX=
AH=
C= 0
C= 0
BX= 12
S= 1

Benzer belgeler