DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #3

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

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ. PC-SPIMGirişi(MIPS R2000 Simulatörü)

NESNEYE YÖNELİK PROGRAMLAMA

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ

MIPS assembler language de branching

MTM 305 MİKROİŞLEMCİLER

K uark projesi. Temel Özellikler :

Bölüm 10. Altprogramları Uygulamak

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6

BM-311 Bilgisayar Mimarisi

Bölüm 10. Altprogramların gerçeklenmesi ISBN

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

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

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

BM-311 Bilgisayar Mimarisi

HSancak Nesne Tabanlı Programlama I Ders Notları

Bölüm 9. Altprogramlar ISBN

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

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

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

İşletim Sistemlerine Giriş

Komutların Yürütülmesi

BM-311 Bilgisayar Mimarisi

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

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

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Yrd. Doç. Dr. Caner ÖZCAN

BM-311 Bilgisayar Mimarisi

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

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

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

İşletim Sistemlerine Giriş

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 13 Fonksiyonlar

İşletim Sistemlerine Giriş

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

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

GÜMÜŞHANE ÜNĐVERSĐTESĐ MÜHENDĐSLĐK VE DOĞA BĐLĐMLERĐ FAKÜLTESĐ ELEKTRĐK-ELEKTRONĐK MÜHENDĐSLĐĞĐ EEM 114 ALGORĐTMA TASARIMI VE PROGRAMLAMA DĐLLERĐ

Komut Seti Mimarisi (ISA)

8086 Mikroişlemcisi Komut Seti

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Komut Seti Mimarisi (ISA)

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Dr. Fatih AY Tel:

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

BİL 361 BİLGİSAYAR MİMARİSİ VE ORGANİZASYONU Güz Dönemi ÖDEV 1

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

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

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

ALGORİTMA VE PROGRAMLAMA II

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

Giris {\} /\ Suhap SAHIN

Linux Assembly Programlamaya Giriş

Operatörlerin Aşırı Yüklenmesi

Java da İşleçler, Ders #3 (4 Kasım 2009)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

Bilgisayar Sistemlerine Genel Bakış

Timer İle arka plan renk değişimi

BM-311 Bilgisayar Mimarisi

SPARC v8 İŞLEMCİ SİMÜLASYONU

public static int Toplam int x, int y

ALGORİTMA NEDİR? (Adım adım işlem basamaklarının yazılmasıdır.)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

YMT219 VERİ YAPILARI ÖDEV-1

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

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

Bölüm1. İlk Bilgiler ISBN

BLM 112- Programlama Dilleri II. Hafta 1 Giriş, Kapsama Kuralları ve Rasgele Sayı Üretimi

Bilgisayar Mimarisi ve Organizasyonu Giriş

Mikroişlemci ve Yapısı. Mikroişlemciler ve Mikrobilgisayarlar

Bölüm 3 Yapısal Programlama

Mikroişlemciler (EE 208) Ders Detayları

BİLG Dr. Mustafa T. Babagil 1

Mikrobilgisayar Mimarisi ve Programlama

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

«BM364» Veritabanı Uygulamaları

Bilgisayar Programlama. Giriş

Fonksiyonlar - Functions. Örnek. Örneğin. C dilinde 5/13/2011. ENF-102 Jeoloji

PIC ASSEMBLY VE MAKROLAR

BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ

11- FONKSİYONLAR (FUNCTIONS)

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Transkript:

1.Giriş DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #3 MIPS Modülar Programlamada Jump-and-Link (jal) ve Jump-Return (jr) Komutlarının Kullanımı Programcılar bir programı birimselleştirmek için altyordam kullanır. Böylece program anlaşılması kolaylaşır ve kod parçaları tekrar kullanılabilir. Bir komut takımı program birimleri kurmak için yordam çağır ve yordamdan dön gibi destekleyici komutlar sağlamalıdır. Ayrıca yordama değiştirgeleri nasıl aktaracağımız ve yordam çağrılarını nasıl iç içe koyacağımız gibi konularda kurallar gerekir. Modülar programlama için MIPS de belirlenmiş iki komut bulunur. Bu komutlar: Jump-and-link (jal) and Jump-register (jr). jal YordamAdresi: jal önce birsonraki yeri göstermek üzere program sayacını arttırır (PC PC+4), ardından bu değeri r31 -e saklar. MIPS -in yordamdan dönüş için dönüş-adresine-atla (jump-returnaddress yada jump to register) komutu bulunur. Bu komutun anımsatıcısı jr -dir, ve dönüş adresini içeren yazmacı belirten bir tek işleneni vardır. jal dönüş adresini r31-e sakladığından, jr genellikle $31 ile kullanılır: jr $31

jr $31, yürütürken r31 -in içeriğini (dönüş adresi) PC -ye kopyalar, veböylece r31 -te saklanan adrese atlamış olur. Eğer bir prosedür başka prosedürü çağırırsa $31 yazmaçındaki eski değer LIFO(son-gelen-ilkgider) yığınında kaydedilmelidir. MIPS komutları parametrelerin nasıl çağrıldığını ve içiçe yordam çağrılarını açıklar. Yazmaçlar özel amaçlar için gruplandırılımıştır. 1. $0: 0 içerir, $1: çevirici pseudocode için yer ayırır. 2. $2 ve $3 çağırılandan(callee) çağırana(caller) döndürülen değer yada döndürülen değerin göstergesi için kullanılır. 3. $4, $5, $6 ve $7 çağırandan (caller) çağırılana (callee) argümanların aktarılması için kullanılır. 4. $8 $15 çağrılan (callee) kayıt yazmaçlarıdır. 5. $16 $23 çağıran (caller) kayıt yazmaçlarıdır. 6. $28 global very göstergesidir ve static very segmentini gösterir. 7. $29 yığın-göstergesi ve yığının en üstteki adresini gösterir. Bu deneyde sadece çağırılan-kayıt ve çevirici pseudo-kodu kullanacağız. 2.Deneysel Çalışma 1. İçiçe yordam çağrıları: Aşağıdaki C programı MIPS ile yazılmış ve jal ve jr komutlarının nasıl çalıştığını görebilirsiniz. Bu program belirli bir başlangıç indeksinden bitiş indeksine kadar tekrarlanan çağrılarda dizinin toplamını bulur.

Aşağıdaki kod MIPS assembly kodu ile ilgilidir..data 0x10000000 A:.word 3,5,6,2,0,4.text 0x00400000.globl main main: la $a0, A li $a1, 6 jal fun move $s0, $v0 syscall fun: addi $sp, $sp, -8 addi $s0, $a1, -1 # Compute size - 1 sw $s0, 0($sp) # Save size - 1 to stack sw $ra, 4($sp) # Save return address bne $a1, $zero, L1 # branch! ( size == 0 ) li $v0, 0 # Set return value to 0 addi $sp, $sp, 8 jr $ra # Return L1: move $a1, $s0 # update second arg jal fun lw $s0, 0($sp) # Restore size - 1 from stack li $t7, 4 # t7 = 4 mult $s0, $t7 # Multiple size - 1 by 4 mflo $t1 # Put result in t1 add $t1, $t1, $a0 # Compute & arr[ size - 1 ] lw $t2, 0($t1) # t2 = arr[ size - 1 ] add $v0, $v0, $t2 # retval = $v0 + arr[size - 1] lw $ra, 4($sp) # restore return address from stack addi $sp, $sp, 8 jr $ra # Return

İlk olarak başlangıç PC adresi ØxØØ4ØØØØØ olmalıdır. Programı yükleyin ve programı f10 ile çalıştırın. Yığın-listesinin içeriğini rapora yazınız, ve jr $31 yazmaçını gördüğünüzde değerini yazınız. Bölüm-2 Programlama örneği: Bu deneyde size verilen C kodunu MIPS koduna çeviriniz.

İsim: Öğrenci No: DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #3 Bölüm-1: jr $31 komutunu ilk çalıştırdığımızda yığının içeriğini yazınız. İçiçe yordam çağrılarının derinliği nedir? Yığında kaç tane sözcük tutulur? Bölüm-2: Programlama Ödevi 1. C kodunu MIPS koduna çevirin. 2. Hesaplanan dizi elemanlarının içeriğini aşağıya yazınız (onaltılık tabanda). Deney Notu: