1. Ödev :

8 bitlik 5 değişkende saklanan 40bitlik bir sayıyı 8bitlik 2değişkende saklanan 16bit bir sayıya bölen ve sonucu işlem öncesi 40bitlik sayıyı tutan beş değişkene saklayan bir program yazılması.

 İsteyen öğrenciler çarpma işlemi için yapabilirler. Her ikisinden birini yapmak yeterli olacaktır ve her ikisi de kabul edilecektir. Çarpma işleminde taşan bitler görülmeyecek ve işlem sonucu daima 40 bit olarak saklanacaktır. Bölme işlemi yapan öğrenciler de sonucun sadece tam sayı kısmını 40bitlik değişkenler içerisinde saklayacaklardır. Derste anlatılan şekilde R2...R7 kayıtçıları değikenleri saklamak için kullanılacaktır. Ödevde 8051 komut kümesi kullanılacaktır.

a) Önce bir kağıda yazmak istediğiniz programın algoritmasını çiziniz

b) Bu algoritmayı kontrol ettikten sonra bir text editörü ile (örneğin DOS'ta "edit" veya Windows'ta notepad) programınızı 8051 komut kümesini kullanarak yazınız. ve o1_bolme.asm ya da o1_carpma.asm  isimleri ile text formunda kaydediniz.

c)  ASM51 o1_bolme.asm   (ya da o1_carpma.asm) yazarak enter tuşuna basınız (Dos). Bu işlemin sonucunda hata yoksa "NO ERRORS" görülecek ve o1_bolme.obj dosyası aynı dizin içerisinde otomatik olarak oluşturulacaktır. Bu durumda Obje'den Hex'e çevirici program OH.exe aracılığı ile          OH o1_bolme.obj   yazar ve enter tuşuna basarsanız işlemciye programlamaya hazır olan o1_bolme.hex  dosyası oluşacaktır. Text editörü ile içeriğine bakılırsa komut ve değişkenlerin kod karşılıkları görülebilir. Hata varsa da yoksa da derleme işlemi sonrası o1_bolme.lst adlı bir text dosyası oluşur. Eğer hata sebebi ile .obj uzantılı dosya oluşturulamamış ise o1_bolme.lst dosyasının içine bir text editörü ile bakılarak hangi satırlarda hata bulunduğu görülebilir.

d) Bir döngü içerisinden ödev alt programının çağırıldığı programı PDS51 simülatörü ile windows işlwtim sistemli bir bilgisayarda sınyabilirsiniz.

Bir 8051 programının şu yapıda olabileceğine dikkat ediniz.

; tanimlar bolumu

VERI1     DATA  30H

VERI2     DATA  31H

;...................

;sifir vektoru

                ORG    0000H

                JMP     BASLA  ;    PC=[basla]

;kesme  vektorleri  (maximum 2FH'e kadar)

;..................

; ilk kosullandirmalar

BASLA:   MOV   SP,#70H  ; ilk ornek satir - yigin gostergeci=70H

;.............

;ana program cevrimi

CEVRIM:   INC    VERI1      ; VERI1=VERI1+1

                   MOV   A,VERI1  ; A=VERI1

;...............

;ana program cevrimi icinde cekirdek alt programlara (kernel) ve kesme altprogramlarina sikca atlama yapilabilecegini

;gozonunde tutunuz. Tekrarlanan islem dizilerini cekirdek alt programlara ekleyerek cagri yapmak hem kodu kisaltacak hem

;de sistem kaynaklarini daha verimli kullanmanizi saglayacaktir.

                JMP   CEVRIM   

;cekirdek alt proramlar

O1_carpma: 

;...................

                    RET

;..................      

                    END

Her programin sonunda mutlaka END komutu bulunmali ve END sonrasi hehangi bir bosluk ya da karakter bulunmamalidir. Odevde kullanilacak ASM51 derleyicisi Turkce karakterler icin hatali islem yapmaktadir.

e) Ödevinize ait algoritmayi bir dosya kağıdına çizerek 8 Kasım perşembe günkü derste yoklama olarak veriniz. isim, soyad, numara ve bölümünüzü yazmayı unutmayınız..

f) Ödev için yazdığınız ve denediğiniz .asm uzantılı programı 11 Kasım Pazar gecesi saat 23:59.59'a kadar berk@elk.itu.edu.tr adresine postalayiniz. E-mail'inizin konu kısmına : Odev1_xxxxxxxx yazınız. Buradaki xxxxxxxxx okul numaranız olmalıdır. Göderdiğiniz dosya ek olarak bulunmalıdır. E-mailinizin içine

Adı:

Soyadı:

Numaras:

Bolumu:

Erişilebilecek telefon (serbest):

e-mail adresi :

bölümleri oluşturup doldurulmalıdır.  .asm uzantili programiniz e-mail'in içeriği değil eki olmalıdır.