Bilgisayar Donanım ve Sistem Yazılımı

Slides:



Advertisements
Benzer bir sunumlar
X86 Assembly Programlama Dilinde
Advertisements

Makine Müh. & Jeoloji Müh.
8259A Programlanabilir Kesme Denetleyicisi (PIC)
İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar)
Kesmeler (Interrupts)
BLG 201 ŞAHİN AKDAĞ.
Windows işletim sistemi ve sürümlerinin incelenmesi
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Ders Adı: Bilgisayar Donanımına Giriş
Bilgisayar Yapısı-Genel
Programlamanın Yapı Taşları
BDEM 105.
BÖLÜM 2: BİLGİSAYAR SİSTEM YAPILARI
BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI
BİLGİSAYARIN MİMARİSİ, TEMEL BİLEŞENLERİ VE ÇALIŞMA MANTIĞI
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
FONKSİYONLAR.
Mikroişlemciler ve Mikrobilgisayarlar
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
Cemil ŞAHİN Bilişim Teknolojileri Öğretmeni
Windows 3-B Çevirme'yi kullanma.:Windows 3-B Çevirme, aralarında hızlı bir şekilde dönmenizi sağlamak için pencerelerinizi üç.
Media Get ; Rus yapımı bittorrent indirme programı
BİLGİSAYAR SİSTEMLERİ
Temel Bilgisayar Okur-Yazarlığı
8086 Programlama – Kısım III Prosedürler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bilgisayara bilgilerimizi saklayabiliriz.
Chapter 14: Files and Streams. 2Microsoft Visual C# 2012, Fifth Edition Dosyalar, Dosya Ve dizin Sınıfları Geçici Depolama – Genellikle bilgisayar belleği.
Intel 8086 Mimarisi Adresleme Modları
Ali AKMAN Subroutine, Interrupt, LPM BİL325  C Ders - 5.
Bilgi ve İletişim Teknolojisi Dersi
BİLİŞİM TEKNOLOJİ DERSİ KLAVYENİN TUŞLARI
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
Amaçlar Assembly dilinin genel özelliklerini tanımak
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Programlama Laboratuarı-I DERS - 3 Program Geliştirme Derleyici ve DevC++ Derleyicisi.
XML ve XML WEB SERVİSLERİ Volkan ALTINTAŞ. XML Bağımsız bir kuruluş olan W3C tarafından tasarlanmıştır. Herhangi bir kurumun tekelinde değildir. Kişilerin.
Programlamaya Giriş-I Bölüm-1. Algoritma Algoritma günlük yaşamımızda yaptığımız işler sırasında sıklıkla kullandığımız bir yöntemdir. Algoritma, bir.
8086 Programlaması – Kısım 1 1 Mikroişlemciler. İçerik 2 Hafıza Eri ş imi MOV komutu De ğ i ş kenler, Array’ler, Sabitler Aritmetik ve Mantık Komutları.
Bilgisayar Donanımı Dersi
DERS 5 PIC 16F84 PROGRAMLAMA.
C Programlama Dili Bilgisayar Mühendisliği.
Bilgisayar Donanım ve Sistem Yazılımı
8086 Programlama – Kısım IV Stack’ler, Makro’lar
Bilgisayar Donanım ve Sistem Yazılımı
8086 Programlama – Kısım III Prosedürler
PROGRAMLAMA TEMELLERİ
Mikroişlemciler Adresleme Modları.
Bilgisayar Donanım ve Sistem Yazılımı
Bilgisayar Donanım ve Sistem Yazılımı
Bilgisayar Donanım ve Sistem Yazılımı
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Açılış yoklama İşletim Sistemleri. Bilgisayarlarda işletim sistemi, donanımın doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama.
İşletim Sistemleri (Operating Systems)
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Windows işletim sistemi ve sürümlerinin incelenmesi
Bilgisayar Mühendisliğine Giriş
İşletim Sistemleri (Operating Systems)
BİLİŞİM TEKNOLOJİLERİ
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Bilgisayar Donanım ve Sistem Yazılımı Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr

Gündemde Olanlar Mazeret Sınavları Ödevler

Hedefler Kesme (İnterrupts) Emu8086

Kesme (Interrupt) Kesme işlemini günlük hayattan bir örnek vererek açıklayalım: Diyelim ki televizyonda sevdiğiniz bir artistin filmini izliyorsunuz ve bu anda telefon çaldı. Ne yaparsınız? llk olarak konsantrasyonunuz bozulur ve ne yapacağınıza karar verirsiniz. Eğer önemli bir telefon bekliyorsanız, televizyonun sesini keser, video player'in record butonuna basarak filmi kaydedersiniz. Telefon konuşması bittikten sonra da kaydettiğiniz filmi izlemeye başlarsınız. Eğer önemli bir telefon beklemiyorsanız kararınız bu defa telefona cevap vermeyerek arayanın telesekretere mesaj bırakması yönünde olur ve filmi izlemeye devam edersiniz.

Kesme (Interrupt) Interrupt nedir? İnterruptlar bilgisayar içerisinde yapılan bir görevin durdurularak başka bir görevin tamamlanmasını sağlamak için yapılan kesme işlemine denir.

Kesme (Interrupt) Interrupt nasıl çalışır? Programın kesildiği andan itibaren önceden hazırlanan bir alt program çalışır. Alt program işlevini bitirdikten sonra ana program kaldığı yerden itibaren tekrar çalışmasına devam eder. Netice olarak bir kesme, ana programın çalışmasını sadece duraklatır, ama hiçbir zaman işlevini devam ettirmesini engellemez.

Kesme (Interrupt)

Kesme (Interrupt) ISR (Interrupt Service Routine) nedir? ISR, mikroişlemcide yapılan kesmelerin yönetilmesinden sorumlu olan bir programdır.

Kesme (Interrupt) Mikoişlemcilerde 3 tür kesme vardır: Yazılım Kesmeleri (Software Interrupt) Donanım Kesmeleri (Hardware Interrupt) İçsel Kesmeler (Internal Interrupt)

Kesme (Interrupt) Donanım Kesmeleri Her mikro işlemcinin ve mikro denetleyicinin donanım kesmesi için bir INT ucu vardır. Bu INT ucu aktiflendiğinde (elektriksel olarak 5v ya da 0v gerilimle uygulanması durumunda) mikro işlemci o anda çalıştırılmakta olan koda ara verir ve başka bir kodu uygulamaya başlar. Yani bu tur kesmelerde kesmenin oluş mekanizması dışsal ve elektriksel olaylara bağlıdır. Bu yolla donanım kesmesi oluşturulmasına IRQ (interrupt request) denir.

Kesme (Interrupt) Donanım Kesmeleri Örnek: İşletim sistemi, açılması esnasında herbir donanım cihazının hangi numaralı kesmeyi kullanacak olduğunu bilmeye ihtiyacı vardır. Böylece her biri ile uygun olan işleyiciyi ilişkilendirir. Eğer iki farklı cihaz aynı IRQ'yu kullanmaya çalışırsa, kimi zaman kesmeler yanlış işleyiciye gönderilir. Genellikle bu durum cihazın kilitlenmesine ve işletim sisteminin uyku moduna geçmesine ya da çökmesine neden olacak şekilde işletim sistemini kötü bir biçimde yanıltır.

Kesme (Interrupt) İçsel Kesme nedir? Mikro işlemcinin bir makine kodunu çalıştırırken problemle karşılaştığında kendi kendisini çağırdığı kesmelerdir. Diğer bir deyişle bazı geçersiz program sonuçlarının elde edilmesi halinde CPU’nun kendisi tarafından oluşturulmaktadır

Kesme (Interrupt) İçsel Kesme nedir? Örnek: 0 ile bölüm şeklindeki bir işlem sonucunda meydana gelen kesme. MOV AX, 05 MOV DX, 00 DIV DX

Kesme (Interrupt) Yazılım Kesmeleri Bu tür kesmeler, RAM veya ROM’da bulunan alt rutinlerin çağrılmasıyla oluşturulur. Programcı tarafından sık sık kullanılırlar. Yazılım kesmelerinin normal fonksiyon çağırmalarından işlevsel bir farkı yoktur. Programcı tarafından yazılan INT hh makine komutuyla koda dahil edilirler.

Kesme (Interrupt) Yazılım kesmeleri ve donanım kesmeleri arasındakı fark? Donanım kesmeleri CPU’nun direkt etkilendiği kesmelerdir. Sonucunda CPU işleme ara vermek zorunda kalır. Yazılım kesmeleri ise programcının çağırdığı giriş/çıkış (input/output) işlemleri için CPU’dan istekte bulunur ve CPU bunları sıraya koyar.

Kesme (Interrupt) INT komutu INT değer Kodun içerisinde kesme yapmak için kullanılır ve INT komutuyla yazılır: INT değer Değer: 0-255 (0 -FFh ) arasında bir sayıdır. Genellikle heksadesimal sayılarla kullanılır.

Kesme (Interrupt) INT komutu 256 tane fonksiyondan fazla fonksiyon kullanılabilir. Her kesmenin alt fonksiyonları olabilir. Alt fonksiyon tanımlamak için AH register’ına, kesme yapmadan önce bir değer atanır. Her kesmenin 256 tane alt fonksiyonu olabilir. Yani 256*256 = fonksiyon gerçeklenebilir.

Kesme (Interrupt) INT komutu Genellikle AH register’ı kullanılır. Genellikle, diğer register’lar, alt fonksiyonlara parametre veya veri göndermek için kullanılır. Ancak bazı özel durumlarda, alt fonksiyon tanımlamak için diğer register’lar da kullanılabilir.

Kesme (Interrupt) INT komutu En yaygin kullanilanlar sunlardir: INT 10h :Video Servisleri INT 16h : Kalvye Servisleri INT 17h: Yazici Servisleri INT 21h: MS-DOS Servisleri

Kesme (Interrupt) INT komutu INT 0h: Bölme i şleminde bölen 0 ise CPU tarafından 0. kesme çalıştırılır. Ekrana “divide overflow” mesajını göndererek komut satırına hatasız dönüş yapılır.

Kesme (Interrupt) INT 10h (OEH): Ekrana karakter yazdirma AL = 0EH AL kaydedicisine ekrana yazdirilacak karakter yazilir. MOV AL, ‘a’ MOV AH, 0eh İnt 10h

Kesme (Interrupt) INT 10h kesmeye bağlı servisler

Kesme (Interrupt) INT komutu INT 21h servisleri DOS işletim sisteminin ekran, klavye ve disk erişimini kolaylaştıran pek çok servisini barındırır.

Kesme (Interrupt) INT 21h kesmeye bağlı servisleri

Emu8086 Emu8086 bir kod geliştirme ortamıdır. Kod geliştirme ortamları bir programı kaynak metinden başlayarak kullanıcıyı çevirme ve bağlama işlemleriyle yormadan COM veya EXE dosyası oluşturup oluşan makine kodunu aynı zamanda kaynak metin üzerinden takip ederek izleyebilmemizi sağlar. EMU8086 assembly program geliştirme amaçlı eğitsel bir araçtır. Emu8086, Windows XP, 7 and 10 ile uyumludur ve aşağıdaki linklerden indirilebilir: www.emu8086.com https://emu8086-microprocessor- emulator.en.softonic.com/download

Emu8086 Emu8086’nın bileşenleri nelerdir? Metin Editörü Sayı Çeviricisi (Number Convertor) Flags Stack Registers ASCII çevirici .

Emu8086 Emu8086 Metin Editörü EMU86 Editörü komut anımsatıcılarını, hex sayıları ve etiketleri farklı renklendiren özel bir editordür. Metin hazırlandıktan sonra (compile) butonuna basarak kaynak metnin çevrilmesi ve bağlanmasını sağlayabiliriz. Yanındaki (emulate) butonu ise 8086 emulatorunu başlatacaktır.

Emu8086 Emu8086 Metin Editörü EMU8086 dilyapısı (syntax) MASM ve TASM gibi yaygın çeviricilerin dilyapısına çok benzer. Ayrıca EMU8086 da byte ptr ve word ptr anahtar sözcükleri b. ve w. ile kısaltılabilir. Diğer çeviricileri kullanacak olanlar metinde gerekli değiştirmeleri yapmalıdır. LEA ile ilgili sorunlar çıkabilir. LEA ya alternatif komut olarak MOV tercih edilmelidir

Emu8086 Emu8086 Uygulama Örnekleri Kaydedicilere Değerlerin Yüklenmesi Offset adresi-hexadecimal-decimal-ascıı gösterimi

Emu8086 NOTLAR: Belleğe erişim sağlamak için BX, SI,DI,BP kaydedicileri kullanılır. Bu kaydedicileri birarada [ ] sembolü ile kullanarak farklı bellek adreslerine erişim sağlarız. Bunların nasıl kullanıldığını akılda tutmak için aşağıdaki şekilden her bir bölmeden bir tanesi alınır yada hiç alınmaz. Örn: [BX +5] [BX +SI] [DI +BX-4] BX SI Indis BP DI

Emu8086 NOTLAR: Segment Kaydedicilerinin (CS,DS,SS,ES) içindeki değerlere Segment; genel amaçlı kaydedicilerin (BX,SI,DI,BP) aldığı değerlere ise Offset denir. Örnek: DS =1234h ve SI=7890h ise bellek adresi 1234:7890 olarak gösterilir.

Emu8086 MOV Komutu Adresleme Modlari MOV reg,memory MOV memory,reg MOV reg,reg MOV memory,immediate MOV reg,immediate reg: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP memory: [BX], [BX+SI+7] Immediate:5, -34, 3FH, 10001101b

COM ve EXE dosyaları COM ve EXE dosyaları assembly dilinde yazılmış programları çalıştırılabilir hale getiren dosyalardır. İkisi de aynı işi yapar ama farklı özelliklere sahiptirler.

COM ve EXE dosyaları COM (Component Object Model) dosyası CP/M (Control Program/Monitor) and MS-DOS işletim sisteminden itibaren kullanılan ilk çalışabilir dosya formatı. COM dosyasında başlık veya herhangi bir format yoktur. Text dosyalarında yazılır. 100h/ (256 decimal) adresinden başlar. Çünkü ilk 100h adresinde işletim sistemi dosyaları bulunur.

COM ve EXE dosyaları COM dosyası COM uzantılı dosyalar DOS un ilk yıllarında programları daima belleğin aynı bölgesine yükleyerek çalıştırma esasına dayanan yürütülebilir dosyalardır. En fazla 64kBayt olabilir. Kod bölütü, veri bölütüyle çakışık olan bu tip programlar DOS un yığıtını kullanır. Aynı programın COM derlemesi EXE sine göre daha kısadır.

COM ve EXE dosyaları EXE (Executable) dosyası COM dosyasının eksiklerini gidermek için oluşturulan çalıştırılabilir dosya formatıdır. EXE dosyasında kod yazmak için belli bir format kullanılır. EXE dosyaları RAM’i daha iyi kullanır. Başlangıç adresleri yoktur.

COM ve EXE dosyaları EXE dosyası EXE uzantılı çalıştırılabilir dosya biçimi daha geniş ana bellek olanaklarıyla birlikte 64kb kod sınırlamasını kaldırmak üzere oluşturulmuştur. Kod büyüklüğünde sınır yoktur, ve kendi yığıtını tanımlamak zorundadır. Kod ve veri bölütleri istenen yerden başlayabilir. EXE dosyası COM dan daha büyüktür.

COM ve EXE farkları COM EXE Boyutu 64K ile sınırlıdır. Boyut sınırı yoktur. Daha hızlı çalışır. Daha yavaş çalışır. Tek segmentten oluşur. Bu yüzden tüm segmentler aynı adres alanında yer alır. Birden fazla segmentten oluşur. Farklı segmentlerden RAM kullanabilir. Yazı formatı yoktur. Belli bir formatta yazılır. 100h adresinden başlar Başlangıç adresi yoktur.

EXE dosyası formatı .model small .stack 256 .data ; tüm veriler,değişkenler vs. buraya yazılır. .code start: ;Programın çalıştığı yer, program kodunun yazıldığı yer burasıdır. end start

Kaynaklar http://members.comu.edu.tr/boraugurlu/courses/bm307/content/week10/hafta10.pdf https://www.tutorialspoint.com/microprocessor/microprocessor_8086_interrupts.htm

Teşekkürler Sorular? Aslı Eyecioğlu Özmutlu aozmutlu@bartin.edu.tr