• Anasayfa
  • Hakkımızda
  • Etkinlikler
  • Destek Verin
  • Site Haritası
  • Giriş Yap
  • Üye Ol
  • Facebook
  • Twitter
  • RSS
Yazılım Dilleri
  • Soru - Cevap
  • EĞİTİM SETİ
  • KATEGORİ
  • DUYURU
  • TEKNOLOJİ HABERLERİ

Son Sorular

  • 23.04.2016 00:55:33C programlama 2 oyun
  • 20.04.2016 16:34:41Local Database
  • 15.04.2016 14:26:15Fatura kayıt işlemi
  • 21.03.2016 01:55:30C# problem

Popüler Sorular

  • 27.05.2012 05:49:50Asp.Net ile Date time alana veri ekleyemiiyorum ?
  • 2.04.2012 00:45:18.exe uzantılı dosya için dijital imza nerde nasıl alınır.
  • 12.05.2012 08:44:49Acil Yardım
  • 27.05.2012 13:46:51veri tabanı bağlantısı
  • .Net Framework
  • 8085 Assembly
  • Active Directory
  • ADO.NET
  • Android
  • Apple IOS
  • Arduino
  • ASP.NET
  • ASP.NET MVC
  • Blackberry
  • C#.Net
  • C++
  • CCG Framework
  • CISCO
  • CSS
  • Diğer
  • Dreamweaver
  • Entity Framework
  • Exchange Server
  • Gömülü Sistemler
  • GSM Programlama
  • Güncel
  • Güvenlik
  • HTML5
  • Java
  • Javascript / JQuery
  • Jira
  • Kariyer ve İş Yaşamı
  • LINQ
  • LibreOffice
  • Linux
  • Matlab
  • Microsoft Dynamics CRM
  • Mobil Uygulama Geliştirme
  • MySQL
  • NoSQL
  • Oracle
  • OWIN
  • PFSense
  • PHP
  • Powershell
  • Python
  • Sanallastirma
  • SAP-ABAP
  • SCOM 2012
  • SEO
  • Sharepoint 2010
  • Sharepoint 2013
  • Silverlight
  • Sistem Analiz ve Tasarımı
  • SQL Server
  • Symantec
  • TFS
  • T-SQL
  • Ubuntu
  • VB.NET
  • Veritabanı Yönetim Sistemleri
  • Visual Studio
  • VMware
  • WCF
  • Web Hosting
  • Windows 8
  • Windows Azure
  • Windows Phone 7.1
  • Windows Phone 8
  • Windows Server
  • Wordpress
  • WPF
  • Xamarin
  • XNA
  • Yazılım Mühendisliği
  • Yöneylem Araştırması
  • ASP.NET MVC
  • Entity Framework
  • Javascript / JQuery
  • LINQ
  • PHP

Son Duyurular

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

IPhone 6 ve IPhone 6 Plus Teknik Özellikleri ve Fiyatı

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

DELL'in Yeni Projesi: USB Bilgisayar (Project Ophelia)

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Windows Phone Youtube Uygulaması Google ve Microsoft ile Yeniden Yapılıyor

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Android ve Apple IOS Telefonlar için Blackberry Messenger (BBM)

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

Nokia Lumia 925 Teknik Özellikleri, Lumia 928 ve 920 ile Karşılaştırması

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

LG Optimus G Pro Özellikleri ve Gözle Video Oynatma Teknolojisi

8085 Assembly ile Dizi İçinde Veri Arama İşlemi

Evet arkadaşlar, 8085 Assembly Programlama dili ile dizi içinde aranan elemanı bulacak bir program hazırlanacaktır. Bu sefer bir dizideki elemanlardan içinde 5 değeri varsa belli bir bellek adresine

29.06.2012

Yazar: Batuhan Düzgün (Google+)

Kategori: 8085 Assembly

4032

Evet arkadaşlar,  8085 Assembly Programlama dili ile dizi içinde aranan elemanı bulacak bir program hazırlanacaktır. Bu sefer bir dizideki elemanlardan içinde 5 değeri varsa belli bir bellek adresine 01 yazan,yoksa  00 yazan programı yapmaya çalışacağız.Her zamanki gibi bu işin algoritmasını çıkaralım.Programımız belli bir bellek adresinden başlayıp,sırayla diziyi tarayacak,eğer ki 05 değerini bulursak, 01 yazıp programdan direkt çıkacağız.Eğer 05 değerini bulamazsak 00 yazıp programı sonlandıracağız.Algoritmamızın akış diyagramı aşağıdaki gibidir.

Evet problemimizi çözdüğümüze göre kodları yazmaya başlayabiliriz.Öncelikle simülatörü açıp aşağıda açıklamalarıyla birlikte verdiğim 8085 Assembly kodunu yazınız.

 

LXI H,C060  ;; dizinin bellekte yer alan başlangı. adresini yüklüyoruz.

MVI E,05 ;arayacağımız sayıyı E kaydedicisine saklıyoruz.

MVI D,00 ;D kaydedicisi ise eğer 05 değerini bulursak 1 veya 0 bilgisi tutacak

 

dongu:

MOV A,M ;sırayla dizideki elemanları kuracağımz döngüyle alıyoruz

CMP E ; Akümülatör ile E kaydedicisini karşılaştırıyoruz.

JNZ sifiryukle ;Eğer karşılaştırma işlemi sonucunda sıfır bayrağı çekilirse veri 05 değildir.o Halde sıfır bilgisini D kaydedicisine yüklemek gerekli.

JZ biryukle ; Sıfır bayrağı çekilmişse 05 verisidir o halde D kaydedicisine 1 bilgisini yüklemek lazım 

 

sifiryukle: ; bu kısım sıfır yüklemeye yarayan modül

MVI D,00 ;D kaydedicisine sıfır yükledik.

JMP kontrol ; bu aşamadan sonra kontrol sekmesine sıçrayıp,dizi sınırını geçip geçmediğimize bakıyoruz.

 

biryukle: ; bu modül ise D kaydedicisine 1 yüklemeye yarıyor.

MVI D,01 ;D 'ye 1 yüklüyoruz.

JMP cikis ; Eğer D kaydedicisi 1 bilgisini yüklediyse demekki 05 'i bulduk,döngüden çıkmalıyız.

 

kontrol: ;bu kısımda ise dizi sınırı geçilip geçilmediğini kontrol ediyoruz.

INX H ;dizinin indisi bir arttırıyoruz.

MOV A,L ;H-L çiftinin düşük kısmını tutan L kaydedisini akümülatöre alıyoruz.

CPI 6A ; dizi sınırını kontrol ediyoruz.

JNZ dongu ;eğer sıfır bayrağı bir değilse döngüye devam etmeliyiz.

 

MOV A,D ;sıfır bilgisi varsa bu kısım çalışacaktır.

STA C070 ;ve D kaydedicisindeki veriyi C070 adresine yazıyoruz.

JMP son ; bu aşamadan sonra son etiketine gidiyoruz.

 

cikis: ; bu etiket ise bir bilgisini kaydedip programı sonlandırmaya yarar.

MOV A,D

STA C070

 

son:

HLT ; programın bittiği yerdir.

 

Kodlarımızın açıklaması mevcuttur.Biraz daha kabaca ne yaptığından bahsetmekte fayda var diye düşünüyorum.İlk kısımdaki kod parçasında LXI ile dizinin başlangıç adresi verilir.Daha sonra eğer dizi içerisinde 05 değeri var ise  C070 adresine 01 değeri,yoksa 00yazacaktır.MOV A,M ile dizinin H-L çiftinin gösterdiği bellek gözündeki değeri akümülatöre alıyoruz.Ardından E kaydedicisindeki 05 değeriyle karşılaştırıyoruz.Eğer bu işlem sonucunda sıfır bayrağı çekilirse demekki akümülatördeki değer ile E kaydedicisi içindeki değer eşit.Çünkü bilgisayar iki değeri karşılaştırmak için çıkarma işlemi yapar.Sıfır bayrağı bir olmuşsa,"biryukle" adlı etikete sıçrayacağız.Burada Dkaydedicisine 01 değerini yazıp "cikis" adlı etikete dallanma yapacağız."cikis" etiketinde ise MOV A,D  ile D kaydedicisindeki değeri akümülatöre yüklüyoruz.Ardından STAkomutu ile C070 adresine yazıyoruz.Eğer,sıfır bayrağı bir değilse "sifiryukle" etiketine dallanıyoruz.Bu modülde ise D kaydedicisine 00 değerini yüklüyoruz.Ardından "kontrol"adlı etikete dallanıyoruz.Bu kısımda ise dizi sınırını geçip geçmediğimizi kontrol ediyoruz.

 Yukarıdaki resimde belleğin durumu gözükmektedir.C000 adresinden başlayıp,C02Badresine kadar süren alanda 8085 ile yazdığımız kodların opcode hali saklıdır.

C060 adresinden C06A adresine kadar olan bölgede elle girdiğimiz dizinin elemanları yer almaktadır.

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

√

C000

 

LXI H,C060

21

3

3

10

 

C001

 

 

60

 

 

 

 

C002

 

 

C0

 

 

 

√

C003

 

MVI E,05

1E

2

2

7

 

C004

 

 

05

 

 

 

√

C005

 

MVI D,00

16

2

2

7

 

C006

 

 

00

 

 

 

√

C007

DONGU

MOV A,M

7E

1

2

7

√

C008

 

CMP E

BB

1

1

4

√

C009

 

JNZ SİFİRYUKLE

C2

3

3

10

 

C00A

 

 

0F

 

 

 

 

C00B

 

 

C0

 

 

 

√

C00C

 

JZ BİRYUKLE

CA

3

3

10

 

C00D

 

 

14

 

 

 

 

C00E

 

 

C0

 

 

 

√

C00F

SİFİRYUKLE

MVI D,00

16

2

2

7

 

C010

 

 

00

 

 

 

√

C011

 

JMP KONTROL

C3

3

3

10

 

C012

 

 

19

 

 

 

 

C013

 

 

C0

 

 

 

√

C014

BİRYUKLE

MVI D,01

16

2

2

7

 

C015

 

 

01

 

 

 

√

C016

 

JMP CİKİS

C3

3

3

10

 

C017

 

 

27

 

 

 

 

C018

 

 

C0

 

 

 

√

C019

KONTROL

INX H

23

1

1

6

√

C01A

 

MOV A,L

7D

1

1

4

√

C01B

 

CPI 0A

FE

2

2

7

 

C01C

 

 

0A

 

 

 

√

C01D

 

JNZ DONGU

C2

3

3

10

 

C01E

 

 

07

 

 

 

 

C01F

 

 

C0

 

 

 

√

C020

 

MOV A,D

7A

1

1

4

√

C021

 

STA C070

32

3

4

13

 

C022

 

 

70

 

 

 

 

C023

 

 

C0

 

 

 

√

C024

 

JMP SON

C3

3

3

10

 

C025

 

 

2B

 

 

 

 

C026

 

 

C0

 

 

 

√

C027

CİKİS

MOV A,D

7A

1

1

4

√

C028

 

STA C070

32

3

4

13

 

C029

 

 

70

 

 

 

 

C02A

 

 

C0

 

 

 

√

C02B

SON

HLT

76

1

2

7

Evet bir makalemin daha sonuna gelmiş bulunmaktayım.Umarım zevk alarak okuyacağınız bir makale olmuştur.Bir sonraki makalemde görüşmek dileğiyle ...

Batuhan Düzgün

Bilgisayar Mühendisi

Endüstri Mühendisi

Yazar Hakkında

Batuhan Düzgün

Batuhan Düzgün

www.batuhanduzgun.net

1988 Akhisar doğumludur. Sakarya Üniversitesi Bilgisayar Mühendisliği ve Endüstri Mühendisliği bölümlerinden 2011 yılında mezun olmuştur. Eskisehir OsmanGazi Universitesi'nde Endustri Muhendisligi Tezli Yuksek Lisansi programinda ogrenim yasantisina devam etmektedir. 1 senedir aktif çalışma hayatı içindedir. Mobil Teknolojiler, GSM Ağları, Bilgisayar Ağları, TCP/IP, Ethernet, HTTP, SMPP protokolleri, .NET ile yazılım geliştirme, veritabanı yönetim sistemleri ve Java gibi bir çok konuda çalışma ve proje gerçekleştirmiştir. Son zamanlarda özellikle Kurumsal Java konusuna çalışmaktadır.

Sosyal Medya

ORANLAR

  • 4032izleme

Arkadaşlarınla Paylaş

  • Tweet

0 Yorum

Yorum Yaz / Soru Sor

Lütfen yorum yazmak veya soru sormak için üye girişi yapınız.

Son Yorumlar

  • Hocam Link başka sayfaya yönlendiriyor.
  • merhaba benim merak ettiğim bir konu var y...
  • Merhaba download linki çalışmıyor. Rica et...
  • Nevzat Bey selamlar, Açıkçası bizler a...
  • Parametreleri Cache İşleminden Yalıtma kon...

En Güncel Sorular

  • Bilgilendirme maili (C#.Net)
  • Power Pivot (Sharepoint 2010)
  • BigInteger, BigDecimal (Asp.Net ve Asp.Net MVC)
  • visual C# ile asp nette veritabanı islemleri (Asp.Net ve Asp.Net MVC)
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ? (Sharepoint 2010)

En Son Cevap Verilen Sorular

  • Bilgilendirme maili
  • BigInteger, BigDecimal
  • visual C# ile asp nette veritabanı islemleri
  • Share Point ile Dosya Arşiv Yönetim Sistemi yapılabilir mi ?
  • txt dosyasına veri yazma

Twitter

Takip et: @yazilim_dilleri

En Çok Okunanlar

Elif BAYRAKDAR

C# ile SQL Server Bağlantısı, Insert, Update ve Delete Sorguları

23.05.2013

  • 120152
  • 0
Hakan Keskin

C# ile Windows Service Projesi Oluşturma, Debug Etme ve Setup Hazırlama

17.12.2013

  • 65269
  • 0
batuhan avlayan

Php - Mail Gönderme (İletişim Formu)

02.09.2013

  • 48392
  • 0

Sponsorlar

KODLAB
Pluralsight
Exchange server is
Office 365
YAZILIM DİLLERİ
Yukarı Çık
  • Hakkımızda
  • Facebook
  • Twitter
  • RSS

© Yazılım Dillerinin Buluşma Noktası | Kaynak belirtildiği sürece makaleler kopyalanabilir.
YazilimDilleri.Net sitesinde yer alan kullanıcıların oluşturduğu tüm içeriklerin yayınlanması ile ilgili yasal yükümlülükler içeriği oluşturan kullanıcıya aittir, YazilimDilleri.Net hiçbir şekilde sorumlu değildir.

Kapat

Giriş Yap

Kullanıcı Adı

Şifre

Şifremi Unuttum

KULLANICI GİRİŞİ