Bab 2. Instructions: Bahasa dari Komputer

dokumen-dokumen yang mirip
INSTRUKSI MIPS. agussalim

Instruksi-Instruksi MIPS

Eksekusi instruksi Tipe R, LW-SW, Beq, Jump, dan Model Pengalamatan (Pertemuan ke-24)

Kumpulan Instruksi dan Assembly MIPS (Pertemuan ke-25)

Eksekusi instruksi Tipe R, LW-SW, Beq, dan Jump (Pertemuan ke-24)

Kumpulan instruksi lengkap yang dimengerti

Unit Kendali (2) CONTROL UNIT. RegDst Branch. MemRead. MemToReg. Instruction (31-26) ALUOp MemWrite. ALUSrc. RegWrite

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-3: Bahasa Rakitan AVR

PERTEMUAN MINGGU KE-5 ARSITEKTUR SET INSTRUKSI

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-3: Bahasa Rakitan AVR

Set Instruksi: Set instruksi?

ARSITEKTUR KOMPUTER SET INSTRUKSI

MAKALAH MODE DAN FORMAT PENGALAMATAN SET INSTRUKSI. Nama : Annisa Christyanti Kelas : XI TJA 3 NIS :

William Stallings Computer Organization and Architecture. Chapter 9 Set Instruksi: Karakteristik dan Fungsi

Arsitektur Set Instruksi. Abdul Syukur

MODUL 5 : PCSPIM DAN BAHASA ASSEMBLY MIPS (Bagian 1)

Arsitektur dan Organisasi Komputer. Set instruksi dan Pengalamatan

ORGANISASI KOMPUTER S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Instruksi Mesin & Program PROGRAM STUDI

ARSITEKTUR SET INSTRUKSI. Ptputraastawa.wordpress.com

Arsitektur dan Organisasi Komputer Set Intruksi

Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan

Instructions Set. Element dari instruction. Representasi dari Op code

Hanif Fakhrurroja, MT

Assembly MIPS (bag-2) (Pertemuan ke-26)

SET INSTRUKSI. Organisasi dan Arsitektur Komputer

Set Instruksi & Mode Pengalamatan. Team Dosen Telkom University 2016

Pertemuan Ke-7 INSTRUCTION SET

Karakteristik Instruksi Mesin

BAHASA MESIN. PDE - bahasa mesin 1

ARSITEKTUR DAN ORGANISASI KOMPUTER

Pertemuan 6-7 : Set Instruksi

Arsitektur dan Organisasi

CENTRAL PROCESSING UNIT CPU

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM I MODEL PEMROGRAMAN 1

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK

INSTRUKSI DASAR Salahuddin, SST.

IKI20210 Pengantar Organisasi Komputer Kuliah no. 1b: Basic Operations

SOAL UAS SISTEM KOMPUTER Kelas XI RPL & TKJ

ARSITEKTUR DAN ORGANISASI KOMPUTER

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

Mikrokontroller Berbasiskan RISC 8 bits

CENTRAL PROCESSING UNIT (CPU) Sebuah mesin tipe von neumann

Pertemuan Ke-12 RISC dan CISC

ORGANISASI KOMPUTER MOTOROLA MATA KULIAH:

10. Konsep Operasional Prosessor dan Memori

ORGANISASI KOMPUTER INSTRUKSI MESIN DAN PROGRAM MATA KULIAH:

Microcontroller: Bahasa Pemrograman Assembly 8051

STRUKTUR CPU. Arsitektur Komputer

IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-2: Arsitektur Set Instruksi

Soal Komunikasi Data Kelas XI TKJ

Intermediate Code Form

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

DCH1B3 Konfigurasi Perangkat Keras Komputer SAP-2

ARSITEKTUR DAN ORGANISASI KOMPUTER Aditya Wikan Mahastama

Arsitektur Prosesor MIPS Multi Siklus (Pertemuan ke-27)

3. MODE PENGALAMATAN CHAERUL UMAM, S.KOM

Hanif Fakhrurroja, MT

Materi 3: Instruction Set

CENTRAL PROCESSING UNIT (CPU)

Perangkat dan format Instruksi, Immediate, Direct, & Indirect Addressing

Organisasi & Arsitektur Komputer

Teknologi Scalar untuk meningkatkan Kinerja Prosesor

Materi 4: Assembly Language Programming

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Learning Outcomes. akan mampu : (C3) perancangan compiler yang paling optimal (C4)

Operasi Transfer Data

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

Arsitektur MIPS Satu Siklus (Pertemuan ke-23)

BAHASA RAKITAN. Kuliah I : Pengenalan. Universitas Gunadarma. Bahasa Rakitan

ARSITEKTUR DAN ORGANISASI KOMPUTER

SISTEM KERJA MIKROPROSESOR

ORGANISASI DAN ARSITEKTUR KOMPUTER

Simple As Possible (SAP) - 2. Abdul Syukur

ORGANISASI KOMPUTER DASAR

SET INSTRUKSI. ORGANISASI DAN ARSITEKTUR KOMPUTER

Organisasi Sistem Komputer

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

Mode Pengalamatan. Ada dua cara yang biasa digunakan dalam penempatan

Aditya Wikan Mahastama

DASAR KOMPUTER. Assembly Language

Tipe Instruksi. Data processing. Data storage. Data movement. Control. Instruksi aritmatika dan logika. Instruksi untuk Memory. Instruksi untuk I/O

MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL

Pertemuan ke 7 Mode Pengalamatan. Computer Organization Eko Budi Setiawan

Pertemuan 2 Organisasi Komputer II. Struktur & Fungsi CPU (I)

Sistem Komputer. Komputer terdiri dari CPU, Memory dan I/O (Arsitektur Von-Neumann) Ada tiga bus dalam sistem komputer

BAB VI ARSITEKTUR KOMPUTER

Struktur Fungsi CPU. Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2013/2014 STMIK Dumai -- Materi 03 --

PERANCANGAN CONTROL UNIT, PROGRAM COUNTER (PC), DAN MEMORI INSTRUKSI PADA PROSESSOR RISC 16-BIT DENGAN TEKNOLOGI 600nm MENGGUNAKAN ELECTRIC

Pertemuan ke - 5 Struktur CPU

Operasi Unit Kontrol. Arsitektur Komputer II. STMIK AUB Surakarta

DASAR KOMPUTER DAN PEMROGRAMAN

Lampiran A : Listing Instruksi Lampiran B : Tabel

Perangkat Lunak Untuk Simulasi Penerapan Modus Pengalamatan Dan Operasi Aritmatika Bahasa Rakitan Pada Mikroprosesor 8086/8088

Karateristik proses baca dan tulis suatu data pada media disk magnetic, terbagi atas :

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

Diktat Kuliah - Pipeline

Team Stanford University

ORGANISASI DAN ARSITEKTUR KOMPUTER MIPS

Hanif Fakhrurroja, MT

Transkripsi:

Bab 2. Instructions: Bahasa dari Komputer Introduction ke MIPS machine Set dari MIPS instruction MMD 2405 Andi WRE 1

Register vs. Memori Komponen dari sebuah komputer Prosesor, memori, input, dan output Komponen dari sebuah prosesor Control dan Datapath (ALU dan register) Compiler mengasosiasikan variable - variabel dengan register -registernya Bagaimana dengan program yang memiliki banyak variabel? Control Input Memory Datapath Output Processor I/O MMD 2405 Andi WRE 2

Organisasi Memori MIPS 0 1 2 3 4 5 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data Dapat dipandang sebagai sebuah array single dimensi yang besar, dengan sebuah alamat / address Sebuah address memori adalah index dari array Terdapat 2 32 bytes dengan alamat byte dari 0 sampai 2 32-1 Apakah least 2 significant bit dari sebuah word address? Byte addressing berarti bahwa indeks menunjuk pada sebuah byte di memori. Bytes sudah baik, namun banyak item data menggunakan word yang lebih besar Untuk MIPS, sebuah word adalah 32 bit atau 4 byte Jadi, MIPS mempunyai 2 30 word dengan alamat byte di 0, 4, 8,..., 2 32-4 MMD 2405 Andi WRE 3

Organisasi Register MIPS Name Register number Usage $zero 0 the constant value 0 $v0-$v1 2-3 values for results and expression evaluation $a0-$a3 4-7 arguments $t0-$t7 8-15 temporaries $s0-$s7 16-23 saved $t8-$t9 24-25 more temporaries $gp 28 global pointer $sp 29 stack pointer $fp 30 frame pointer $ra 31 return address Register 1 ($at) disimpan untuk assembler, 26-27 untuk operating system MMD 2405 Andi WRE 4

MIPS ISA The MIPS instruction set architecture serupa dengan arsitektur lain yang dikembangkan sejak 1980-an Hampir 100 juta prosesor MIPS dibuat sejak 2002 Digunakan oleh NEC, Nintendo, Cisco, Silicon Graphics, Sony,... 1400 1300 1200 1100 1000 900 800 700 600 500 400 300 200 100 0 Other SPARC Hitachi SH PowerPC Motorola 68K MIPS IA-32 ARM 1998 1999 2000 2001 2002 MMD 2405 Andi WRE 5

Instruksi Aritmetika dari MIPS Semua instruksi memiliki 3 operands Urutan instruksi adalah tetap (yang pertama adalah tujuan) Operand harus register - register (tidak bisa memori) Salah: add 48($s3), $s2, 32($s3) Hanya terdapat 32 register, setiap register terdiri dari 32 bit Contoh 1: Contoh 2: C code: MIPS instruction: C code: MIPS instructions: a = b + c add a, b, c a = b + c + d add a, b, c add a, a, d MMD 2405 Andi WRE 6

Instruksi Memori dari MIPS Instruksi: load (lw) dan store (sw) Contoh: diasumsikan bahwa A adalah sebuah array dari 100 word dan compile mengasosiasikannya variabel h dengan register $s2. Base address dari A adalah $s3. C code: A[12] = h + A[8]; MIPS code: lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 48($s3) Kita dapat mengacu register dengan namanya (misal $s2, $t2) selain dengan angkanya Perintah store: tujuan di akhir MMD 2405 Andi WRE 7

Beberapa Instruksi MIPS Instruksi Arti add $s1, $s2, $s3 $s1 = $s2 + $s3 sub $s1, $s2, $s3 $s1 = $s2 $s3 lw $s1, 100($s2) $s1 = Memory[$s2+100] sw $s1, 100($s2) Memory[$s2+100] = $s1 MMD 2405 Andi WRE 8

Sebuah Contoh Apakah kita dapat mengetahui kode dan angka awal dari register $4 dan $5? swap(int v[], int k); { int temp; temp = v[k] v[k] = v[k+1]; v[k+1] = temp; } swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 MMD 2405 Andi WRE 9

Format Instruksi MIPS Instruksi, seperti register dan data word, juga dalam 32 bit Contoh: add $t0, $s1, $s2 Register memiliki angka, $t0=8, $s1=17, $s2=18 Format Instruksi: 000000 10001 10010 01000 00000 100000 op rs rt rd shamtm funct op=0 $s1=17 $s2=18 $t0=8 =0 =32 Dapat menebak arti dari singkatan diatas? Op: opcode, rs: 1 st register source, rt: 2 nd register source, rd: register destination, shamt: shift amount, funct: function code MMD 2405 Andi WRE 10

R-type: Tiga Format Instruksi MIPS op rs rt rd shamtm funct 6bits 5bits 5bits 5bits 5bits 6bits I-type: op rs rt 16 bit number J-type: 6bits 5bits 5bits 16 bits op 26 bit address 6bits 26 bits MMD 2405 Andi WRE 11

Instruksi Transfer Data MIPS (memori) Perhatikan instruksi load-word dan store-word, Contoh: lw $t0, 32($s2) 35 18 8 32 op rs rt 16 bit number Contoh: sw $t0, 48($s2) 43 18 8 48 op rs rt 16 bit number MMD 2405 Andi WRE 12

Instruksi Kontrol MIPS Instruksi pengambil keputusan mengubah aliran kontrol seperti, mengubah instruksi selanjutnya yang akan dieksekusi Instruksi percabangan kondisional MIPS: bne $t0, $t1, Label beq $t0, $t1, Label Contoh: if (i==j) h = i + j; bne $s0, $s1, Label add $s3, $s0, $s1 Label:... MMD 2405 Andi WRE 13

Instruksi Kontrol MIPS (II) Instruksi MIPS percabangan tanpa kondisional j label Contoh: if (i!=j) beq $s4, $s5, Lab1 h=i+j; add $s3, $s4, $s5 else j Lab2 h=i-j; Lab1: sub $s3, $s4, $s5 Lab2:... MMD 2405 Andi WRE 14

Instruksi MIPS yang Telah Dijelaskan Instruksi Arti add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 $s3 lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1 bne $s4,$s5,l Next instr. is at Label if $s4 $s5 beq $s4,$s5,l Next instr. is at Label if $s4 = $s5 j Label Next instr. is at Label MMD 2405 Andi WRE 15

Konstanta Konstanta kecil sangat sering dipakai (50% dari operands) contoh, A = A + 5; B = B + 1; C = C - 18; Solusi? Bagaimana kalau? Menempatkan konstanta tipikal dalam memori dan me-load-nya Menciptakan register yang ditanam di perangkat keras (seperti $zero) untuk konstanta seperti satu (one). Instruksi MIPS: addi $29, $29, 4 slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 4 MMD 2405 Andi WRE 16

Ringkasan dari Mode Addressing 1. Immediate addressing op rs rt Immediate Contoh: 2. Register addressing op rs rt rd... funct Registers Register 1. Addi $29, $29, 4 3. Base addressing op rs rt Register Address + Memory Byte Halfword Word 1. Add $s1, $s2, $s3 4. PC-relative addressing op rs rt Address Memory 1. Lw $s1, 32($s2) PC + Word 1. Beq $s1, $s2, 25 5. Pseudodirect addressing op Address Memory PC Word 1. J Label MMD 2405 Andi WRE 17

Ringkasan dari Register dan Memori MIPS operands Name Example Comments $s0-$s7, $t0-$t9, $zero, Fast locations for data. In MIPS, data must be in registers to perform 32 registers $a0-$a3, $v0-$v1, $gp, arithmetic. MIPS register $zero always equals 0. Register $at is $fp, $sp, $ra, $at reserved for the assembler to handle large constants. Memory[0], Accessed only by data transfer instructions. MIPS uses byte addresses, so 2 30 memory Memory[4],..., sequential words differ by 4. Memory holds data structures, such as arrays, words Memory[4294967292] and spilled registers, such as those saved on procedure calls. MMD 2405 Andi WRE 18

Ringkasan dari Instruksi Umum MIPS assembly language Category Instruction Example Meaning Comments add add $s1, $s2, $s3 $s1 = $s2 + $s3 Three operands; data in registers Arithmetic subtract sub $s1, $s2, $s3 $s1 = $s2 - $s3 Three operands; data in registers add immediate addi $s1, $s2, 100 $s1 = $s2 + 100 Used to add constants load word lw $s1, 100($s2) $s1 = Memory[$s2 + 100] Word from memory to register store word sw $s1, 100($s2) Memory[$s2 + 100] = $s1 Word from register to memory Data transfer load byte lb $s1, 100($s2) $s1 = Memory[$s2 + 100] Byte from memory to register store byte sb $s1, 100($s2) Memory[$s2 + 100] = $s1 Byte from register to memory load upper immediate lui $s1, 100 $s1 = 100 * 2 16 Loads constant in upper 16 bits branch on equal beq $s1, $s2, 25 if ($s1 == $s2) go to Equal test; PC-relative branch PC + 4 + 100 branch on not equal bne $s1, $s2, 25 if ($s1!= $s2) go to Not equal test; PC-relative Conditional PC + 4 + 100 branch set on less than slt $s1, $s2, $s3 if ($s2 < $s3) $s1 = 1; Compare less than; for beq, bne else $s1 = 0 set less than immediate slti $s1, $s2, 100 if ($s2 < 100) $s1 = 1; else $s1 = 0 Compare less than constant jump j 2500 go to 10000 Jump to target address Uncondi- jump register jr $ra go to $ra For switch, procedure return tional jump jump and link jal 2500 $ra = PC + 4; go to 10000 For procedure call MMD 2405 Andi WRE 19

MMD 2405 Andi WRE 20