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

Benzer belgeler
Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

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

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

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Bölüm 4 Veri Aktarma Komutları

BM-311 Bilgisayar Mimarisi

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

8086 Mikroişlemcisi Komut Seti

MTM 305 MĠKROĠġLEMCĠLER

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

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

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

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

MTM 305 MİKROİŞLEMCİLER

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

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

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

Linux Assembly Programlamaya Giriş

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

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

MTM 305 MĠKROĠġLEMCĠLER

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

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Mikrobilgisayar Donanımı

Assembly Programlama Dili T e m m u z

BM-311 Bilgisayar Mimarisi

80x86 MICROPROCESSOR Instructions

Komutların Yürütülmesi

İ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

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

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

MTM 305 MİKROİŞLEMCİLER

Assembly. Programlama Dili. T e m m u z

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

Aritmetiksel Komutlar

MTM 305 MĠKROĠġLEMCĠLER

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

Basit Bootstrap Uygulaması

MTM 305 MİKROİŞLEMCİLER

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

BM-311 Bilgisayar Mimarisi

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

PIC16F877A nın Genel Özellikleri

MTM 305 MĠKROĠġLEMCĠLER

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

MTM 305 MĠKROĠġLEMCĠLER

Komut Seti Mimarisi (ISA)

Mikrobilgisayar Mimarisi ve Programlama

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

BBM 341 Sistem Programlama

Mikrobilgisayar Mimarisi ve Programlama

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

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

Komut Seti Mimarisi (ISA)

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

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

İşletim Sistemlerine Giriş

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

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

K uark projesi. Temel Özellikler :

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

BÖLÜM 6 Seri Port Đşlemleri

PASCAL PROGRAMLAMA DİLİ YAPISI

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

Ö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

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

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

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

8086 Mikroişlemcisi Komut Seti

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

BİLGİSAYAR SİSTEMLERİ

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

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

Assembly Language Programming

DERS 11 PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI İÇERİK. Alt Program Çevrim Tabloları Program Sayıcı ( Program Counter PC )

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

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

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

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

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. Kütükler. Kütükler. Merkezi İşlem Biriminin İç Yapısı

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

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

MTM 305 MĠKROĠġLEMCĠLER

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

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

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

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

İşletim Sistemlerine Giriş

CISC Complex Instruction Set Computers

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Yığın MİKROİŞLEMCİ SİSTEMLERİ. Yığın. Örnek MİB için Yığın. Yığma İşlemi. Çekme İşlemi

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

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

AND Komutu. and hedef, kaynak

Transkript:

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

3 1 Veri Adresleme Modları MOV komutu veriyi bir bellek satırından diğer bellek satırına yada yazaca kopyalar Kaynak (source) verilin okunacağı belleğin veya yazacın adresidir. Hedef (destination) ise verinin yazılacağı belleğin veya yazacın adresidir. Komutlar konuşma diline yakın assembler dilinde yazılır. Derleyiciler makine diline dönüştürür. opcode, veya operation code adı verilen bu dil mikroişlemcinin anladığı binary formatındadır.

Figure 3 1 MOV komutunun taşıyacağı verinin kaynak ve hedefinin adreslerinin gösterimi.

Figure 3 2 8086 Core2 data-adresleme modu.

Yazaç (Register) Adresleme En yaygın kullanılan adresleme modudur. 8-bit yazaçlar. AH, AL, BH, BL, CH, CL, DH, ve DL. 16-bit yazaçlar. AX, BX, CX, DX, SP, BP, SI, ve DI. 32-bit yazaçlar: EAX, EBX, ECX, EDX, ESP, EBP, EDI ve ESI. 64-bit yazaçlar: RAX, RBX, RCX, RDX, RSP, RBP, RDI, RSI ve R8 den R15. Dikkat edilmesi gereken noktalar. 8 bit yazaç 16 bite veya 16 bit 32 bite kopyalanmaz.

Figure 3 3 MOV BX, CX komutunun işleyişi Mov komutu kaynağın içeriğini değiştirmez sadece hedefin içeriğini değiştirir.

Ġvedi (Immediate) Adresleme immediate (ivedi) kelimesi opcodu izleyen anlamında kullanılmıştır. İvedi veri sabit sayıdır. Bellek veya yazaca değişken yüklemek için kullanılır. İvedi adreslem hedefe bayt veya word yükler.. MOV EAX,13456H

Figure 3 4 MOV EAX,13456H komutunun işleyişi. 0 0 0 1 3 4 4 6 # simgesi bazı assembler programlarında ivedi adreslemenin ayıracı olarak kullanılır. MOV EAX,#13456H Kullanmak gerekli değildir. H onaltılı olduğunu belirtir eğer yok ise sayı onluktur. İlk dijit harf ise sayının en soluna 0 konur. ASCII karakterle r MOV AX, A şeklinde gösterilir. İkili (binary) sayılar B harfi ile belirtilir.

Doğrudan Veri Adresleme İki şekli vardır. MOV komutu AL, AX veya EAX yazaçlarına bellekten veri okur veya yazar. İşlem yapılacak adres data segmente eklenerek veya görevlendirilen diğer segment yazaçlarına eklenerek elde edilir. MOV AL,DATA komutunda adres yerine değişken kullanılmıştır. Örnek DATA (1234H)

Figure 3 5 MOV AL,[1234H] komutunun işleyişi. DS=1000H. 11234H nolu belleğin içeriği AL yazacına okunur. İşlem yapılan (effective address) ofset değerinin DS e toplanarak bulunur. Real modda DS her zaman 10 ile çarpılır sonra ofset ile toplanır.

Doğrudan adreslemede komutlar 4 bayt uzunluğundadır. 80386 dan Pentium 4, kadar olan serilerde 32 bit yazaç kullanıldığında veya 32 bit adreslenen bellek kullanıldığında komut 7 bayt uzunluğunda olur. Bu adresleme türü en çok kullanılan türdür.

Dolaylı adresleme (Register Indirect) Bellekteki veri BP, BX, DI ve SI yazaçlarından biri kullanılarak adreslenir. Ek olarak 80386 ve üst sürümlerinde ESP yazacı dışındaki extended yazaçlarda kullanılabilir.. 64-bit işlemcilerde flat modelde segment yazacı kullanılmaz.

Figure 3 6 MOV AX,[BX] komutunun işleyişi BX = 1000H ve DS = 0100H iken gösterilmiştir.

Data segment dolaylı adreslemede default olarak temel adresi içerir, komutun içerisinde adı geçmez. Dolaylama yazacı olarak BX, DI veya SI yazaçlarından biri kullanılır. Dolaylama yazacı olarak komut içerisinde BP yazacı kullanılırsa stack segment default temel adresi içerir. 80386 ve üst sürümlerinde EBP dolaylama yazacı olarak kullanıldığında stack segment default temel adresi içerir. EAX, EBX, ECX, EDX, EDI ve ESI yazaçları dolaylama yazacı olarak kullanıldığında data segment default temel adresi içerir.

Real modda 32-bit yazaç kullanıldığında yazacın içeriği 64 K sınırı nedeniyle 0000FFFFH değerini geçemez. Korumalı modda 32 bit yazaçlar segmentin dışına çıkmayacak şekilde herhangi bir değer alabilir. 64-bit modda, segment yazaçları kullanılmaz dolaylama yazacı doğrusal bellek adresini içerir. Dolaylı adresleme bellekte tablo formunda veri kullanımını olanak sağlar. Şekil 3 7 de BX yazacının sıra numarasını gösterdiği tablonun kullanımını gösterilmektedir.

ġekil 3 7 50 baytlık tablo (dizi) formunda verinin dolaylı adresleme ile kullanımı.

Base-Plus-Index Adresleme Dolaylı adreslemeye benzer şekilde veri belleğini adresler. Base yazacı işlem yapılacak veri belleğinin başlangıç adresini içerir. Sıralama yazacı (index register) işlem yapılacak belleğin sıra numarasını içerir.

ġekil 3 8 Base-plus-index adreslemede verinin okunması MOV DX,[BX + DI], DS=0100H, BX=100H ve DI=0010H.

Figure 3 9 Base-plus-index adresleme ile dizi elemanın adreslenmesi. Bu adresleme modu dizi (array) içerisindeki veriyi okumak veya yazmak için kullanılır. BX yazacına dizinin başlangıç adresi, DI yazacına ise eleman numarası yüklenir.

Register Relative (Bağıl) Adresleme Base-plus-index adreslemeye benzerdir. Base adres BP, BX, DI veya SI yazaçlarına yazılır. Base adresten uzaklık ise doğrudan sayı olarak verilir. Real modda segmentin boyutunun 64K olduğunu unutmayın.

ġekil 3 10 MOV AX, [BX+1000H] komutunun yürütülmesi. BX=0100H DS=0200H.

ġekil 3 11 Register relative adresleme ile dizi kullanımı.

Base Relative-Plus-Index Adresleme Base-plus-index adreslemeye benzer yapıdadır. Sabit sayı eklenir. Base register eklenir. index register eklenir ve işlem yapılacak adres elde edilir. Bu adresleme modu iki boyutlu dizilerin işlenmesinde kullanılabilir. Yapısı karmaşık olduğu için çok az tercih edilir.

Figure 3 12 Base relative-plus-index adreslemenin kullanımı. MOV AX,[BX+SI+1000H], DS=1000H olduğunu varsayın.

ġekil 3 13 Base relative-plus-index adreslemenin kullanımı. File ın record ları olduğunu ve her record un bir çok elemana sahip olduğunu varsayın. Sabit sayı file ı adresler. base register record u seçer index register record un eleman numarasını seçer.

Scaled-Index Adresleme 80386 - Core2 mikroişlemcilerde vardır. İki adet 32-bit yazaç kullanır. Base yazacı ve index yazacı, index yazcı ayrca scaling factor (ölçekleme katsayısı) ile çarpılır. scaling factor 1x, 2x, 4x, 8x olabilir. Scaling factor assembler komutunda yer almaz. (MOV AL,[EBX + ECX]).

RIP Relative Adresleme Flat memory modelde 64-bit instruction pointer yazacı kullanılarak belleğin doğrusal adresi belirtilir. Henüz bu adresleme modunu destekleyen assembler programı yoktur.

3 2 PROGRAM BELLEĞĠ ADRESLEME MODLARI JMP (jump) VE CALL Komutlarında kullanılır. Üç farklı şekli vardır: Doğrudan (direct), Bağıl (relative), Dolaylı (indirect).

Doğrudan (Direct) Program Belleği Adresleme Tüm JUMP ve CALL komutlarında kullanılır. High-level programlama dillerinde kullanılan GOTO ve GOSUB komutları (BASIC) gibi çalışır. Programcılar sıklıkla bu adresleme modunu kullanırlar özellikle yeni başlayanlar. Doğrudan program belleği adresleme modunda adres komutun op-code ile birlikte saklanır.

ġekil- 3 14 JMP [10000H] komutunun 5 baytlık makine dilindeki karşılığıinstruction. 10000H adresine bağlanmak için JMP komutunda CS e 1000H ve IP a 0000H yazılması gerekir.

Bu adresleme modunda, kullanılan bellek modeline bağlı olarak JMP komutu tüm belleğe erişebilir. Bu nedenle uzak jump işlemi olarak adlandırılır. Gerçek modda ilk 1M baytlık bölümün her satırına bağlanabilir. Protected modda uzak jump işlemi ile 4G-baytlık bölümün her satırına bağlanabilir. (80386 - Core2) Bu adresleme modunda kullanılan diğer komut ise altprogram çağırma komutu olan CALL dur. CALL veya JMP komutlarını bu adresleme modunda kullanırken adresi belirtmek için nümerik değer yerine etiket (label) kullanılır.

Relative Program Belleği Adresleme ġekil 3 15 JMP [2] komutunun işleyişi. Bu komut belirtilen adım kadar ileriye atlar.

Dolaylı (Indirect) Program Belleği Adresleme JMP ve CALL komutlarında bağlanılacak adres bir yazaca yazılır ve o adrese bağlanırsa dolaylı adresleme yapılmış olur. Dolaylı adres bilgisini herhangi bir yazaç içerebilir, 80386 ve üst sürümlerinde 32 bit yazaçlarda dolaylı adresi içerebilir. 16 bit yazaç kullanılırsa; JMP [BX], 32 bit yazaç kullanılırsa; JMP [EAX] şeklini alır.

3 3 Yığın (Stack) Bellek Adresleme Modu Yığın geçici veri saklamak için kullanılan LIFO türü bellektir. Her Mikroişlemci yığın belleğe sahiptir. Yığında verinin yanı sıra CALL komutu ile alt program çağrıldığında geri dönüş adresi mikroişlemci tarafından yığında saklanır. Veri yığına PUSH komutu ile atılırken, POP komutu ile yığından geri alınır.

Yığının yönetimini SP ve SS yazaçlarına verilmiştir. 16 bitlik bir veri yığına atıldığında YDB önce DDB sonra yığına atılır. Her veri atıldığında SP yazacının içeriği bir azaltılır. 16 bitlik veri yığından çekilirken, önce DDB tı sonra YDB tı çekilir. İşlem sonunda SP yazacı 2 arttırılmış olur.

ġekil 3 16 PUSH ve POP komutlarının yürütülmesi. (a) PUSH BX komutu BX yazacının içeriğini yığına atar. (b) POP CX yığının en üst satırında yer alan 2 baytı CX yazacına çeker.

Ödev 3: Bölüm 3 ün sonundaki soruları yanıtlayınız.