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

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

MTM 305 MĠKROĠġLEMCĠLER

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

MTM 305 MĠKROĠġLEMCĠLER

BIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

MTM 305 MĠKROĠġLEMCĠLER

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

MTM 305 MĠKROĠġLEMCĠLER

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI İKİLİ TABANDA ÇOK BAYTLI ÇARPMA

MTM 305 MĠKROĠġLEMCĠLER

8086 Mikroişlemcisi Komut Seti

MTM 305 MĠKROĠġLEMCĠLER

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

İ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Ş

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Aritmetiksel Komutlar

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

Debug Komutları C:\>DEBUG - Çizgi işareti artık debug programının komut kabul etmeye hazır olduğunu belirtmektedir.

Araş. Gör. Abdulkerim ŞENOĞLU Araş. Gör. Mehmet AYAN Araş. Gör İbrahim Kök. BM 310 Mikroişlemciler Dersi Laboratuvarı (LAB2)

Bahar Dönemi BIL382 Mikroişlemcili Sistem Lab. Vize Sınavı,

DENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

(5 soru seçerek cevaplandırınız. Seçilen soru numaralarını yukarıdaki çizelgede işaretleyiniz) Sınav süresi 100 dakikadır. Başarılar dileriz.

Bölüm 4 Veri Aktarma Komutları

İ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Ü

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

Mikrobilgisayar Donanımı

Bilg.Mimarisi-I 4.HAFTA VERI AKTARIMI VE ISLEME. Bilgisayar buyrukları 3 kategoride sınıflandırılabilir.

Kütük Yönetimi. Kütük Yönetim Sisteminin İşlevleri. Hacettepe Üniversitesi Kavramsal Kütük Modeli.

b) Aritmetik İşlem Komutları

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

Assembly Language Programming

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

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

Şekil. 64 Kelimelik Yığıtın Blok Şeması

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

Bileenler arasndaki iletiim ise iletiim yollar ad verilen kanallar yardm ile gerçekleir: 1 Veri Yollar 2 Adres Yollar 3 Kontrol Yollar

Basit Bootstrap Uygulaması

Çok sayıda adım motoru tasarımı olmasına rağmen, bu motorlar iki değişik temel tür altında toplanabilir: değişken relüktanslı veya hibrid yapılı.

DENEY II RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

6. Mikroişlemcili Geliştirme Sistemleri

BM-311 Bilgisayar Mimarisi

Bildiğiniz gibi programları oluşturan kodlar ve veriler hafızaya yüklendikten sonra işlemci tarafından satırsatır icra edilirler.

Ayhan Yüksel. (Son güncelleme: Berat Doğan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları ( )

K uark projesi. Temel Özellikler :

SAUEEE.ORG. Önce C 00 Sonrası C 00

Mikrobilgisayar Mimarisi ve Programlama

Assembly Programlama Dili T e m m u z

HSancak Nesne Tabanlı Programlama I Ders Notları

16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

ALGORİTMA VE PROGRAMLAMA II

ÖNEMLİ AÇIKLAMA: Bu derslerdeki sunumların kısa bir özetini göstermek için hazırlanmıştır. Burada türkçeleştirilmemiş olan kısımlar sorulmayacak

ALGORİTMA VE PROGRAMLAMA I

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

İşletim Sistemlerine Giriş

JZ TEST3 (7/3) 1 makine çevrimi süresi

Özyineleme (Recursion)

8. İŞARETCİLER (POINTERS)

NESNEYE YÖNELİK PROGRAMLAMA

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

ALGORİTMA VE PROGRAMLAMA I

Assembly. Programlama Dili. T e m m u z

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM-311 Bilgisayar Mimarisi

CPU TURKEY CPU-KULIS MİKROİŞLEMCİSİ ÇALIŞMA RAPORU

Bölüm 10. Altprogramları Uygulamak

Pointer Kavramı. Veri Yapıları

INTEL İŞLEMCİLERİNDE CSD İŞLETİM SİSTEMİNİN BAŞLATILMASI. Selim Nasır

Linux Assembly Programlamaya Giriş

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0



İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUVARI OLAYLARI ZAMANLAMA

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

LCD (Liquid Crystal Display)

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Bölüm 9. Altprogramlar ISBN

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

1.BÖLÜM 1.SAYI SİSTEMLERİ

Komut Seti Mimarisi (ISA)

1 NEDEN SEMBOLİK MAKİNA DİLİ ÖĞRENİLMELİDİR? MİKROİŞLEMCİLERİN ÇALIŞMA BİÇİMLERİ TİPİK BİR RAM İN YAPISI

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

Alt Programlar (Procedure) Büyük programları tek bir kod bloğu şeklinde tanımlamak, programın gerçekleştirimi ve bakımı açısından sorunludur. Alt programlar kullanılarak bu sorunun üstesinden gelinebilir. Programların işleyişi bir ana alt programla başlar, daha sonra ana alt Programdan çağrılan alt programlar kendisine tanımlanmış işlemleri yapıp, çağrıldıkları yere geri dönerler.

CALL Komutu CALL komutu, JMP komutu gibi programın sıradüzensel akışını değiştirerek, komuta parametre olarak verilen bir alt programdan komut işletimine devam edilmesini sağlar. CALL komutu ile çağrılan alt program, tanımlanmış işleri bitirdikten sonra, ilk çağrıldığı adrese RET komutu ile geri döner. CALL komutu ile bir alt program çağrılırken dönüş adresi yığıta atılır.

Eğer CALL komutu ile çağrılan alt program, çağrının yapıldığı bölüt içinde tanımlanmışsa CALL NEAR çağrısı yapılır. Bu durumda dönüş adresi olarak yığıta IP yazmacı atılır. Eğer CALL komutu ile çağrılan alt program, başka bir bölüt içinde tanımlanmışsa, CALL FAR çağrısı yapılır. Bu durumda dönüş adresi olarak yığıta şu yazmaçlar atılır: CS yazmacı IP yazmacı

Tanımlama dene1 ve dene2 adlı iki alt program tanımı şu şekilde yapılır: dene1 proc far... call dene2... ret dene1 endp dene2 proc... ret dene2 endp

Örnek ORG 100H CALL M1 MOV AX, 2 RET ; işletim sistemine dön M1 PROC MOV BX, 5 RET ; çağrıldığı yere dön. M1 ENDP END

ORG 100h MOV AL, 1 MOV BL, 2 CALL m2 CALL m2 CALL m2 CALL m2 RET ;işletim sistemine dön m2 PROC MUL BL ; AX = AL * BL. RET ; return to caller. m2 ENDP END

Alt Programlara Değer Aktarma Alt Programlara Değer Aktarma Alt Programlara şu şekilde değer aktarılabilir: Yazmaçları kullanarak Alt Programlarca erişilebilir bellek alanları tanımlayarak Yığıta işlenecek veriyi atarak Yığıta işlenecek verinin adresini atarak

Yazmaç Kullanarak Değer Aktarma Alt Programda işlenecek veri bir yazmaca aktarılır ve Alt Program çağrılır. code segment mov ax, @data mov ds, ax mov dx, 011FFH call dene hlt dene proc xor dx, 0FFFFH mov ax, dx ret dene endp ends

Erişilebilir Bellek Alanları Tanımlayarak Değer Aktarma Veri bölütü içinde bir bellek alanı tanımlanıp, Alt Programda bu bellek alanı üzerinde işlem yapılabilir..data VAR1 DW? VAR2 DW?.CODE CALL DENE HLT DENE PROC MOV AX, VAR1 OR AX, VAR2 MOV VAR1, AX RET DENE ENDP

Yığıttan Değer Aktarma Alt Programa aktarılacak değerler yığıta atılır. Alt Program içinde yığıta atılan değerler okunup işlem yapılır. Çağırılan Alt Programın aynı bölüt içinde olup olmamasına göre yığıta atılan değerler değişir. Eğer aynı bölüt içinde çağrı yapılmışsa (CALL NEAR), dönüş adresi olarak yığıta sadece IP yazmacının içeriği atılır. Eğer bölüt dışında bir Alt Program çağrısı yapılmışsa (CALL FAR),dönüş adresi olarak yığıta CS ve IP yazmaçlarının içeriği atılır. CALL FAR veya NEAR olmasına göre yığıttan okuma yöntemi değişir.

CALL NEAR Çağrısı ile Yığıttan Değer Aktarma DATA SEGMENT VAL1 DW? ENDS CODE SEGMENT MOV AX, @DATA MOV DS, AX PUSH VAL1 CALL DENE HLT DENE PROC PUSH BP MOV BP, SP MOV AX, [BP+4] XOR AX, 1111H MOV [BP+4], AX POP BP RET DENE ENDP ENDS

CALL FAR Çağrısı ile Yığıttan Değer Aktarma CODE2 SEGMENT DATA SEGMENT DENE PROC FAR VAL1 DW? PUSH BP ENDS MOV BP, SP CODE SEGMENT MOV AX, [BP+4] MOV AX, @DATA XOR AX, 1111H MOV DS, AX MOV [BP+4], AX PUSH VAL1 POP BP CALL DENE RET HLT DENE ENDP ENDS ENDS

Yığıtta İşlenecek Verinin Adresini Göndererek Değer Aktarma.DATA COUNT DW 5 ARR DW 5 DUP(0).CODE PUSH OFFSET ARR PUSH COUNT

Yığıtta İşlenecek Verinin Adresini Göndererek Değer Aktarma ArrayFill alt programının, uzunluğu ve adresi verilen, 16-bitlik sayılardan oluşan bir diziye sıfır değeri ataması istenmektedir. Alt programı çağırsan kod kesiminde, dizinin adresi ve dizideki elemanların sayısı yığıta atılmakta ve Alt programa parametre olarak verilmektedir. Alt programın çağrıldığı yer:.data.code COUNT DB 100 ARRAY WORD 100 DUP(?) PUSH OFFSET ARRAY PUSH COUNT CALL ARRAYFILL

Yığıtta İşlenecek Verinin Adresini Göndererek Değer Aktarma Böylece ArrayFill alt programı, dizinin adını bilmeden, dizinin içini sıfır değeri doldurabilmektedir. CALL NEAR çağrısı yapıldığı varsayılarak alt program şu şekilde yazılabilir. ARRAYFILL PROC PUSH BP MOV BP,SP MOV SI,[BP+6] MOV CX,[BP+4] DONGU: MOV WORD PTR [SI], 0 ADD SI, 2 LOOP DONGU POP BP RET ENDP

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