Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR



Benzer belgeler
Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

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

8086 Mikroişlemcisi Komut Seti

MTM 305 MĠKROĠġLEMCĠLER

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

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

BM-311 Bilgisayar Mimarisi

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

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

Bölüm 4 Veri Aktarma Komutları

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MİKROİŞLEMCİLER

Mikrobilgisayar Mimarisi ve Programlama

ÖZET. Lojiksel ve Hiziksel Hafıza. x86 byte düzeni nın Fiziksel Hafıza Yapısı. Ders 3. Temeller

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MİKROİŞLEMCİLER

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

Mikrobilgisayar Donanımı

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

MTM 305 MĠKROĠġLEMCĠLER

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

BM-311 Bilgisayar Mimarisi

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

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MTM 305 MĠKROĠġLEMCĠLER

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

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

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

Aritmetiksel Komutlar

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

İ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

Ö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

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

Assembly Programlama Dili T e m m u z

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

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

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

8086 Mikroişlemcisi Komut Seti

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

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MTM 305 MĠKROĠġLEMCĠLER

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

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

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

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

80x86 MICROPROCESSOR Instructions

80X86 SEMBOLİK MAKİNA DİLİ

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

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

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

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

Assembly. Programlama Dili. T e m m u z

Embedded(Gömülü)Sistem Nedir?

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

Komut Seti Mimarisi (ISA)

Komutların Yürütülmesi

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

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

MTM 305 MİKROİŞLEMCİLER

İşletim Sistemlerine Giriş

BÖLÜM in Bellek Organizasyonu

6. Mikroişlemcili Geliştirme Sistemleri

b) Aritmetik İşlem Komutları

BM-311 Bilgisayar Mimarisi

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

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

Mikrobilgisayar Mimarisi ve Programlama

K uark projesi. Temel Özellikler :

MTM 305 MİKROİŞLEMCİLER

BM-311 Bilgisayar Mimarisi

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

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

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

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

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

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

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

T.C. MİLLÎ EĞİTİM BAKANLIĞI UÇAK BAKIM MİKROİŞLEMCİLER 523EO0014

Göstericiler (Pointers)

CISC Complex Instruction Set Computers

Assembly Language Programming

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Mikrobilgisayar Sistemleri ve Assembler

Çalışma Açısından Bilgisayarlar

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

BBM 341 Sistem Programlama

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

PC Donanım Birimleri. Öğr. Gör. Dr. Şirin Karadeniz. Anakart (Mother Board)

MİKROİŞLEMCİ MİMARİLERİ

MTM 305 MİKROİŞLEMCİLER

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

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

Mikroçita. Mikroçita Rapor 2:

Basit Bootstrap Uygulaması

Transkript:

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR GÖMÜLÜ PROGRAMLAMA Selçuk Üniversitesi Bilgisayar Mühendisliği Bölümü 2012-2013 Bahar Dönemi Doç.Dr.Erkan ÜLKER 1

İçerik 1. Adresleme Modları 2. İskelet Program 3. Temel Komutlar 2

Adresleme Modları X86 mikroişlemcilerde etkili yazılım geliştirme için, her komutun kullanmış olduğu adresleme modunu bilmek gerekir: Veri adresleme: kaydediciler arasında ve kaydedicilerle hafıza arasında yapılan 8-bit, 16-bit veya 32-bitlik veri aktarımı işlemlerinde MOV komutunun kullandığı adresleme yöntemidir. Program adresleme: Programa karar verme özelliği sağlayarak program akışını kontrol eden veya değiştiren CALL ve JMP komutlarının kullandığı adresleme yöntemidir. Yığın adresleme: PUSH ve POP gibi komutlarla hafızanın stack adı verilen alanında yapılan/başvurulan adresleme yöntemidir

Adresleme Modları Veri adresleme Modları: CPU nun operandlara erişim şekilleridir. 1. Kaydedici (Register Addressing) 2. İvedi (Immediate Addressing) 3. Doğrudan (Direct Memory/Offset/Indexed Addressing) 4. Dolaylı (Indirect Memory/register Addressing) 5. Saklayıcı [Taban ve indeks] Göreceli (Based/Indexed Relative Addressing) 6. Taban indisli [ve yayılımlı] (Base-plus- Index Addressing and Base-Index with Displacement Addressing) Veri aktarım yönü Program adresleme Modları JMP ve CALL komutlarıyla kullanılmaktadır 1. Program Göreceli 2. Doğrudan (Direct) 3. Dolaylı (indirect) Yığın adresleme Modları 1. Son Giren İlk Çıkar - LIFO

Kaydedici adresleme (Register Addressing) - Kaynak ve Hedefin her ikisi de kaydedicidir. - Belleğe erişim yapılmadığı için çok hızlıdır. - Kaydediciler 8, 16, veya 32 bit olabilir. Ama karışık kullanılamaz (hedef büyüklüğü>=kaynak büyüklüğü). - Her iki taraf da Segment kaydedicisi verilemez. - CS kaydedicisi hedef olamaz (komut adresi CS:IP ikilisindedir) - MOV komutunun bütün kullanım şekillerinin burada verilmesi imkansızdır. Çünkü MOV komutunun sadece 8 bitlik kullanım örneklerinin sayısı 64 tür.

Örnek AL, BH Not:Bu ve peşi sıra gelen slide lardaki tablolar büyük oranda Alfa yayınları tarafından yayınlanan Haluk Gümüşkaya nın kitabından alıntıdır.

İvedi adresleme (Immediate Addressing) - Kaynak operand,türü Sabit olan bir ifade değeri içerir BYTE_VAL DB 150 WORD_VAL DW 300 DBWD_VAL DD 0 SUB BYTE_VAL, 50 MOV WORD_VAL, 40H MOV DBWD_VAL, 0 MOV AX, 0245H - İvedilik (immediate-ness) sağ operand daki değerlerden dolayıdır - Herhangi bir sabit, ilk operandın uzunluğundan daha büyük bir veri olamaz, ama daha küçük bir veri olabilir. - Segment kaydedicileri ve Bayrak kaydedicisi hariç tüm kaydediciler ilk operand (Hedef) olarak kullanılabilir.

Örnek!Ters bayt sıralaması

Doğrudan adresleme (Direct Memory Addressing) Doğrudan adreslemeli veri adresleme - Operandın biri, bir bellek bölgesini referans etmektedir - Diğer operand, bir kaydediciyi referans etmektedir - Referans edilen bellek bölgesi için varsayılan offset değeri DS kaydedicisindedir ADD BYTE_VAL, DL MOV BX, WORD_VAL AX ve AL kaydedicileri ile hafıza arasında yapılan aktarım komutları programlarda çok sık kullanıldıkları için, Intel bu komutları 3-byte uzunluğunda gerçekler. (Diğerleri >=4 byte)

Doğrudan adresleme (Direct Offset Addressing) Direk-ofset adresleme veya değişim/yayılım (displacement) adreslemesi olarak da bilinir. - Adres modifikasyonlarında aritmetik operatörler kullanılır BYTE_TBL DB 12, 15, 16, 22 WORD_TBL DB 163, 227, 485 DBWD_TBL DB 465, 563, 897 MOV CL, BYTE_TBL[2] ; 16 yı aktarır MOV CL, BYTE_TBL+2 ; aynı MOV CX, WORD_TBL[4] ; 485 i aktarır MOV CX, WORD_TBL+4 ; aynı MOV ECX, DBWD_TBL[8] ; 897 yi aktarır MOV ECX, DBWD_TBL+8 ; aynı

Doğrudan adresleme (Direct Offset Addressing) Komut operandından hemen sonra gelen bellekteki verinin adresi bir Sabittir Adres ise ofset adresidir. Ofset adresi köşeli parantez içine yerleştirilir Örnek: MOV DL,[2400] ; DS:2400H bellek bölgesindeki veriyi/içeriği DL kaydedicisine taşır Örnek: Aşağıdaki işlemin çalıştırılmasından sonra bellek bölgesinin fiziksel adresi hesaplanır ve o adresdeki veriye/içeriğe ulaşılır. (Örneğin DS=1512H gösteriyor olsun) MOV AL,99H MOV [3518],AL Fiziksel adres hesaplanır DS:3518 => 15120+3518=18638H 18638H adresindeki bellek bölgesi 99H değerini içerecektir

Örnek

Doğrudan adresleme (Direct Indexed Addressing) - DI ve SI kaydedicilerine ek olarak matris formunda ofset veya değişim/yayılım değeri (displacement) içerir. - Tablo elemanına ulaşmada kullanılır. Operanddaki yayılım değeri tablonun başlangıcını, indis kaydedicisi tablo içerisindeki bir elemanı gösterir. - Örnek DATATBL DB 365 DUP(?) LEA BX, DATATBL MOV BYTE PTR [BX+2],0 ;nerede? Diğer örnekler: ADD CL,[DI+12] SUB DATATBL[SI], 25 MOV DATATBL[DI], DL MOV DX, [EAX+4] ADD DATATBL[EDX], CL