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