MTM 305 MĠKROĠġLEMCĠLER



Benzer belgeler
MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MİKROİŞLEMCİLER

MTM 305 MĠKROĠġLEMCĠLER

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER

Assembly Language Programming

MTM 305 MİKROİŞLEMCİLER

Programlama Dillerinde Kullanılan Veri Tipleri

Öğr. Gör. Kürşat Mustafa KARAOĞLAN Güz

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

B.Ç. / E.B. MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

PIC16F877A nın Genel Özellikleri

PROGRAMLAMAYA GİRİŞ DERS 2

MTM 305 MĠKROĠġLEMCĠLER

Mikroişlemciler. Öğr. Gör. Kürşat Mustafa KARAOĞLAN Güz

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

4. Bölüm Programlamaya Giriş

Özyineleme (Recursion)

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

8086 Mikroişlemcisi Komut Seti

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

Algoritma ve Akış Diyagramları

Internet Programming II

Diziler İndisli Değişkenler

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Pascal Programlama Dili

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

Fortran komut satırı toplam 80 kolon ve 5 bölgeden oluģur. Komut satırının yapısı aģağıdaki gibidir:

Lambda İfadeleri (Lambda Expressions)

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

PASCAL PROGRAMLAMA DİLİ YAPISI

Linux Assembly Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

NETCAD 6 GIS KURULUMU (2012)

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

PIC ASSEMBLY VE MAKROLAR

Program AkıĢ Kontrol Yapıları

HSancak Nesne Tabanlı Programlama I Ders Notları

Basamaklı Stil Şablonları (CSS) BIM206 Web Programlama

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

C# Metotlar ve Metot Tanımlama

2. Bölüm Programlama Bilgisi

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

8. İŞARETCİLER (POINTERS)

2.2- DEĞİŞKENLER VE SABİTLER ÇALIŞMA YAPRAĞI

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

kiģilerle iletiģimlerini sağlamak amacıyla oluģturdukları, gönderdikleri veya sakladıkları belirli bir standart ve içeriği olan belgelerdir.

Bölüm 9. Altprogramlar ISBN

BM-311 Bilgisayar Mimarisi

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Elbistan MYO Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ

İşletim Sistemlerine Giriş

Üst Düzey Programlama

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Hafta 1 Programlamaya Giriş

Göstericiler (Pointers)

İŞLEMCİ DURUM KAYDEDİCİSİ (PROCESSOR STATUS REGISTER)

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-1 Temel Kavramlar ve Algoritma

Mikrobilgisayar Sistemleri ve Assembler

7- Turbo Pascal Programlamada Alt Programlar (Procedure)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

1.1. Yazılım Geliştirme Süreci

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

9 Ekim Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Cari II

HSancak Nesne Tabanlı Programlama I Ders Notları

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

Genel Programlama I

Proje #2 - Lojik Devre Benzetimi

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

Sunum İçeriği. Programlamaya Giriş

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

HSancak Nesne Tabanlı Programlama I Ders Notları

BİLGİSAYAR PROGRAMLAMA

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

SÜLEYMAN DEMĠREL ÜNĠVERSĠTESĠ MÜHENDĠSLĠK FAKÜLTESĠ ELEKTRONĠK VE HABERLEġME MÜHENDĠSLĠĞĠ BÖLÜMÜ

Yazılım Mühendisliğine Giriş 2018 GÜZ

Algoritma ve Akış Diyagramları

Bilgisayar ve Programlama

WebInstaller. 1. Kurulum Đçin Gereksinimler

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI KESMELİ GİRİŞ/ÇIKIŞ

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Transkript:

KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ

Assembly Dili

Assembly programlama dili, kullanılan bilgisayar sisteminin yapısına ve iģletim sistemi gibi platformlara sıkı-sıkıya bağımlı bir dildir. Assembly programlama dili düģük seviyeli bir dil olup C, C++, Pascal, C# gibi yüksek seviyeli programlama dillerine göre anlaģılması biraz daha zordur. Assembly dili ile program yazarken kullanılan bilgisayarın donanımsal özelliklerinin bilinmesi gerekir. Yazılan program kullanılan mikroiģlemcinin yapısına bağlıdır. Assembly dili ile program yazarken programcı doğrudan bilgisayarın iģlemcisi ve hafızası ile uğraģır. Anabellekteki (RAM deki ) ve iģlemci kaydedicilerindeki değerleri doğrudan değiģtirebilme imkanı vardır.

MikroiĢlemci sadece ikili sayı sisteminde yazılan komut kodlarını, baģka bir ifade ile makine dilinden anlar. Assembly dilinde yazılan programları makine diline çevirmek için Assembler adı verilen çevirici(derleyici) programlar kullanılır. AĢağıda verilen Ģekilde Assembly dili, Makine dili ve Assembler blok olarak görülmektedir.

Bilgisayarımızda çalıģtırılan tüm programlar önce bilgisayarımızın RAM belleğ ine yüklenir. Daha sonra RAM bellekten sırası ile mikroiģlemci tarafından okunarak çalıģtırılır. RAM e yüklenen veri programın makine dili karģılığından baģka bir Ģey değildir. Yani 0 ve 1 kümeleridir. Makine dilinde program yazmak oldukça zordur. Buna karģılık makine dili ile birebir karģılığı olan ve komutları kısaltılmıģ kelimelerden (mnemonik) oluģan Assembly dilinden yararlanılır. Assembly dilinde program yazmak makine dilinde program yazmaya göre daha hızlı ve daha kolay yapılabilir. Ayrıca yazılan programların bellekte kapladıkları yerde aynıdır. BaĢka bir ifade ile bellek kullanımları aynıdır. Yüksek seviyeli dillerle karģılaģtırıldığında assembly dilinde yazılan programlar daha hızlıdır ve bellekte daha az yer kaplar. Buna karģılık program yazmak yüksek seviyeli dillerde daha kolaydır. Assembly programlama dili günümüzde daha çok sistem programcıları tarafından diğer programlama dilleri içerisinde kullanılmaktadır.

Assembly dilinin dezavantajları Assembly dilinde program yazmak için mikroiģlemci içyapısı bilinmesi gerekir. Assembly dili mikroiģlemci tipine göre değiģir. Bir mikroiģlemci için yazılan bir program baģka bir mikroiģlemcide çalıģmayabilir. Program taģınabilir platformdan bağımsız değildir. Assembly dilinde program yazmak yüksek seviyeli dillere göre daha zor ve zaman alıcıdır.

Assembly dilinin avantajları 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. virüslerin yazımında kullanılırlar. Yazılan programlar daha hızlı çalıģır. Çok hızlı çalıģtıkları için iģletim sistemlerinde kernel 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.

Assembly dilinde program yazma Assembly dilinde program yazmak için Windows altında yer alan note pad, word pad gibi herhangi bir text editör kullanılabilir. Text editör yardımı ile Assembly dilinde program yazılır. Yazılan program TASM veya MASM assembler çevirici programları yardımı ile.obj uzantılı olarak makine diline çevrilir. Bu halde elde edilen program iģletim sisteminin anladıgı bir formatta değildir. TLINK bağlayıcı programı kullanılarak.exe veya.com uzantılı hale dönüģtürülür. Bu haldeki program iģletim sistemi üzerinde ismi yazılarak DOS ortamında çalıģtırılabilir.

Bir Assembly dilinde yazılan programda temel olarak şu bölümler bulunur: Yorumlar Label (Etiketler) Talimatlar Komutlar

Yorumlar / Açıklamalar Açıklamalar program satırlarının baģına noktalı virgül konularak yapılır. Açıklama satırları assembler tarafından dikkate alınmaz. Program içinde daha detaylı bilgi vermek, kullanılan komutları izah etmek için kullanılır. örnek: ; MOV ES,AX bu komut dikkat alınmaz ; AL ye SAYI1 değerini at

Etiketler Etiketler program içinde kullanılan özel kelimelerdir. Sonuna : konularak kelimenin etiket olduğu anlaģılır. Etiketlerden program akıģını belirli bir noktaya yönlendirmek istediğimizde yararlanırız. Örnek: Son: Basla: JMP ANA Burada Son, Basla kelimeleri etikettir.

Talimatlar Veri tanımlama talimatları Veri tanımlama talimatları DB, DW, DD,DF, DQ, DT ve DUP dur. DB (Define Byte): 1 Byte lık veri tanımlanır. DW (Define Word):2 Byte lık veri tanımlanır. DD (Define double word):: 4 Byte lık veri tanımlanır. DF (Define Far Word): 6 Byte lık veri tanımlanır. DQ (Define Quad Word): 8 Byte lık veri tanımlanır. DT (Define Ten Byte): 10 Byte lık veri tanımlanır. DUP: Duplicate SAYI 3 DUP(0); Bellekten SAYI değiģkeni için 3 byte lık yer ayır, içini 0 ile doldur. SAYI DW 10 DUP(5) Bellekten SAYI değiģkeni için 10x2 byte lık yer ayır, içlerini 5 ile doldur.

String verileri tanımlama YAZI DB KARABUK YAZI DB K, A, R, A, B, U, K Dizi Tanımlama DIZI DB 2, 4, 0, -5, 7 DIZI DB 12, 0FH, 01001001B Sayıların sonunda B olması verinin ikilik sistemde olduğunu, H olması verinin hexadesimal olduğunu gösterir. Bir Ģey yazılmamıģsa veri onluk sistemde yazılmıģ anlamına gelir.

Segment Talimatları Segment talimatları bir segmentin baģlangıcını tanımlamada kullanılır. Segmente hehangi bir isim verebilirsiniz. SegmentAdı. SegmentAdı SEGMENT ParametreListesi ENDS Ver tanımları ve Komutlar

Parametre listesi sırası ile ALIGN, COMBINE, CLASS parametrelerini alabilir. Bu parametrelerin kullanımı seçimliktir. Bu parametreler aģağıda verilen segment tanımlamasında olduğu gibi kullanılmasa da olur. VeriSegment. VeriSegment SEGMENT Ver tanımları ve Komutlar ENDS

Parametre listesi verildiğinde aģağıdaki gibi bir tanımlama yapılabilir. Bu tanımlamada para ALIGN parametresini, public COMBINE parametresini ve Data CLASS parametresini ifade eder. VeriSegment. VeriSegment SEGMENT para public Data ENDS Ver tanımları ve Komutlar

Para: Bu alan segmentin paragraf baģlarında (sonu 0 ile biten adreslerden) baģlayarak yerleģeceğini ifade eder. Bu parametre belirtilmediğinde varsayılan değer para olarak belirlenir. Combine Alanı: Bu alan assembler tarafından aynı adla meydana getirilen amaç programların segmentlerinin birbirleriyle nasıl bir bağ kuracağını ifade eder. Common, public, stack, memory ve at değerlerini alabilir. Class Alanı: Segmentin hangi amaçla kullanılacağını ifade eder. Stack, Code ya da Data olabilir. Örnekler : KodSeg DataSeg StakSeg SEGMENT para public Code SEGMENT para public Data SEGMENT para Stack Stack

PROC talimatı Assembly dilinde procedure(alt program) tanımlamak için kullanılır. Altprogram aģağıda verildiği gibi tanımlanır. Far veya Near parametresi Bu alt programın aynı veya farklı segmentlerden çağrılıp çağrılamayacağını belirtir. Far olursa farklı segmentlerden, Near olursa aynı segmentten çağrılabilr. CALL AltprogAdi Ģeklinde çağrılarak altprogramlar kullanılır. AltprogAdi. AltprogAdi PROC Far/Near ENDP Komutlar

Beni dinlediğiniz için teģekkür ederim.