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

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

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

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

MTM 305 MĠKROĠġLEMCĠLER

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

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

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

Bölüm 4 Veri Aktarma Komutları

BM-311 Bilgisayar Mimarisi

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

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Mikrobilgisayar Donanımı

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Komutların Yürütülmesi

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

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

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

CISC Complex Instruction Set Computers

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

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

80x86 MICROPROCESSOR Instructions

8086 Mikroişlemcisi Komut Seti

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

BM-311 Bilgisayar Mimarisi

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

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

DIGIAC 2000 Deney Seti PAT İŞLEMCİ KARTI :

MTM 305 MİKROİŞLEMCİLER

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

MC6800. Veri yolu D3 A11. Adres yolu A7 A6 NMI HALT DBE +5V 1 2. adres onaltılık onluk bit 07FF kullanıcının program alanı

Mikrobilgisayar Mimarisi ve Programlama

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

İşletim Sistemlerine Giriş

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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.

MTM 305 MĠKROĠġLEMCĠLER

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

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

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ı

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

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

İşletim Sistemlerine Giriş

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

Aritmetiksel Komutlar

Komut Seti Mimarisi (ISA)

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

İşletim Sistemlerine Giriş

Assembly Programlama Dili T e m m u z

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

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

Assembly. Programlama Dili. T e m m u z

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

MTM 305 MİKROİŞLEMCİLER

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

8086 nın Bacak Bağlantısı ve İşlevleri. 8086, 16-bit veri yoluna (data bus) 8088 ise 8- bit veri yoluna sahip16-bit mikroişlemcilerdir.

Windows Eski Sürümleri Bellek Yapısı

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

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

K uark projesi. Temel Özellikler :

İşlem Buyrukları MİKROİŞLEMCİ SİSTEMLERİ. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları

Mikroişlemcili Sistemler ve Laboratuvarı

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

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

Bölüm 8: Ana Bellek 8.1

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

8. MİKROİŞLEMCİ MİMARİSİ

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

DOSYA NEDİR? Verilerin HDD de saklanması. Verilerin HDD de saklanması DOSYA SİSTEMİ NEDİR?

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

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

Linux Assembly Programlamaya Giriş

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

SAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar

İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.

Mikroişlemcili Sistemler ve Laboratuvarı

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

AND Komutu. and hedef, kaynak

D Duplex : Alıcı + Verici Çalışma Debouching : DMA : Direct Memory Access Data-Bus : Data Veri Yolu Data Flow : Veri Akışı Data Processing : Veri

Mikroişlemcili Sistemler ve Laboratuvarı

BM-311 Bilgisayar Mimarisi

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

MTM 305 MĠKROĠġLEMCĠLER

BLG2109 BİLGİSAYAR DONANIMI DERS 3. Öğr. Grv. Aybike ŞİMŞEK

2. SAYI SİSTEMLERİ VE KODLAR

BBM 341 Sistem Programlama

PROGRAMLAMAYA GİRİŞ DERS 2

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:

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 kullanımını tanımlamak. Korumalı modda belleğe erişim yöntemlerini tanımlamak. 64 bit Flat bellek modelinde beleğe erişim yöntemini tanımlamak. Program-invisible yazaç yapısını tanımlamak. Bellek sayfalama tekniğini tanımlamak.

Program yazmaya başlamadan önce mikroişlemcinin iç yapısını programcı bakış açısından bilmek gerekir. Çok çekirdekli mikroişlemcilerde her çekirdek benzer iç yapıya sahiptir. Tek fak programın farklı parçalarını yürütmeleridir.

8086 dan Core2 ya kadar tüm mikroişlemcilerde (program visible) görünür yazaçlar bulunmaktadır. Bu yazaçların bir adı vardır ve program tarafından doğrudan denetlenebilirler. 80286 dan başlayarak üst sürümlerde görünmez yazaçlar (program invisible) bulunur. Bu yazaçlar program tarafından doğrudan adreslenemez, fakat kullanılan komuta bağlı olarak işlemler yürütülürken kullanılır.

80286 ve üzeri sürümlerde görünmez yazaçlar sadece korumalı modda belleği denetlemek ve işletmek üzere kullanılır. 80386 dan Core2 ya kadar tüm mikroişlemciler 32-bit iç mimariye sahiptir. 8086ve 80286 tam olarak üst sürümlere uyumludur.

RAX 64 bit yazaç, EAX 32 bit yazaç, AX 16 bit yazaçtır ve Akümülatör (accumulator) olarak adlandırılır. AH, AL 8 bit yazaçlardır. Akümülatör mikroişlemcilerde ana yazaca verilen isimdir. Aritmetik ve mantık işlemlerinde birincil görevli olan yazaçtır. RBX, yazacı RBX, EBX, BX, BH, BL olarak ta adlandırılır. BX base index yazacıdır. Bazı komutlar için indeks adresini içerir.

RCX, yazacı RCX, ECX, CX, CH, or CL olarak ta adlandırılır. Sayaç yazacıdır (count). Bazı komutlarda sayma işlemi yapar diğer durumlarda genel amaçlı bir yazaçtır. RDX, yazacı RDX, EDX, DX, DH, or DL olarak ta adlandırılır. Veri yazacı (data). Bölme ve çarpmada çarpımın bir kısmını veya bölümün bir kısmını içerir. Çarpma bölmenin dışında genel amaçlı bir yazaçtır.

RBP, yazacı RBP, EBP, or BP olarak ta adlandırılır. Bellekte veri transferi sırasında işaretleyici (base pointer) yazacı olarak kullanılır. RDI, yazacı RDI, EDI, or DI olarak ta adlandırılır. Dizi işlemi yapan komutlarda hedef sıralama yazacı (destination index) olarak kullanılır. RSI yasacı RSI, ESI, or SI olarak ta adlandırılır. Kaynak sıralama yazacı (source index). Dizi işlemi yapan komutlarda kaynağın sıra numarasını belirtir. RDI, RSI yazaçları ilgili komutların kullanılmadığı durumlarda genel amaçlı yazaçlardır.

R8 - R15 yazaçları Pentium 4 ve Core2 işlemcilerinde bulunur ve sadece 64-bit modu izinlendi ise erişilebilir. Bu yazaçlardaki veriler 64, 32, 16 ve 8-bit genişliklerinde adreslenebilirler. Bu yazaçların özel görevleri yoktur. Genel amaçlı yazaç olarak kullanılabilirler. Günümüzdeki birçok uygulama bu yazaçları kullanmamaktadır. Sadece 64 bit windows ortamında çalıştırılmak üzere yazılmış programlar bu yazaçları kullanabilir. 8-bit olarak kullanıldığında en sağdaki 8 bit kullanılır, 8. ile 15. bitleri ayrıca diğer bitlerden bağımsız kullanmak mümkün değildir.

RIP, RSP ve RFLAGS yazaçlarıdır. segment yazaçları CS, DS, ES, SS, FS ve GS yazaçlarını kapsar. RIP bellekte yer alan bir sonraki komutun adresini gösterir. instruction pointer olarak adlandırılır. RSP yığının kullanılacak satırının adresini içerir. stack pointer olarak adlandırılır.

RFLAGS yazacı mikroişlemcinin son durumunu gösteren ve mikroişlemcinin özel işlevlerini denetleyen bitler içeren bir yazaçtır. Bu yazaçta yer alan bitler bir olayın oluşumunu göstermesi nedeniyle bayrak (Flag) olarak adlandırılır. Bayraklar 8086 dan core2 ya doğru yukarı doğru uyumludur. En sağda yer alan 5 bayrak ve taşma bayrağı birçok aritmetik ve mantık işlemlerinden etkilenirler. Veri aktarma işlemlerinden bu bayraklar etkilenmez.

Bayraklar program kontrol komutlarında değişmez. Bazı bayraklar denetim görevi üstlenmişlerdir..

C (carry) elde bayrağı, toplama sonrası eldeyi, çıkarma sonrası borcu gösterir. Bu görevlerinin yanı sıra hata durumunu belirtmek amacıyla programcılar tarafından kullanılır. P (parity) akümülatörün içeriğindeki sayı ikilik kodlandığında 1 lerin sayısına göre değişir. 1 lerin sayısı tek ise lojik 0, çift ise lojik 1 olur. Sayı 3 adet 1 e sahipse tek eşliktir P=0 dır Sayıda 1 yer almıyorsa çift eşliktir ve P=1 dir.

A (auxiliary carry) yarım yada yardımcı elde bayrağı. BCD sayılar ile aritmetik işlemlerde kullanılan bayrak 3 nolu bitlerden oluşan eldeyi kaydeder. Elde var ise 1 yok ise 0 olur. Aynı şekilde çıkarmada bit 4 den bir borç alındı ise 1 alınmadı ise 0 olur. Z (zero) sıfır bayrağı. Aritmetik veya lojik işlem sonucunun sıfır olduğu durumda 1 sıfırdan farklı olduğunda 0 olur. S (sign) işaret bayrağı. Aritmetik veya lojik işlem sonrası işaret bitini içerir. T (trap) izleme bayrağı on-chip debugging özelliğini izinler.

I (interrupt) INTR girişini denetler. Mantık 1 olduğunda bu girişe gelen kesme isteği algılanır. Aksi durumda algılanmaz. D (direction) DI veya SI index yazaçlarının işlem sonrası içeriklerinin otomatik olarak artırılacağınımı yoksa azaltılacağını seçer. O (overflow) Taşma bayrağı işaretli sayılar ile toplama ve çıkarma yapıldığında taşma oluşur. Bu bayrağın işlem sonunda 1 olması taşma olduğunu belirtir. Bunun anlamı işlem sonucu ilgili yazacın boyutuna sığmayacak kadar büyüktür.

IOPL korumalı mod çalışmada I/O cihazlarının ayrıcalık seviyesi seçmek için kullanılır. NT (nested task) bu bayrak korumalı modda çalışırken işletilmekte olan program parçasının diğer işlemlerle iç içe geçtiğini gösterir. RF (resume) debug aşamasında bir sonraki komuttan devam etmek için kullanılır. VM (virtual mode) bu bit korumalı moddaki sistemde sanal mod işlemi seçer.

AC, (alignment check) word veya doubleword veri word veya doubleword olmayan alana yönlendirildiğinde bu bayrak aktif olur. VIF (virtual interrupt) Pentium 4 te kesme denetim bitinin bir kopyasıdır. VIP (virtual) Pentiumda sanal kesme hakkında bilgi verir. (interrupt pending) multitasking ortamlarda virtual interrupt bayrağı olarak çalışır. ID (identification) bu bayrak pentium mikroişlemcisinin CPUID komutunu desteklediğini belirtir. CPUID komutu sisteme Pentium mikroişlemcisi hakkında bilgi sağlar.

Diğer yazaçlardan biri ile birleştirildiğinde bellekte işlem yapılacak adres bilgisini içerir. İşlemcinin sürümüne bağlı olarak dört veya altı adet segment yazacı bulunur. Segment yazaçlarının işlevleri real mode ve protected mode çalışmalarda farklıdır.

CS (code) program kodlarının bulunduğu adres hakkında bilgi içerir. DS (data) verinin bulunduğu adres hakkında bilgi verir. ES (extra) bazı komutlar tarafından kullanılan ek veri segmentinin adres bilgisini içerir. SS (stack) yığın olarak kullanılacak bellek alanını belirler. Yığının başlangıç noktasını stack segment ve stack pointer birlikte belirler. BP yazacı da stack segment ile birlikte verinin yerini belirler.

FS ve GS segment yazaçları 80386 ve üst sürümlerinde yer alır. Bu yazaçlar ek bellek segmentlerine erişilmesine izin verir. Windows bu segmentleri internal işlemlerinde kullanıyor fakat nasıl kullandıkları konusunda bir açıklama yok.

80286 ve üst sürümler gerçek ve korumalı modda çalışabilirler. 8086, 8088 ve 80186 ise sadece gerçek modda çalışabilirler Gerçek mod (Real mode) belleğin ilk 1M bayt lık kısmını adresleyebilir. Pentium 4 ve Core2 mikroişlemcilerde de aynıdır. Belleğin ilk 1M baytlık kısmına farklı kaynaklarda real memory, conventional memory, veya DOS memory gibi isimler verilmiştir.

Gerçek mode çalışmada belleğin adresi iki kısımdan oluşur. Segment yazaçlarında olan kısım ve ofset yazaçlarında olan kısım. Bu iki kısım birleştirilerek işlem yapılacak bellek adresi bulunur. segment yazacında bulunan kısma segment adres adı verilir ve 64K lık bellek parçasının herhangi bir yerinde işlem yapılacak belleğin başlangıç adresini belirler. offset adres işlem yapılacak bellek segmentindeki satır numarasını belirler.

Segment başlangıç adresi 10000H, bitiş adres IFFFFH 64K bayt uzunluğunda Ofset yazacının içeriği F000H işlem yapılacak bellek adresi 1F000H

Segment yazacının içeriği bilindiğinde başlangıç adresi bellidir. Bitiş adresi bulmak için FFFFH toplanır. Gerçek modda belleğin segmenti 64K dır. İşlem yapılacak adresi bulmak için segmet yazacının içeriğine ofset yazacının içeriği toplanır. Segment ve ofset adresleri yazılırken 1000:2000 şeklinde gösterilebilir. a segment address of 1000H; an offset of 2000H

Segmenti pencere olarak düşünün bu pencereyi belleğin her alanına hareket ettirebilirsiniz. Bir program 4 veya 6 dan daha fazla segmente sahip olabilir. Aynı anda sadece 4 veya 6 segmente erişebilir.

Program belleğin en altında yer alan DOS ve Driver kodlarının hemen üstüne yerleştirilir. Programın belleğe yerleşimi DOS tarafından yapılır.

Segment ve ofset adresleme DOS a programların bellekte yeniden yerleştirilmesine (relocatable program) izin verir. relocatable program belleğin her hangi bir yerine yerleştirilebilir ve değişiklik gerektirmeden işletilebilir. Relocatable data belleğin herhangi bir yerine yerleştirilebilir ve veriyi işleyen programda değişiklik yapılmadan kullanılabilir.

Segment ve ofset adresleme kullanıldığında belleğin başka alanına program veya data taşımak istediğimizde sadece segment yazacının içeriğini değiştirmek yeterlidir ofsette değişikliğe gerek yoktur. segmentin içeriğini değiştirme görevi işletim sistemine bırakılmıştır. Windows programları yazılırken ilk 2G lık bellek alanınn kullanılabileceği kabul edilerek yazılır.

1M bayt belleğin 80286 itibaren yetmemesi üzerine daha geniş bellek alanlarının kullanımı için geliştirilmiş bir yöntemdir. Segment yazacı adres tanımlayıcı tablodan bir satır seçer ve seçilen satırın içinde yazılı bilgi adreslenecek belleğin başlangıç adresini ve kullanım koşullarını belirler. Bu toblo 8192 satırdan oluşur ve her bir satır 64K lık boyutunda belleği adresler. Windows sadece Protected modda çalışabilir.

Global adres tanımlama tablosu (Global discriptors) tüm programlar tarafından kullanılan segment adreslerini içerir. Bu nedenle sistem adres tanımlama tablosu adı da verilir. Lokal adres tanımlama tablosu (Local discriptors) uygulama programları tarafından kullanılacak segment adreslerini içerir. Bu nedenle uygulama adres tanımlama tablosu adı da verilir. Global ve lokal adres tanımlama tablosunun her bir satırı 64 bit genişliğindedir.

Adres tanımlayıcıda yer alan base bilgisi segmentin başlangıç adresini içerir. Segmenti istediğiniz adresten başlatabilirsiniz. G veya öğe boyut biti segmentin boyutunu belirler. 4K lık adımlarla 64K ile 4G arasından boyut belirleyebilirsiniz

Bellek sayfalama yapısı her fiziksel belleğe bir doğrusal adres atar. Doğrusal adres (Iinear address); program tarafından belirlenen adrestir. Fiziksel adres (Physical address); programın belleğe erişmek için kullandığı gerçek adres. Bellek sayfalamada doğrusal adres görünmez şekilde fiziksel adrese dönüştürülür. Sayfalama görevi Mikroişlemci kontrol yazaçlarına verilmiştir. CR0-CR4

Flat bellek yapısında segment ve ofset yoktur. İlk adres 00 0000 0000H; son adres FF FFFF FFFFH. Belleği erişmek için 40 bit adres bilgisi kullanılır. Segment yazacı yazılımın önceliğini seçmek için kullanılır.