8085 Assembly ile Dizi Elemanlarını Toplamak

Batuhan Düzgün tarafından yayınlanmıştır 9. August 2010 09:30

 

8085  ile  ilgili makalelerimize kaldığımız yerden hızla devam ediyoruz.Bu defaki yazımda sizlere bir dizideki elemanların toplamını bulmak olacak.Şimdi algoritmayla ilgilenmiş az çok programlama bilen herkes için gayet basit işlemdir,dizi elemanlarını toplama işlemi basit bir döngüyle herşey halledilir. Şimdi her zamanki gibi yine işin algoritmasını,çözümünü arayacağız.İlk önce bilgisayarda toplama işlemi gibi bir soruyu programlarken,başlangıçta sıfıra eşitlenmiş bir değişkenle dizi elemanları döngü içinde sürekli toplanarak toplanır.Şimdi, düşündüğümüz çözümün akış diyagramına bakalım.



Şimdi kodu yazmadan önce bir kaç şeyi kafamızda belirleyelim.Öncelikle toplam değerini tutacak olan kaydedicimiz B olacak,bunun yanı sıra dizideki her elemanı MOV A,M komutuyla akümülatöre alıp, B kaydedisiyle toplayacağız.Daha sonra her toplam işleminden sonra akümülatördeki toplam değerini B kaydedicisine tekrar kopyalacağız.Şimdi kodumuz aşağıdaki gibidir.Açıklamalar ile birlikte verilmiştir.

LXI H,C060 ; dizinin başlangıç adresini H-L çiftine yüklüyoruz
MVI B,00 ; B kaydedicisine 00 değerini atıyoruz.Toplam değerini bu kaydedici tutacak

dongu: ; toplama işlemini yaptığımız dongu her JNZ işleminden sonra bu etikete dallanacak
MOV A,M ; dizi elemanlarını akümülatöre yüklemeye yarayan kod
ADD B ; B kaydedicisi ile akümülatörü topluyoruz.
MOV B,A ; yeni toplam değerini B kaydedicisine kopyalıyoruz.
INX H ; bir sonraki dizi elemanını almak için H-L çiftini arttırıyoruz.
MOV A,L ; daha sonra kontrol için L kaydedicisindeki değeri akümülatöre alıyoruz.
CPI 6A ; akümülatör ile 6A verisini kıyaslıyoruz.sıfıra eşit değilse başa donuyoruz
JNZ dongu

MOV A,B ; B kaydedicisndeki değeri akümülatöre alıyoruz.
STA C070 ; STA komutu ile C070 adresine kaydediyoruz
HLT ; programı sonlandırıyoruz.

Progamımız kısaca döngü içinde ilerleyip dizideki bütün elemanları toplayıp sonucu C070 adresine yazıyor.Sonuçlar aşağıdaki gibidir.



Yazdığımız assembly kodlarının opcodeları aşağıdaki gibidir.

C000

 

LXI H,C060

21

3

3

10

 

C001

   

60

     
 

C002

   

C0

     

C003

 

MVI B,00

06

2

2

7

 

C004

   

00

     

C005

DONGU

MOV A,M

7E

1

2

7

C006

 

ADD B

80

1

1

4

C007

 

MOV B,A

47

1

1

4

C008

 

INX H

23

1

1

6

C009

 

MOV A,L

7D

1

1

4

C00A

 

CPI 6A

FE

2

2

7

 

C00B

   

6A

     

C00C

 

JNZ DONGU

C2

3

3

10

 

C00D

   

05

     
 

C00E

   

C0

     

C00F

 

MOV A,B

78

1

1

4

C010

 

STA C070

32

3

4

13

 

C011

   

70

     
 

C012

   

C0

     

C013

 

HLT

76

1

2

7

 

 

8085 assembly dilinde toplama işlemine dair anlatacaklarım bunalardan ibaret. Umarım zevkle okuyacağınız bir makale olmuştur.Bir sonraki makalemde görüşmek dileğiyle ...

Batuhan Düzgün

Sakarya Üniversitesi

Bilgisayar Mühendisliği

 

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

8085 Assembly Dili

Comments

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.

Batuhan Düzgün

Sakarya Üniversitesi 

Bilgisayar Mühendisi

Endüstri Mühendisi

Yeditepe Üniversitesi

Bilgisayar Mühendisliği Yüksek Lisans 

 sahibinden.com

   Kıdemli Uzman Yazılım Mühendisi  

E-Mail 

   batuhan.duzgun@sahibinden.com

   batuhan.duzgun@windowslive.com

  github.com/batux

 

Sayfalar

Calendar

<<  September 2018  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Yazıları geniş takvimde göster