Lecture 7. Assembler language nedir? Language in 3 seviyesi. Language 3 seviyesi. Nicin onu ogreniriz?



Benzer belgeler
BM-311 Bilgisayar Mimarisi

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Ozet. Review pointers (in C) Memory Addressing

Memory. Amac. Baslangictan beri programcilar unlimited hizli memory ler hayal etmisler 1972, PDP-11/20. Oku H&P sections 7.1, 7.2

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

BM-311 Bilgisayar Mimarisi

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

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

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

Assembly Language Programming

MIPS assembler language de branching

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Onluk duzende toplama. Lecture 4. Addition and Subtraction. Onluk tabanda toplama

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

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

Komutların Yürütülmesi

Giris {\} /\ Suhap SAHIN

Bölüm Bazı Temel Konseptler

MİKROİŞLEMCİLER 1 Ders 1

CISC Complex Instruction Set Computers

Spatial locality nin getirdigi avantaji kullanmak

BM-311 Bilgisayar Mimarisi

Bilgisayar Mimarisi ve Organizasyonu Giriş

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

Mikroçita. Mikroçita Rapor 2:

Logical signals. Active high or asserted logic. Logic threshold, yaklasik 1.4 volts. Read H&P sections B.3, B.4, B.5 Read H&P sections 5.1 and 5.

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

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

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

Cache-Hızlı Hafıza Birimi. Bilgisayar Sistemi Bilgisayarların Anakart Organizasyonu

Mikrobilgisayar Sistemleri ve Assembler

BM-311 Bilgisayar Mimarisi

BİLGİSAYAR MİMARİLERİ

İşlemci Tasarımı ve Aşamaları

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

İşletim Sistemlerine Giriş

Bilgisayar Donanımı. Computer Organization Ders 1 - Giriş Kadir Atilla TOKER

Mikrobilgisayar Mimarisi ve Programlama

BİLGİSAYAR SİSTEMLERİ

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

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Yrd.Doç.Dr. Celal Murat KANDEMİR

DONANIM ÖZELL KLER YARDIMCI LEMC ÖZELL KLER BELLEK B R M YLE ÇALI MA ÖZELL KLER

MİKROİŞLEMCİ MİMARİLERİ

Multiplication/division

K uark projesi. Temel Özellikler :

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

ALGORİTMA VE PROGRAMLAMA I

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı Ver:01

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

PROGRAMLAMAYA GİRİŞ DERS 2

PC is updated PS güncellenir

Komut Seti Mimarisi (ISA)

2. Bölüm Programlama Bilgisi

C-Serisi PLC İleri Seviye Eğitim

Embedded(Gömülü)Sistem Nedir?

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

BM-311 Bilgisayar Mimarisi

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

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ü)

Mikrobilgisayar Mimarisi ve Programlama

BM-311 Bilgisayar Mimarisi


EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

Pre-requisite : EE240

ncü Bilgi İşleyen Makine Olarak Beyin Beyin 2005 Albert Long Hall, Boğazi

C++ Dersi: Nesne Tabanlı Programlama

Eğitim Amaçlı Temel Bir Mikrobilgisayarın Tasarlanması ve Gerçeklemesi Design and Implementation of a Basic Microcomputer for Educational Purpose

Ilgili prefixes ler. 2 nin kuvvetleri. 2 nin kuvvetleri

İşletim Sistemleri (Operating Systems)

BİLGİSAYAR ORGANİZASYONU

SAYISAL TASARIM. Ege Üniversitesi Ege MYO Mekatronik Programı

BM-311 Bilgisayar Mimarisi

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

DERS 1 GİRİŞ İÇERİK - PIC DSP

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

Ders - 1. BİL 221 Bilgisayar Yapısı GİRİŞ. Ders Hakkında. Ders İzlencesi

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Bilgisayar Mimarisi. Elektroniğe Giriş 1.1. Bilgisayar Mimarisi

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

BM-311 Bilgisayar Mimarisi

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

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Bilgisayar Mimarisi. Elektroniğe Giriş 1.1. Bilgisayar Mimarisi

BİLGİSAYAR MİMARİSİ. Halil Özmen

Bilgisayarların Gelişimi

BM-311 Bilgisayar Mimarisi

Lecture. (saat/hafta. hour/week) 4 3/

BİLGİSAYAR MİMARİSİ. Mimariye Giriş. Özer Çelik Matematik-Bilgisayar Bölümü

5.2 Komut Biçimleri Komut Setleri İçin Tasarım Kararları

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

Sınavında sık yapılan temel hatalar:

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

YZM 3102 İşletim Sistemleri

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

İşletim Sistemlerine Giriş

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Transkript:

Lecture 7 Assembler language nedir? Nicin onu ogreniriz? oku sections 3.1-3.4 oku H&P sections A.1 ve A.9 11/25/2004 Bilgisayar Mimarisi 7.1 11/25/2004 Bilgisayar Mimarisi 7.2 Language 3 seviyesi High Level Language (e.g., Java) change = cash - cost - tax; Assembler Lang (one operator per instruction) mov cash, temp sub cost, temp sub tax, temp mov temp, change Language in 3 seviyesi Machine Language 10100101 1011010, 1010010 10010101 1101101, 1110101 10010101 1101001, 1110101 11101101 1101100, 1101101 3 seviyenin hepsi de ayni seyi yaparlar 11/25/2004 Bilgisayar Mimarisi 7.3 11/25/2004 Bilgisayar Mimarisi 7.4

Language 3 seviyesi High level Programci icin en uygunu En kolay anlasilabileni Easiest to understand and write Best productivity (en uretken olani) Productivity birim zamanda yazilan code satir sayisi Minimal Hardware bilgisi Assembler language Numeric degerlerin yerini symbol ler alir Machine language gore daha kolay anlasilir Conditional jums (BEQ) gibi instruction lar kullanilarak program in instruction flow u degistirilebilir High level program larda kullanilmamasi tavsiye edilen go to yu ihlal eder Portable degil. Machine ozeldir 11/25/2004 Bilgisayar Mimarisi 7.5 11/25/2004 Bilgisayar Mimarisi 7.6 Temel philosophic hususlar Assembler language bir machine ne veya machine ailesine ozeldir Hardware-software interface olarak dusunulebilir Hardware le uyumlu design edilmeli 11/25/2004 Bilgisayar Mimarisi 7.7 RISC ve CISC RISC Reduced Instruction Set Computer Basit instruction lar, fakat hizli Bir kac seyi iyi yap CISC Complex Instruction Set Computer Daha cok instruction Ayni seyi daha az sayida instruction kullanarak yap Hardware yavas 11/25/2004 Bilgisayar Mimarisi 7.8

Nicin assembler language ogrenmeliyiz? Softwar i hardware le iliskilendirir Relates software to hardware Opcodes ALU fucntion unu kontrol eder Computer science in temellerindendir Onceden ogrenilmek zorundaydi, simdi de Her nekadar cok az sayida insan assembler kullanarak code yazar Nicin ihtiyac duyulur? Neyin kesin olarak execute edilecegini saglar Nadir ve kritik durumlarada daha efficient ve hizli Cogu kimse gunumuzde assembly language ine ihtiyac duymaksizin program yazmaktadir Assembly dilinde yazilan code larin maintenance i cok pahali 11/25/2004 Bilgisayar Mimarisi 7.9 11/25/2004 Bilgisayar Mimarisi 7.10 Stored program concept Principle of locality Pioneer: John von Neumann Data ve program ayni memory de Fetch ve execute instructions Instructions data yi memory den alir (fetch) Data manipulate edilir ve sonuc tekrar memory e yazilir 11/25/2004 Bilgisayar Mimarisi 7.11 Spatial locality Hemen hemen her zaman bir onceki execute olan instruction a komsu instruction execute edilir Hemen hemen her zaman bir once fetch edilen data ya yakin olan data fetch edilir Temporal locality Execute edilen instruction buyuk bir ihtimalle kisa bir sure icinde tekrar execute edililecektir Fetch edilen data kisa bir sure icinde tekrar fetch edilecektir Locality prensibinden yararlanilarak cache memory ler design edilmistir 11/25/2004 Bilgisayar Mimarisi 7.12

Skewed instruction frequency Bir program in calismasi esnasinda gecen surenin yaklasik %95 i bu program code unun yaklasik %2 sinin execution inde harcanir Dolayisiyle code un %2 sini cok efficient yap, geri kalan kisim pek onemli degil Big Endian byte addressing MSB of 32-bit word Byte 0 Byte 1 Byte 2 Byte 3 Most natural, bytes concatenate naturally Used by majority of computers Used by MIPS 11/25/2004 Bilgisayar Mimarisi 7.13 11/25/2004 Bilgisayar Mimarisi 7.14 Little Endian addressing MSB of 32-bit word Byte 3 Byte 2 Byte 1 Byte 0 Used by some computers 11/25/2004 Bilgisayar Mimarisi 7.15 Operand larin sayisina gore assembly dillerinin tasnifi 3-Operand: ADD A, B, C A = B + C 2-operand: ADD A, B A = A + B 1-operand: ADD A Accumulator = Accumulator + A Classic machine: IBM 407 tabulator 11/25/2004 Bilgisayar Mimarisi 7.16

Register kullanimina gore assembly dillerinin tasnifi Register yok: ADD Mem1, Mem2 Data memory den fetch edilir ve memory e yazilir Sadece register lar uzerinde islem ADD R1,R2 Butun operation lar register lardaki data yi kullanir load ve store instruction larina ihtiyac var Karisik ADD R1, Mem1 Data her iki kaynak dan da temin edilir 11/25/2004 Bilgisayar Mimarisi 7.17 Integrated Development Environment E.g., Visual J++, Visual Studio, Borland Builder Text editor, compiler, linker, loader, run-time exception handlink ve I/O, hepsi kolaylik acisindan ayni package da temin edilir Asagi yukari 10 yillik bir mazisi var 11/25/2004 Bilgisayar Mimarisi 7.18 Klasik yolla code uretimi Bir text editor u kullanilarak source code olusturulur Compiler bu olusturulan source file i input alarak cagrilir, ve object file olusturulur Enter source code into a text file with editor Object file, language in service routine leri (I/O, math gibi) kullanilarak link edilir ve sonucta executable olusturulur (linker) Executable file memory e yuklenerek calismaya baslanir (loader) MIPS nedir? High-speed RISC computer ureten sirket Sun Microsystems tarafindan satin alindi Cesitli graphic hardware lerinde kullanilan processor H&P textbook MIPS microprocessor u promote etmektedir 11/25/2004 Bilgisayar Mimarisi 7.19 11/25/2004 Bilgisayar Mimarisi 7.20

Diger assembly language ler Assembler language and hardware 40 yildan beri yuzlerce degisik microprocessor gelistirildi Her birinin kendi assembly language i var Ornek IBM PC: 8086-80486 Motorola PowerPC Sun s Sparc 11/25/2004 Bilgisayar Mimarisi 7.21 Memory nin CPU daki uzantisina Register File denir Register File bir grup register lardan olusur Ornek: MIPS 32 tane genel amacli register (32 general purpose registers) 32 tane floating point register CPU register lar uzerindeki data da islem yapar ve sonuc tekrar register a yazilir Register spilling nedir? 11/25/2004 Bilgisayar Mimarisi 7.22 Logic gate lerle depolama gerceklenebilir Bunlar flip-flop diye adlandirilirlar Flip-flop bir bit lik bilgi saklar Nand gate lerden yapilan flip-flop (sonraki slide) Flip-flop, basic unit of storage *A *B Y *Y When *A goes low, the flip-flop is set When *B goes low, the flip-flop is cleared When both inputs are high, the flip-flop keeps its value 11/25/2004 Bilgisayar Mimarisi 7.23 11/25/2004 Bilgisayar Mimarisi 7.24

Package flip-flops into a register with many separate bits Data In Data Out Simplified diagram of N-bit ALU A N ALU Select (from instruction Op Code) N Y Capture or Take B N 4 Z N C V 11/25/2004 Bilgisayar Mimarisi 7.25 11/25/2004 Bilgisayar Mimarisi 7.26 Opcode CPU Diagram, 3-operand assembler language IR R1 R2 Select R3 M U X Ta ALU General Registers Tb PC MAR Address Data M U X MEM CPU diyagramindan aciklamalar PC: Program Counter Execute edilen instruction in address ini tutar MAR: Memory Address Register Erisilen memory (data icin) in address ini tutar Ta ve Tb ALU ya input olarak gelen verileri tutar 11/25/2004 Bilgisayar Mimarisi 7.27 11/25/2004 Bilgisayar Mimarisi 7.28

CPU diyagramindan aciklamalar IR: Instruction Register Memory den CPU ya execute edilmek uzere getirilen instruction i tutar Instruction 4 kisimdan (fields) olusur Opcode: ALU select lines larini surer (ALU nun hangi operation I yapmasi gerektigine karar verir) R1,R2,R3 uc operand li instruction lar icin uzerlerinde islem yapilan register larin address lerini tutar 11/25/2004 Bilgisayar Mimarisi 7.29 Assembly instructionlarin gruplanmasi Data movement (load, store, ) (45.28) Program flow control (branch, call, return, ) (28.73) Arithmetic (10.75) Compare (5.92) Logical (3.91) Shift (2.93) Bit manipulation (2.05) Input/output and miscellaneous (0.44) 11/25/2004 Bilgisayar Mimarisi 7.30 Assembler instruction lar nasil calisir MIPS instruction: lw $t2, 0($t1) Her bir instruction bir microsequence baslatir Microsequence veriyi CPU ya yonlendirir ve yapilmasi gereken micro adimlari belirler PC nin gosterdigi (address ledigi) instruction memory den fetch edilir ( memory den IR ye yazilir) (Instruction fetch) IR ye getirilen instruction in code u cozumlenir (opcode, register lar vb.) (instruction decode) $t1 register ina 0 eklenerek erisilecek bellek gozunun address i bulunur ve bulunan address MAR a yazilir MAR in belirledigi memory gozu $t2 register ine yuklenir 11/25/2004 Bilgisayar Mimarisi 7.31 11/25/2004 Bilgisayar Mimarisi 7.32

add $t2, $t1, $t0 sw $t2, 0($t1) 11/25/2004 Bilgisayar Mimarisi 7.33