X86 Assembly Programlama Dilinde

Slides:



Advertisements
Benzer bir sunumlar
HTML.
Advertisements

Bölüm 2 C Dilinin Temelleri
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
Numbers of Opcodes Nihal Güngör.
VERİ TİPLERİ VE DEĞİŞKENLER
SQL de Değişken Tanımlama
OOP4 LAB.
Programlamanın Yapı Taşları
Fonksiyonlar ve Alt Programlar
Tek Tablo İçinde Sorgulamalar
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
BUYRUK İşlem kodu İşlemci yazacı veri
HTML (HYPER TEXT MARKUP LANGUAGE) TEMEL ETİKETLERİ
Bölüm 2 – XML Belgeleri Oluşturmak
İNTERNET PROGRAMCILIĞI I BTP 207 Ders 9. Tek değişkende birden fazla bilgi tutulmak istendiğinde kullanılır. Kullanım şekli: var dizi_adı= new Array(eleman1,
Temel Bilgisayar Yapısı ve Devreleri
PROGRAMLAMA VE ASSEMBLY DİLİ
SQL de Değişken Tanımlama
Bilgisayar Programlama
FONKSİYONLAR.
Mikroişlemciler ve Mikrobilgisayarlar
DEĞİŞKENLER VE VERİ TİPLERİ
DERS 5 PIC 16F84 PROGRAMLAMA.
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
VERİ TİPLERİ VE DEĞİŞKENLER
8086 Programlama – Kısım III Prosedürler
Bilgi Teknolojisinin Temel Kavramları
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
Sayı Sistemleri Geçen Hafta Kayan Noktalı Sayılar
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.
Adım Adım Algoritma.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
Bilgisayar Programlamaya Giriş - 1
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.
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.
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ı
Bölüm 2 C Dilinin Temelleri
SQL SERVER STORED PROCEDURE
ACTIONSCRIPT TEMELLER İ SAVAŞ TUNÇER
2.2. Özel Semboller ve Pascal Sözcükleri
4. GİRİŞ/ÇIKIŞ DEYİMLERİ 4.1. Giriş
BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Bilgisayar Bilimi Problem Çözme Süreci-2.
Bilgisayar Mühendisliğine Giriş
2.2. Özel Semboller ve Pascal Sözcükleri
NİŞANTAŞI ÜNİVERSİTESİ
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İ
Bilgisayar Bilimi Döngüler.
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
Bölüm 2 C Dilinin Temelleri
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

X86 Assembly Programlama Dilinde Komut yapısı, talimatlar ve veri tanımlamaları

DEVAM: ADD AL,07H komut satırı incelendiğinde Program Formatı Komut yapısı: DEVAM: ADD AL,07H komut satırı incelendiğinde ETİKET ALANI ÖZELLİKLERİ: 1- A’dan Z’ye büyük ve küçük harfler kullanılabilir. Assembler büyük-küçük harf ayrımı yapmaz. 2- Sayısal 0 ile 9 arası rakkamlar kullanılabilir. 3- Özel karakterler $,@,% ve ? gibi karakterler kullanılabilir. 4- Etiket adı en fazla 32 karakter olmalıdır. 5- İlk karakter muhakkak harf olmalıdır. 6- Program komutları etiket adı olarak kullanılmamalıdır. 7- Karakterler arasında boşluk bırakılmamalıdır.

Komut alanı Komutlar mnemonic olarak adlandırılan ingilizce kelimelerin kısaltmalarından meydana gelen yapıdır. İngilizce olarak opcode alanı olarak isimlendirilir.

Tek başına bir anlam ifade etmez. Komuttan sonra gelir. Operand Alanı: Operand alanı işlemci içerisinde işlenecek verinin nerede olduğunu belirten kısımdır. Tek başına bir anlam ifade etmez. Komuttan sonra gelir. Operandı olmayan komutlar da vardır. (PUSH, NOT vb..) Bu alanın yazılması için komuttan sonra en az bir karakterlik boşluk bırakılması gerekir.

Bu alan kaynak operandı ve hedef operandı olmak üzere iki bölümden oluşur. Her bölüm kendi içinde üçe ayrılır. Bunlar, veri, kaydedici ve bellek alanıdır. Kaynak operand, doğrudan bir veri, kaydedici, bellek adresi yada o adresi gösteren bir kaydedici olabilir. Hedef operand, kaydedici veya bellek adresi yada o adresi gösteren bir kaydedici olabilir.

H Hexadecimal (onaltılık) D Decimal (onluk) O Oktal (sekizlik) Ayrıca, doğrudan verilerin sonunda B,H,D ve O harfleriyle sayının formatı belirtilebilir. B Binary (ikilik) H Hexadecimal (onaltılık) D Decimal (onluk) O Oktal (sekizlik) demektir.

TALİMATLAR Talimatlar, program içerisinde segmentlerin tanımlanması, altyordam gibi prosedürlerin kurulması, verilerin tanımlanması ve bellek alanlarının ayrılması gibi işlemleri yapmak için kullanılır. Talimatlar amaç kodları üretmezler. Bu alanda yazılan ifadeler doğrudan derleyici ile ilgilidir. Talimatlar komutları belli bir düzene sokarak işlemciye ulaştırır.

SEGMENT TALİMATLARI Bu talimat ile segmentin başlangıcını ve sonunu tanımlarız. Her segmentin açılması bir anlamlı adla başlar ve aynı adla kapanır. Bir programda birden fazla segment tanımlaması yapılabilir. 4 adet segment alanı vardır. Bunlar, kod segment ile komutların yerleştirildiği, data segment ile verilerin depolandığı, ekstra segment ile sonuçların yazıldığı ve yığın segmenti ile verilerin geçici bir süre atıldığı bellek alanını ifade eder.

Her segment’de align, combine ve class olmak üzere üç yardımcı operand mevcuttur.

Align Parametresinin Kullanımı Program kodlarının belleğe yüklenmesini belli bir düzen içerisinde gerçekleştirir. Bu yerleşim çeşitleri; byte(bir byte’lık yerleşim, word(iki byte’lık yerleşim), doubleword(dört byte’lık yerleşim) ve para(16 byte’lık yerleşim, paragraf) şeklindedir. Program içerisinde bu parametre kullanılmadığı zaman(default) “para” parametresi olarak 16 byte’lık yerleşim gerçekleşir.

Combine Operandı Aynı adla tanımlanmış segmentlerin birbirleri ile arasındaki bağı (koordine eder) kurar. Parametreler ise; public, stack, common, memory ve AT operandlarıdır

Class Operandı Segmentte depolanacak veri veya komut kodlarının alanını (sınıfını) belirtir. Genel olarak parametrelerin kullanım şeklini aşağıdaki şekille gösterecek olursak.

PROC TALİMATI Özel bir amaçla yazılmış program parçalarına prosedür denir. Genel bir program içerisinde birisi ana prosedür olmak üzere bir den çok prosedür bulunabilir. Prosedürler içerisinden prosedürler çağrılabilir. Alt prosedürler genelde ana prosedür içerisinden CALL komutu yardımı ile çağrılır. Açılan her prosedür açıldığı adla birlikte kapatılır. Bunu kullanan komut ise ENDP’dir. Prosedür çağrılarının aynı segmentte mi yada başka bir segmentte mi olduğunu ifade eden FAR ve NEAR operandları mevcuttur. Segment dışı çağrılar için FAR operandı segment içi çağrılar için ise NEAR operandı kullanılır.

Basit bir prosedür kullanımı aşağıdaki gibidir… Prosedürlerle yazılmış bir programın programcıya sağladığı faydalar şunlardır: Tekrarlı komut yazımından kazanç sağlar. Ortak prosedürler kullanılarak komut sayısı azaltılır. Daha iyi bir program analizi sağlar. Program hataları açık bir şekilde görülür. Prosedürlerin düzeltilmesi kolaylaşır.

İçiçe geçmiş bir prosedür yapısı..

ASSUME TALİMATI Assume talimatı hangi segment kaydedicilerini kullanacağını tanımlar. Kullanım şekli aşağıdaki gibidir. Segment kaydedicileri CS, DS, SS ve ES’dir. Yukarıdaki kullanım şeklinde segment_kaydedicisi yerine bu dördünden biri yazılır. Segment_adı ise kullanıcı tarafından belirlenir. Bir segmente atanan segment kaydedicisi, program içerisinde daha sonraları istenildiğinde yeni bir assume ile değiştirlebilir.

END Talimatı End talimatı başlatılan işlemin sonlandırılması anlamındadır. Yanına gelen takılar ile işlevdeki hareketi sonlandırır. ENDS ile segment sonu, ENDP ile prosedür sonu, Takısız END hali ile programın sona erdiğini ifade eder.