Top Banner

of 38

Assembly Language Programs and Instruction Set Variation

Mar 01, 2018

Download

Documents

Ardi Sah
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    1/38

    Arsitektur Dan Organisasi Komputer

    Kelompok : INTEL

    Anggota :

    Hanafiah 13.04.1041

    Leonard Samone 13.04.104!

    Ag"ng #$i %ri&amodo 13.04.1043

    '.Ali (an"din 13.04.104)

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    2/38

    7 Assembly LanguagePrograms

    Sesuatu hal yang lain yang dibutuhkan untuk membangundan menjalankan program Assembly

    1. Menyediakan ino untuk assembler tentang program dandatanya

    !. instruksi non"hard#are yang didukung untuk kemudahan

    Topik di BAB ini

    1. Mesin dan $ahasa Assembly!. Assembly Direkti%. intruksi pseduo&. 'nstruksi makro

    (. Loading dan pemutan). $erjalan ke kumpulan program

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    3/38

    Program$ahasa

    Mesin

    Langkah Langkah dalam mengubah program bahasa assembly untuk dieksekusi dan program berada di memori

    As

    semble

    r

    Linker

    loader

    Progra

    m$

    ahasa

    Ass

    embly *ksekusi

    Program

    $ahasaMesin

    MemoriKonten

    7.1 Mesin Dan $ahasa Assembly

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    4/38

    Symbol +able

    Program $ahasa Assembly adalah ,ersi dari bahasa mesin dan tabelsimbol itu yang dibuat selama proses Assembly

    0 00100000000100000000000000001001addi $s0,$zero,9

    test

    done

    result12

    28

    248

    4 00000010000100000100000000100010

    8 00000001001000000000000000100000

    12 00010101000100000000000000001100

    16 00100001000010000000000000000001

    20 00000010000000000100100000100000

    24 00001000000000000000000000000011

    28 10101111100010010000000011111000

    Determined from assemblerdirectives not shown here

    Symbol

    table

    done: sw $t1,result($gp)

    sub $t0,$s0,$s0

    add $t1,$zero,$zero

    test: bne $t0,$s0,done

    addi $t0,$t0,1

    add $t1,$s0,$zero

    j test

    Assembly language program Machine language programLocation

    op rs rt rd sh fn

    Field boundaries shown to facilitate understanding

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    5/38

    7.! Assembler Dire-ti,es

    assembler direkti memberikan ino tentang -ara menerjemahkan programtersebut tapi tidak mengarah ke generasi dari instru-tion ma-hine

    .macro # start macro (see Section 7.4)

    .end_macro # end macro (see Section 7.4)

    .text # start programs text segment ... # program text goes here

    .data # start programs data segment

    tiny: .byte 156!x7a# name " initiai$e data byte(s)

    max: .%ord &5!!! # name " initiai$e data %ord(s)

    sma: .'oat *& # name short 'oat (see +hapter 1)

    big: .do,be *& # name ong 'oat (see +hapter 1)

    .aign # aign next item on %ord bo,ndary

    array: .space 6!! # reser-e 6!! bytes 15! %ords

    str1: .ascii /a0b # name " initiai$e 2S+33 string

    str: .ascii$ /xy$ # n,*terminated 2S+33 string

    .goba main # consider /main a goba name

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    6/38

    omposing Simple Assembler

    Dire-ti,es

    Menulis assembler direkti untuk men-apai masing"masing tujuan sebagai berikut/

    a. Menempatkan pesan kesalahan 0Peringatan/ Printer kehabisan kertas0 Di

    memory

    b. Mengatur konstan disebut 0ukuran0 dengan nilai &

    -. Mendirikan sebuah ,ariabel integer disebut 0#idth0 dan menginisialisasi ke &

    d. Mengatur konstan disebut 0pabrik0 dengan nilai 1.222.222 3satu juta4.

    e. -adangan ruang untuk integer ,ektor 0,ektor0 panjang !(2.

    ! "enyelesaian #

    a! noppr: .ascii$ /arning: he printer is o,t o' paper

    b! si$e: .byte 4 # sma constant 'its in one byte

    c! %idth: .%ord 4 # byte co,d be eno,gh b,t ...

    d! mi: .%ord 1!!!!!! # constant too arge 'or byte

    e! -ect: .space 1!!! # 5! %ords 1!!! bytes

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    7/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide 7

    7.% Pseudo instru-tions

    $ontoh dari one%to%one pseudo instruction# Sebagai beri&ut

    not s! # compement (s!)

    Di &onversi &e 'nstru&si yang nyata #

    nor s!s!$ero # compement (s!)

    $ontoh dari one%to%several pseudo instruction# Sebagai beri&ut

    abs t!s! # p,t 8(s!)8 into t!

    Di &onversi &e deretan istru&si yang nyata # Sebagai (eri&ut

    add t!s!$ero # copy x into t!

    st att!$ero # is x negati-e9be at$ero;4 # i' not s

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    8/38

    MiniM'PSPseudo"

    instru-tions

    Pseudoinstruction Usage

    Move mo-e regdregs

    Load address a regdaddress

    Load immediate i regdanyimm

    Absolute value abs regdregs

    )egate neg regdregs

    Multiply *into register+ m, regdreg1reg

    Divide *into register+ di- regdreg1reg

    ,emainder rem regdreg1reg

    Set greater than sgt regdreg1reg

    Set less or e-ual se regdreg1reg

    Set greater or e-ual sge regdreg1reg

    ,otate left ro regdreg1reg

    ,otate right ror regdreg1reg

    )./ not regLoad doubleword d regdaddress

    Store doubleword sd regdaddress

    (ranch less than bt reg1reg>

    (ranch greater than bgt reg1reg>

    (ranch less or e-ual be reg1reg>

    (ranch greater or e-ual bge reg1reg>

    $opy

    $ontrol transfer

    Shift

    Arithmetic

    Memory access

    Logic

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    9/38

    7.& Ma-ro instru-tions

    Makro adalah sebuah mekanisme untukmeberikan nama ke deretan istruksi yang seringdigunakan 3 otasi Singkat 4

    .macro name(args) # macro and arg,ments named

    ... # instrs de'ining the macro

    .end_macro # macro terminator

    $agaimana perbedaan ma-ro dari psuedo instru-tion 8

    Pseudo yang telah ditetapkan6 diperbaiki6 dan terlihat seperti

    instruksi mesin Ma-ro ditetapkan pengguna dan mirip denganprosedur 3memiliki argumen4

    $agaimana perbedaan makro dari prosedur8

    Kontrol ditranser dan kembali dari prosedur Setelah makro sudahdiganti6 tidak ada jejak tetap

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    10/38

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    11/38

    7.( Linking and Loading

    linker memiliki tanggung ja#ab sebagai berikut/ Memastikan penasiran yang benar 3resolusi4 dari label di semua modul Menentukan penempatan teks dan data segmen dalam memori Menge,aluasi semua alamat data dan label instruksi Membentuk program yang dapat dieksekusi tanpa reerensi yang belumterselesaikan

    loader yang bertugas sebagai berikut/ Menentukan kebutuhan memori program dari header Menyalin teks dan data dari

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    12/38

    7.) =unning AssemblerPrograms

    Spim adalah simulator yang dapat menjalankanprogram MiniM'PSama spim berasal dari membalikkan huru M'PS

    +iga ,ersi spim yang tersedia untuk di do#nload

    se-ara gratis /

    PSpim untuk mesin >indo#s

    9spim untuk ?"#indo#s

    spim untuk sistem @ni9

    Anda dapat men"do#nload spim dari/

    http#00www!cs!wisc!edu0larus0spim!html

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    13/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide 1%

    'nputOutput on,entions or MiniM'PS

    /able !2 'nput0output and control functions of syscain "$Spim!

    ($v0) Function Arguments Result

    1 Print integer Integer in a! Integer displayed

    2 Print floating-point Float in '1 Float displayed

    3Print double-float Double-float in '1

    ,'1& Double-float displayed

    4 Print string Pointer in a! Null-terminated string displayed

    Read integer Integer returned in-!

    5 Read floating-point Float returned in'!

    Read double-float Double-float returned in '!,'1

    8 Read string Pointer in a!, length in a1 String returned in buffer at pointer

    6 Allocate memory Number of bytes in a! Pointer to memory block in -!

    17 !it from program Program e!ecution terminated

    .

    utput

    'nput

    $ntl

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    14/38

    Status bar

    Menu bar

    /ools bar

    File

    Simulator

    "indo#

    $penSa%e &og F ile!it

    'ile( )essages* 'e! t Segment+ Data Segment Registers .onsole.lear .onsole'oolbarStatus bar

    .lear RegistersReinitiali/eReload0o1reak.ontinueSingle Step)ultiple Step 2221reakpoints 222Set 3alue 222Disp Symbol 'ableSettings 222

    For 4elp, press F(

    PCSpim

    Registers

    File Simulator "indo# 4elp

    @+ !!4!!!!! @+ !!!!!!!! +a,se !!!!!!!!Stat,s !!!!!!!! A3 !!!!!!!! >B !!!!!!!!

    Cenera DegistersD! (r!) ! DE (t!) ! D16 (s!) ! D4D1 (at) ! DF (t1) ! D17 (s1) ! D5

    G!x!!4!!!!!H !x!c1!!!!E Ia !x!!4!!!! GmainH ? 4&G!x!!4!!!!4H !x!!!!!!1 add, ! ! ! ? 44G!x!!4!!!!EH !x4!!!!a addi, ! 1! ? 45G!x!!4!!!!cH !x!!!!!!!c sysca ? 46G!x!!4!!!1!H !x!!!!!!1 add, ! ! ! ? 47

    J22G!x1!!!!!!!H !x!!!!!!!! !x6c6F6146 !x!!6465G!x1!!!!!1!H !x676e6F74 !x444441! !x6554!!!aG!x1!!!!!!H !x4441!67 !x!!!a4F44 !x747&6554

    'e!t Segment

    Data Segment

    )essages

    1ase5(6 Pseudo5(, )apped5(6 &oad'rap57

    ?

    See the 'ie D2JK 'or a ', copyright notice.Kemory and registers ha-e been ceared and the sim,ator rei

    J:LtempLdosLSSL2,bare.s has been s,ccess',y oaded

    PSpim@ser

    'ntera-e

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    15/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture Slide 1(

    B 'nstru-tion SetCariations

    Topics in This Chapter

    8!1 $omple9 'nstructions

    8!2 Alternative Addressing Modes

    8!3 :ariations in 'nstruction ;ormats

    8!4 'nstruction Set Design and

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    16/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide 1)

    =e,ie# o Some Key on-epts

    (erbeda dari "rusedur> di

    dalam ma&ro diganti

    dengan instu&si yg setara

    Semua yang samapanjang

    ields digunakan

    se-ara konsisten3de-oding sederhana4

    Dapat memulaipemba-aan registerbahkan sebelumde-oding instruksi

    Macroinstruction

    'nstruction'nstruction'nstruction

    ;ormat instru&si untu& simple ,'S$ design

    Microinstruction

    MicroinstructionMicroinstructionMicroinstructionMicroinstruction

    'nstruction

    bits bits

    31 2 27 1 7

    .pcode Sourceregister 1

    Sourceregister 2

    op rs rt

    R 5 bits bits

    rd

    bits

    sh

    5 bits

    17 fn

    Destinationregister

    Shiftamount

    .pcodee9tension

    'mmediate operandor address offset

    31 2 27 1 7

    .pcode Destinationor data

    Sourceor base

    op rs rt operand / offset

    I bits5 bits 15 bits bits

    7 7 7 7 7 7 7 7 7 7 71 1 1 1 11 7 7 7 7 7 7 7 7 7

    31 7

    .pcode

    op jump target address

    J

    Memory word address *byte address di vided by 4+

    25 bits

    2

    5 bits

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    17/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide 17

    B.1 omple9 'nstru-tions

    /able 8!1 *partial+ $ontoh%contoh comple9 instruction di dalam dua popular

    microprocessor moderen dan dua &eluarga &omputer

    Machine Instruction ffect

    "entium KBMS Memindah&an satu element dalam string byte> &ata>atau &ata ganda mengguna&an alamat yangditentu&an dalam dua pointer register> setelah operasi>&enai&an atau penurunan register untu& menun?u&an

    &e elemen string beri&utnya

    "ower"$ cnt$d Menghitung ?umlah 7s berturut%turut dalam registersource yang ditentu&an dimulai dengan bit posisi 7dan menempat&an hitungan dalam tu?uan register

    '(M 357%37 +S (anding&an dan swap # membanding&an isi registerdengan sebuah lo&asi memori@ ?i&a tida& sama>

    memuat memory word &edalam register> ?i&a samasimpan &onten dari register yang berbeda &elo&asiyang sama!

    Digital :A @B>NJ dengan presisi ygsangat tinggi dalam hasil yg menengah! menguna&antabel &oefisien yang lo&asinya di dalam memori di

    beri&an didalam instru&si

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    18/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide 1B

    $eberapa rin-ian dari -ontoh -omple9instru-tion

    KBMS*Move string+

    Source

    string

    Destination

    string

    cnt$d*$ount leading 7s+

    7777 7717 1177 7111

    7777 7777 7777 7117

    5 leading 7s

    @B>NJ*"olynomial evaluation in

    double floating%point+

    cnB1xnB1C ! ! !C c2x

    2C c1xC c7

    .oefficients

    x

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    19/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide 1E

    Manaat dan kerugian dari omple9instru-tion

    Sedi&it instru&si didalammemori *memori lebih sedi&it+

    "otensi e&se&usi lebih cepat

    *Lang&ah%lang&ah yang&omple&s masih dila&u&an

    berurutan dalam beberapa

    si&lus> tetapi &ontrol hardware

    dapat lebih cepat dari loop

    software+

    A&ses memori yg lebih sedi&it

    untu& instru&si

    "rogram dapat men?adi lebih

    mudah untu& ditulis 0 dibaca 0

    dipahami

    format yang lebih &omple&s*Decoding lebih lambat+

    &urang fle&sibel *Satu

    algoritma untu& evaluasi

    polinomial atau pemilahanmung&in tida& men?adi yang

    terbai& dalam semua &asus+

    i&a interupsi diproses di a&hir

    si&lus instru&si> Mesinmung&in men?adi &urang

    responsif terhadap "eristiwa

    wa&tu%&ritis *interrupt

    handling+

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    20/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !2

    B.! Mode Pengalamatan Alternani,e

    ;igure !11 S&ema representasi mode pengalamatan di MiniM'"S!

    LetEs

    refresh

    our

    memory

    *from$hap! +

    Addressing 'nstruction .ther elements involved .perand

    'mplied

    'mmediate

    ,egister

    (ase

    "$%relative

    "seudodirect

    Some place

    in the machine

    if re-uired

    ,eg file,eg spec ,eg data

    MemoryAdd

    ,eg file

    Memaddr

    $onstant offset

    ,eg base ,egdata

    Memdata

    Add

    "$

    $onstant offset

    Memory

    Memaddr Mem

    data

    MemoryMemdata

    "$ Memaddr

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    21/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !1

    +able ).!

    Instruction Usage

    Move from Fi m'hi rd

    Move from Lo m'o rd

    Add unsigned add, rdrsrt

    Subtract unsigned s,b, rdrsrt

    Multiply m,t rsrt

    Multiply unsigned m,t, rsrt

    Divide di- rsrt

    Divide unsigned di-, rsrtAdd immediate unsigned addi, rsrtimm

    Shift left logical s rdrtsh

    Shift right logical sr rdrtsh

    Shift right arithmetic sra rdrtsh

    Shift left logical variable s- rdrtrs

    Shift right logical variable sr- rdrtrs

    Shift right arith variable sra- rdrtrs

    Load byte b rtimm(rs)

    Load byte unsigned b, rtimm(rs)

    Store byte sb rtimm(rs)

    ump and lin& Ia >

    S stem call sysca

    Instruction Usage

    Load upper immediate ,i rtimm

    Add add rdrsrt

    Subtract s,b rdrsrt

    Set less than st rdrsrt

    Add immediate addi rtrsimm

    Set less than immediate sti rdrsimm

    A)D and rdrsrt

    ., or rdrsrt., xor rdrsrt

    )., nor rdrsrt

    A)D immediate andi rtrsimm

    ., immediate ori rtrsimm

    ., immediate xori rtrsimm

    Load word % rtimm(rs)

    Store word s% rtimm(rs)

    ump I >

    ump register Ir rs

    (ranch less than 7 bt$ rs>

    (ranch e-ual be rsrt>

    (ranch not e ual bne rsrt>

    Addressing Mode

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    22/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !!

    Mode Pengelamatan yang lebih rumit

    ;igure 8!1 S&ema representasi dari mode pengalamatan

    yang lebih rumit yang tida& didu&ung di MiniM'"S!

    x : OGiH

    x : KemGpH

    p : p ; 1

    x : OGiH

    i : i ; 1

    t : KemGpH

    x : KemGtHx:KemGKemGpHH

    Addressing 'nstruction .ther elements involved .perand

    Mem data"$

    Mem addr

    Memory

    MemoryAdd,eg file Mem

    addr Memdata'nde9 reg

    (ase reg

    Memory,eg file

    Memaddr Mem

    data

    'ncrement amount

    (ase reg

    'ndirect

    'nde9ed

    Gpdate*with base+

    Gpdate*with inde9ed+ MemoryAdd

    ,eg file Memaddr Mem

    data

    'nde9 reg

    (ase reg

    'ncrementamount

    Memory

    Mem addr>2nd access

    Mem data>2nd access

    /his part maybe replaced with anyother form of address specification

    'ncre%ment

    'ncrement

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    23/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !%

    Kegunaan dari beberapa Mode Pengalamatan yang rumit

    Gpdate mode# .,ing a string of bytes

    oop: b t!2(s!)

    xor s1s1t!

    addi s!s!*1

    bne s!$erooop

    .ne instruction with

    update addressing

    'ndirect mode# $ase statement

    case: % t!!(s!) # get s

    add t!t!t! # 'orm s

    add t!t!t! # 'orm 4s

    a t1 # base add t1t!t1

    % t!(t1) # entry

    Ir t

    L7

    L1

    L2

    L3

    L4

    L

    /

    /C4

    /C27

    /C15

    /C12

    /C8

    (ranch to location Liif s H i*switch var!+

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    24/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !&

    B.% Cariasi ormat 'nstruksi

    ;igure 8!2 ontoh dari MiniM'PS instruksi dengan 2"%alamatF bidang yang diarsir belum digunakan.

    7%> 1%> 2%> dan 3 alamat instru&si di MiniM'"S

    3%address

    7%address

    1%address

    2%address

    sysca##

    I

    m,#t

    add

    .ne implied operand in register 7-!

    Destination and two source registers addressed

    /wo source registers addressed> destination implied

    ump target addressed *in pseudodirect form+

    $ategory ;ormat .pcode Description of operand*s+

    Address2

    12

    rtrs7 24

    rtrs7 rd 32

    7

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    25/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !(

    Gero"Address Ar-hite-ture/ Sta-k Ma-hine

    Stac& menyimpan semua operands *Mengganti file ,egister+

    .perasi Load0Store men?adi push0pop

    .perasi Arithmetic0logic hanya memerlu&an sebuah opcode # pop

    operand dari punca& stac& dan push hasilnya &e stac&

    Anda mung&in harus push

    beberapa &ali

    Special instructions seperti IDuplicateJ dan ISwapJ men?adi sangat

    membantu

    "olish string# a b C d c B

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    26/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !)

    One"Address Ar-hite-ture/ A--umulatorMa-hine

    A&umulator> register &husus yang mele&at pada ALG> selalu

    menampung operand 1 dan operation resultFanya satu operan yang perlu ditetap&an oleh instru&si

    Kondisi atautarget address harus tersirat

    (ranch to L if acc negative

    i&a register 9 adalah negative s&ip the ne9t

    instruction

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    27/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !7

    +#o"Address Ar-hite-tures

    Dua alamat dapat diguna&an dalam berbagai cara

    .perand10result and operand 2

    $ondition to be chec&ed and branch target address

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    28/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !B

    $omponents that form a variable%length 'A%32 *87985+ instruction!

    *9ample o a omple9 'nstru-tion ormat

    .ffset or displacement *7> 1> 2> or 4 (+

    'mmediate *7> 1> 2> or 4 (+

    .pcode *1%2 (+

    'nstruction prefi9es *ero to four> 1 ( each+

    Mod ,eg0.p ,0M Scale 'nde9 (ase

    Mod,0M S'(

    .perand0addresssie overwrites and

    other modifiers

    Most memory

    operands need

    these 2 bytes

    'nstructions can

    contain

    up to 1 bytes

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    29/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide !E

    ;igure 8!3 misalnya 'nstruksi B29B) lebar mulai dari 1hingga ) byteF instruksi yang lebih luas 3hingga 1( bytes4juga ada

    Some o 'A"%!Hs Cariable">idth 'nstru-tions

    4%byte

    1%byte

    2%byte

    3%byte

    5%byte

    %byte

    /ype ;ormat *field widths shown+ .pcode Description of operand*s+

    885

    @PSA

    Q)

    KBM

    RBD

    3%bit register specification

    8%bit register0mode> 8%bit base0inde9>

    8%bit offset

    8%bit register0mode> 8%bit offset

    4%bit condition> 8%bit ?ump offset

    2JJ

    5)S5 8%bit register0mode> 32%bit immediate

    3%bit register spec> 32%bit immediate

    3

    4 4 8

    3 324

    8 32

    88 88

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    30/38

    Atribut yang diingin&an dari sebuah set instru&si !

    "onsisten> dengan seragam dan aturan umum yang berla&u!

    #rthogonal> dengan fitur independen noninterfering!

    Transparan> tanpa efe& samping terlihat &arena rincian pela&sanaan

    as$ to lear/user*sering produ& sampingan dari tiga atribut di atas +!

    %tensi&le> sehingga memung&in&an penambahan &emampuan masa

    depan!

    fisien> bai& dari segi &ebutuhan memori dan realisasi hardware!

    B.& Desain Set 'nstruksi and *,olusi

    ;igure 8!4 Desain "rosesor dan 'mplementasi "roses!

    "ro%

    cessordesignteam

    )ewmachinepro?ect

    /uning bug fi9es

    "erformanceob?ectives

    'nstruction%setdefinition

    'mple%men%tation ;abrica%

    tion testing

    Sales

    use

    ;eedbac&

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    31/38

    B.( +he ='S'SDi-hotomy

    Fitur arsitektur RISC :

    1.set instruksi kecil , masing-masing dieksekusi di sekitar waktu ang sama

    !."oad # store arsitektur $ ang le%i& mengara& ke register '

    (.mode pengalamatan ang ter%atas untuk meneder&anakan per&itungan alamat

    ).Seder&ana , *ormat instruksi ang seragam $ kemuda&an decoding '

    RISC $ reduced instruction set komputer ' +lsa*at : ompleks setinstruksi ang tidak diinginkan karena dimasukkanna mekanismeuntuk mena*sirkan semua kemungkinan kom%inasi dari opcodes danoperan mungkin memperlam%at operasi %a&kan sangat seder&ana

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    32/38

    ='S 'S Perbandingan melalui Iukum Jeneralied Amdahl

    'SA memiliki dua kelas sederhana 3S4 dan kompleks 34 instruksi.Pada implementasi reerensi dari 'SA6 instruksi kelas"S a--ountuntuk E( dari #aktu berjalan untuk program menarik. Sebuah,ersi ='S mesin sedang dipertimbangkan yang mengeksekusihanya petunjuk kelas"S se-ara langsung dalam perangkat keras6

    dengan instruksi kelas diperlakukan sebagai petunjuk semu.Diperkirakan dalam ,ersi ='S6 instruksi kelas"S akan berjalan!2 lebih -epat sementara instruksi kelas" akan melambatdengan aktor %. Apakah pendekatan ='S mena#arkan lebih baikatau kinerja buruk dibandingkan dengan implementasi reerensi8

    Solusinya / Per asumsi6 26E( dari pekerjaan diper-epat dengan

    aktor 162 26B 16!(6 sedangkan sisanya ( diperlambatdengan aktor %. ='S speedup adalah 1 N2.E( 1.!( 262( 9 % 1.1. Dengan demikian6 peningkatan 12 dalam kinerja dapatdiharapkan dalam ,ersi ='S.

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    33/38

    $eberapa Manaat +ersembunyi dari

    ='S

    Pada ontoh B.16 kita menetapkan bah#a aktorspeedup dari 161 dapat diharapkan dari ,ersi ='Smesin hipotetis.'ni bukan seluruh -erita6 namun .

    5ika speedup 161 datang dengan beberapa biayatambahan6 maka salah satu mungkin sahbertanya"tanya apakah itu layak biaya dan usahadesain.

    ='S ,ersi arsitektur juga/Mengurangi usaha dan tim ukuran untuk desain

    Mempersingkat pengujian dan debugging ase

    dokumentasi disederhanakan dan pemeliharaan.

    produk yang lebihmurah dan #aktuyang pendek untukkepasar

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    34/38

    5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture

    Slide %&

    M'PS Penilaian Kinerja untuk standar

    An m%M'"S processor dapat menge&se&usi m jutaan instruksi per detik

    Membandingkan prosesor m"M'PS dengan prosesor 12m"M'PSSeperti membandingkan dua orang yang memba-a halaman m danhalaman 12m per jam

    Memba-a 122 halaman per jam6 dibandingkan dengan 12halaman per jam6 mungkin tidak memungkinkan Anda untukmenyelesaikan tugas memba-a hal yang sama di 112 #aktu

    17 pages 0 hr 177 pages 0 hr

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    35/38

    ='S 'S Kon,ergensi

    Desain ='S a#al/D ))226 superkomputer yang sangat ino,ati dari pertengahan 1E)2"an

    '$M B216 berpengaruh -hip tunggal proyek prosesor dari akhir 1E72"an

    "Pada a#al 1EB2"an6 dua proyek memba#a ='S ke permukaan/@ $erkeley ='S 1 dan !6 pelopor dari SPA= Sun

    Stanord M'PS6 kemudian dipasarkan oleh sebuah perusahaandengan nama yang sama

    "Sepanjang tahun 1EB26 ada perdebatan panas tentang manaatrelati dari ='S dan 'S arsitektur.

    "Sejak tahun 1EE2"an6 perdebatan telah didinginkan

    "hard#are kita sekarang dapat menikmati kedua set manaatdengan memiliki instruksi yang kompleks se-ara otomatisditerjemahkan ke urutan instruksi yang sangat sederhana yangkemudian dieksekusi pada ='S berbasis

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    36/38

    B.) >here to Dra# Line

    /he ultimate reduced instruction set computer *G,'S$+#

    $erapa banyak instruksi yang benar"benar diperlukan untuk perhitunganyang berguna8

    Ianya satu

    kurangi source1 dari sumber 2, menggantikan sumber 2 dengan hasilnya, danmelompat untuk menargetkan alamat jika hasilnya negatif

    orm $ahasa Assembly/

    label: dest urisc, src 1, Target

    'nstruksi Pseudo dapat disintesis menggunakan instruksi tunggal/

    stop: .%ord !

    start: ,risc destdest;1 # dest !,risc temptemp;1 # temp !

    ,risc tempsrc;1 # temp *(src)

    ,risc desttemp;1 # dest *(temp)? i.e. (src)

    ... # rest o' program

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    37/38

    $eberapa Petunjuk Pseudo $erguna

    untuk @='S

    Menulis urutan instruksi yang dihasilkan oleh assembler @='Suntuk setiap petunjuk semu berikut.

    parta: ,add destsrc1src #dest(src1);(src)

    partc: ,I abe #goto abe

    Solusi :

    A+1 dan at! adalah lokasi memori sementara untuk perakitmenggunakan

    parta: ,risc at1at1;1 #at1 !

    ,risc at1src1;1 #at1 *(src1)

    ,risc at1src;1 #at1 *(src1)=(src) ,risc destdest;1 #dest !

    ,risc destat1;1 #dest *(at1)

    partc: ,risc at1at1;1 #at1 !

    ,risc at1oneabe #at1 *1 to 'orce I,mp

  • 7/25/2019 Assembly Language Programs and Instruction Set Variation

    38/38