Mikroişlemciler Adresleme Modları.

Slides:



Advertisements
Benzer bir sunumlar
X86 Assembly Programlama Dilinde
Advertisements

OPERATÖRLER.
Programming 8086 – Kısım II Program Akışı ve Döngüler
Değişken , Veri Türleri ve Operatörler
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü Sürüm-A
Kesmeler (Interrupts)
Bölüm 2 C Dilinin Temelleri
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü SürümA
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Numbers of Opcodes Nihal Güngör.
Programlamanın Yapı Taşları
Fonksiyonlar Hafta 4.
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
BUYRUK İşlem kodu İşlemci yazacı veri
8051 MİKROKONTROLÖR AİLESİ
8051 MİKROKONTROLÖR AİLESİ
Register ve Türleri Nihal GÜNGÖR.
Temel Bilgisayar Yapısı ve Devreleri
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
Mikroişlemciler ve Assembler Programlama
Mikroişlemciler ve Mikrobilgisayarlar
DEĞİŞKENLER VE VERİ TİPLERİ
DERS 5 PIC 16F84 PROGRAMLAMA.
Bilişim Teknolojileri Öğretmeni İsmail ÖZTÜRK
Mikroişlemciler Sayı gösterimleri.
KLAVYE : ( Keyboard ) Bilgisayarın bilgi girişinde kullanılan ve daktiloya benzeyen parçası. Klavyeler harflerin dizilişine göre farklı tiplerde olabilirler.
CNC tezgah ve sistemlerde; tezgah, parça ve takım olmak üzere üç ayrı koordinat sistemi vardır. Bu koordinat sistemlerinin  orijinlerine; tezgaha ait olanına 
8086 Programlama – Kısım III Prosedürler
VİSUAL BASİCTE KULLANILAN VERİ TÜRLERİ.
Intel 8086 Mimarisi Adresleme Modları
Sayı Sistemleri Geçen Hafta Kayan Noktalı Sayılar
BİL 322 Programlanabilir Sayısal Sistemler LCD ile Uygulama Geliştirme.
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
Amaçlar Assembly dilinin genel özelliklerini tanımak
Bölüm 2 C Dilinin Temelleri Genel Kavramlar Yazım ve Noktalama Kuralları C Kütüphaneleri C Dilindeki Sözcükler Değer Sabitleri Veri Tipleri Değişkenler.
Intel 8086 Mimarisi Adresleme Modları 1 Mikroişlemciler.
Giri ş 1 Mikroişlemciler. İçerik 2 Tarihi geli ş im Tanımlar Mikroi ş lemci tabanlı sistemler Sayı sistemleri.
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ı.
TCP /IP ADRESLEMESİ.
Kesmeler (Interrupts)
Programming 8086 – Kısım II Program Akışı ve Döngüler
DERS 5 PIC 16F84 PROGRAMLAMA.
C Programlama Dili Bilgisayar Mühendisliği.
Ondalık Kesirler ● Paydası 10, 100, 1000… olan kesirlere ondalık kesir denir , , , , ● Yukarıdaki kesirler birer ondalık.
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
Intel 8086 Mimarisi Adresleme Modları
Bilgisayar Donanım ve Sistem Yazılımı
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
Bilgisayar Donanım ve Sistem Yazılımı
Bölüm 2 C Dilinin Temelleri
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemcili Sistem Tasarımı
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
4. GİRİŞ/ÇIKIŞ DEYİMLERİ 4.1. Giriş
Doğu Akdeniz Üniversitesi Bilgisayar Ve Teknoloji Yüksek Okulu
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bilgisayar Mühendisliğine Giriş
Bilgisayar Mühendisliğine Giriş
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Bölüm 2 C Dilinin Temelleri
Sunum transkripti:

Mikroişlemciler Adresleme Modları

Adresleme Modları

Giriş Mikroişlemci için verimli yazılım geliştirme, her bir komut için geçerli adresleme modlarının iyi bilinmesine bağlıdır.

Veri Adresleme Modları MOV komutu, çok kullanılan esnek bir komuttur. Veri adresleme modlarının anlatımı için bir temel oluşturacaktır. Source (kaynak): sağda destination (hedef): solda operand Opcode: MOV. Opcode (operasyon kodu): mikroişlemciye, hangi operasyonun çalıştırılacağını belirtir.

Adresleme Modu Operand’larda belirtilen efektif hafıza adresinin nasıl hesaplanacağını belirtir. Bu adresin hesaplanması için register’larda bulunan bilgiler ve/veya sabit sayılar kullanılabilir. Sabit sayılar, komutun içerisinde belirtilebileceği gibi, farklı yerlerde de belirtilmiş olabilir.

1. Register Adreslemesi Bu modda, kaynak operand’ı, hedef operand’ı veya her ikisi birden 8086 register’ları arasından seçilir. MOV DX, CX MOV CL, DL 8-bit register’lar: AH, AL, BH, BL, CH, CL, DH, ve DL. 16-bit register’lar: AX, BX, CX, DX, SP, BP, SI, ve DI. HİÇ BİR ZAMAN 8-bitlik ve 16-bitlik register’ları karıştırmayın.

2. Immediate (Veri tanımlı) Adresleme Kaynak olarak, komutun içerisinde tanımlanmış olan byte veya word; hedef register’ı veya hafıza satırına yazılır. MOV CL, 03H MOV DX, 0502H İmmediate (hemen) kelimesi, heksadesimal opcode’dan hemen sonra gelen hafıza satırındaki verinin kullanılmasını ifade eder. İmmediate veriler, sabit verilerdir. Register’dan veya hafıza satırından okunan veriler, değişken verilerdir.

Immediate Addressing (continued) H harfi, heksadesimal veri olduğunu ifade eder. Eğer heksadesimal veri, bir harf ile başlar ise (A, B, C, D, E), assembler, verinin 0 ile başlamasını gerektirir. Örneğin heksadesimal F2, assembly dilinde 0F2H şeklinde ifade edilmelidir. Desimal (10’luk sistemdeki) veriler için herhangi bir özel ön veya arka takı gerekmez. Örneğin, desimal 100 rakamı AL register’ına yazılması istenir ise MOV AL,100 komutu kullanılır.

Bir Assembly Programı VERI1 DB 23H ; VERI1 23H baytı olarak tanımlı VERI2 DW 1000H ; VERI2 1000H word’u olarak tanımlı BASLA: MOV AL,BL ;BL’yi AL’ye kopyala MOV BH,AL ;AL’yi BH’ye kopyala MOV CX,200 ;200 desimal rakamını CX’e kopyala

Assembly Programları Assembly programlama dilindeki her komut 4 parça/kısımdan oluşur. En soldaki kısma label ismi verilir. Bulunduğu hafıza satırı için sembolik bir isim belirtir. Tüm label’lar, bir harf veya şu özel karakterlerden biri ile başlayabilir: @, $, -, or ?. Bir label, 1 ile 35 karakter arasında olabilir.

Assembly Dili (devam) Bir sonraki kısım opcode alanıdır. Komutun ne olduğunu tanımlar. Daha önce belirtilen örneklerdeki MOV kısmı, opcode için bir örnektir. Opcode kısmının sağındaki kısım operand kısmıdır. Opcode tarafından kullanılacak olan bilgileri içerir. MOV AL,BL komutundaki AL ve BL kısımları operand kısımlarıdır. En sonda ise, komut ile ilgili eklenebilecek yorumları içeren kısmı comment bulunur. Yorumlar, noktalı virgül (;) karakteri ile başlar.

3. Direct (Doğrudan) Adresleme Hafıza ile bir register arasında byte veya word transferi yapar. Komut seti, hafızadan hafızaya veri transferini içermez (MOVS komutu hariç) Örnekler: MOV CX,START MOV START,BL START assembler tarafından, DB(Define Byte – Byte olarak tanımla) or DW(Define Word – Word olarak tanımla) pseudo komutları ile tanımlanmış bir adrestir.

4. Register Indirect (Dolaylı) Adresleme Register ile bir indis veya baz register’ı sayesinde adreslenmiş olan bir hafıza bölümü arasında byte veya word transferi. Indis ve baz register’ları BP, BX, DI, ve SI’dır. Örnek: MOV AX,[BX] komutu, (veri bölümünün başlangıcından) BX register’ında belirtilen offset’te bulunan 16-bitlik veriyi AX register’ına kopyalar.

5. Base-plus-index (Baz-artı-indis) Adresleme Baz register (BP veya BX)’te bulunan değere indis register’larda (DI veya SI)’da bulunan değer ilave edilerek bulunan değerin işaret ettiği hafıza adresindeki veri ile register’da bulunan veri arasında yapılan byte veya word büyüklüğündeki transferi gerçekleştirir. Örnek: MOV [BX+DI],CL komutu, CL’de bulunan byte büyüklüğündeki veriyi, BX+DI ile işaretlenen hafıza adresine kopyalar.

6. Register Relative (Göreceli) Adresleme İndis veya baz register’ındaki değere bir sayı ilave edilmesi ile oluşan değerin işaret ettiği hafıza bölgesi ile register arasında gerçekleştirilen byte veya word büyüklüğündeki transferi gerçekleştirir. Örnekler: MOV AX,[BX+4] MOV AX,ARRAY[BX]

7. Base Relative-Plus-Index (Baz Göreceli-artı-indis) Adresleme Baz ve indis register’ına bir değer ilave edilerek bulunan değerin işaretlediği hafıza bölgesi ile register arasındaki byte veya word büyüklüğündeki veri transferi. Örnekler: MOV AX,ARRAY[BX+DI] MOV AX,[BX+DI+4]

8. Relative (Göreceli) Adresleme Bu modda, operand, PC’ye göre göreceli olarak belirtilmiş olan 8-bitlik yönlü sayı ile ifade edilir. Örnek: JNC START Eğer carry=0 ise, PC’ye START’ın gösterdiği 8-bitlik yönlü sayı ilave edilerek bulunan değer yüklenir. Aksi durumda, bir sonraki komuta geçilir.

9. Implied (İmalı) Adresleme Bu modu kullanan komutların hiç operand’ı bulunmaz. Örnek: CLC Bu komut, carry bayrağının değerini sıfıra çeker.

Örnekler Aşağıdaki komutların adresleme modlarını bulun: MOV DH,[BX+DI+20H] MOV AL,BL JMP LABEL1 MOV SP,BP MOV AX,WATER MOV CH,[BP+SI] MOV AX,FILE[BX+DI] MOV [DI],BH MOV AX,44H MOV [BX+SI],SP MOV AL,NUMBER MOV AX,[DI+100H] MOV BL,44 MOV ARRAY[SI],BL MOV LIST[SI+2],CL MOV CX,[BX] CLI