AT90S8515 - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

AT90S8515

Description:

Data diakses secara acak (tergantung alamat operand) ... Eksekusi instruksi dilakukan mulai dari alamat terkecil ... dengan memberikan alamat baru (tidak ' ... – PowerPoint PPT presentation

Number of Views:284
Avg rating:3.0/5.0
Slides: 45
Provided by: bobbyn4
Category:
Tags: at90s8515 | alamat

less

Transcript and Presenter's Notes

Title: AT90S8515


1
IKI10230Pengantar Organisasi KomputerKuliah no.
3 Machine Instructions
Sumber1. Hamacher. Computer Organization,
ed-5.2. Materi kuliah CS61C/2000 CS152/1997,
UCB.
26 Februari 2003 Bobby Nazief (nazief_at_cs.ui.ac.id)
Qonita Shahab (niet_at_cs.ui.ac.id) bahan kuliah
http//www.cs.ui.ac.id/kuliah/iki10230/
2
Review The Stored Program Computer (2/2)
  • Memori menyimpan instruksi dan data sebagai bit.
  • Instruksi diambil oleh prosesor dari memori,
    diartikan, dan, dieksekusi (operands/data
    diambil, diolah, dan disimpan ke memori).
  • Contoh Instruksi 4-digit
  • Operasi 0 gt add, 1 gt sub
  • Alamat hasil
  • Alamat op1
  • Alamat op2

data
instruksi 0 0745 0add (jenis instruksi),
7addr. result, 4addr op1, 5addr op2
instruksi
Apa yang berada di lokasi 9 setelah eksekusi
instruksi 0, 1, 2?
3
Review Operasi pada Memori
0745 Add (4),(5),(7) M7 ? M4 M5
0745
0 0 7 4 5 1 1 8 7 6 2 0 9 8 6 3 4 0 0 6 1 5 0 0
1 7 6 0 0 0 3 7 0 0 0 0 8 0 0 0 0 9 0 0 0 0
Instruction Fetch
0061
0017
Data (Operand) Read
0078
Data Store (Write)
4
Review Set Instruksi (Bahasa Mesin)
  • Bahasa Mesin ? kumpulan bit yang
    merepresentasikan Operasi Operand
  • Bahasa Rakitan ? representasi dari Bahasa Mesin
    dalam bahasa (kumpulan huruf angka) yang lebih
    mudah dimengerti oleh manusia

mnemonic
  • 0745 Add (4),(5),(7) 7 ? 4 5

5
  • Eksekusi Instruksi

6
Eksekusi Instruksi (1/2)
  • Instruksi dan data bersama-sama berada di memori
  • Data diakses secara acak (tergantung alamat
    operand)
  • Instruksi umumnya dijalankan secara berurut
    (sekuensial)
  • Urutan ini menjamin logika alur program terdapat
    urutan perintah ke mesin.
  • Instruksi disimpan secara berurut pada lokasi di
    memori
  • Eksekusi instruksi dilakukan mulai dari alamat
    terkecil
  • Bagaimana mengetahui posisi instruksi saat ini
    (berikutnya?)
  • Gunakan register khusus Program Counter

7
Eksekusi Instruksi (2/2)
PC (Program Counter)
2
Program couter (PC) berisi alamat
lokasiinstruksi yang akan dieksekusi padasiklus
berikutnya. Setelah instruksi dieksekusi, makaPC
akan increment dan menunjukpada instruksi
berikutnya (next location)PC PC 1 dst ..
dikenal dengan istilah straight line sequencing
8
  • Branching

9
Decision
  • Instruksi aritmatika, transfer data memberikan
    kemampuan kita untuk melakukan komputasi data
  • Sama seperti kalkulator
  • Untuk sebuah komputer, maka diperlukan kemampuan
    untuk memilih, make decisions ..
  • Analogi HLL assembly language harus mendukung
    statementif (condition true) do
    thiselse do thatexit

(false) i ! j
(true) i j
i j?
that
this
Exit
10
Branching
  • Dampak dari pengambilan keputusan yang bergantung
    pada suatu kondisi tertentu adalah terjadinya
    pencabangan (branching)
  • Instruksi tidak lagi diambil dari lokasi memori
    yang berurut, tetapi meloncat ke lokasi
    memori tertentu ? PC diisi dengan nilai baru,
    tidak di-increment
  • Manipulasi PC dengan memberikan alamat baru
    (tidak berurut) juga digunakan untuk mengubah
    alur eksekusi program tanpa bergantung pada
    kondisi tertentu (jump)

11
Branching Contoh
R0 ? Ni
12
Condition Codes
  • Informasi yang berkaitan dengan hasil operasi
    (terutama Aritmatika Logika) disimpan dalam
    Condition Code Flags
  • Kumpulan CC Flags ? Register CC/Status
  • Masing-masing bit dari Register CC/Status
    merepresentasikan
  • N (negative) perhitungan sebelumnya menghasilkan
    bilangan negatif
  • Z (zero) perhitungan sebelumnya menghasilkan
    bilangan 0
  • V (overflow) perhitungan sebelumnya menyebabkan
    overflow
  • C (carry) perhitungan sebelumnya menghasilkan
    carry-out
  • Contoh Penggunaan
  • LOOP . . .
  • Decrement R1 R1 ? R1 - 1
  • Branchgt0 LOOP if (Z ! 0) then LOOP

13
  • Modus Pengalamatan

14
Modus Pengalamatan (1/2)
  • Jenis Syntax Effective Address
  • Immediate Value Operand Value
  • Add 10,R1 R1 ? R1 10
  • Register Ri EA Ri
  • Add R2,R1 R1 ? R1 R2
  • Absolute (Direct) LOC EA LOC
  • Add 100,R1 R1 ? R1 100
  • Indirect-Register (Ri) EA Ri
  • Add (R2),R1 R1 ? R1 R2
  • Indirect-Memory (LOC) EA LOC
  • Add (100),R1 R1 ? R1 100

15
Modus Pengalamatan (2/2)
  • Index X(R2) EA R2 X
  • Add 10(R2),R1 R1 ? R1 R210
  • BaseIndex (R1,R2) EA R1 R2
  • Add (R1,R2),R3 R3 ? R3 R1R2
  • BaseIndexOffset X(R1,R2) EA R1 R2
    X
  • Add 10(R1,R2),R3 R3 ? R3
    R1R210
  • Relative X(PC) EA PC X
  • Beq 10 if (Z1) then PC ? PC10
  • Autoincrement (Ri) EA Ri, Increment Ri
  • Add (R2),R1 R1 ? R1 R2, R2
    ? R2 d
  • Autodecrement -(Ri) Decrement Ri, EA Ri
  • Add -(R2),R1 R2 ? R2 d, R1 ?
    R1 R2

16
Absolute (Direct) Mode
  • Absolute Add 100,R1 R1 ? R1 100

100 200
Add 100,R1
88

17
Immediate vs. Absolute
Move 150,R1 R1 ? EA EA 150
VS.
Move 150,R1 R1 ? 150 EA none
18
Indirect Mode
  • Indirect-Register Add (R2),R1 R1 ? R1
    R2
  • Indirect-Memory Add (100),R1 R1 ? R1
    100

pointer
R2
200
100 200
Add (100),R1
200
Operand
19
Register vs. Indirect-Register
  • Move (R2),R1 R1 ? EA EA R2

VS.
Move R2,R1 R1 ? R2 EA addr.
of R2
20
Immediate vs. Absolute vs. Indirect-Memory
  • Move (150),R1 R1 ? EA EA 150

Move 150,R1 R1 ? EA EA 150
VS.
Move 150,R1 R1 ? 150 EA none
21
Indirect Mode Contoh
  • Move N,R1 number of items
  • Move Num1,R2 points to 1st item
  • Clear R0
  • LOOP Add (R2),R0 R0 stores the sum
  • Add 4,R2 point to the next item
  • Decrement R1
  • Branchgt0 LOOP go to LOOP if not done
  • Move R0,SUM done!

22
Index Mode Contoh
  • Move LIST,R0
  • Clear R1
  • Clear R2
  • Clear R3
  • Move N,R4
  • LOOP Add 4(R0),R1
  • Add 8(R0),R2
  • Add 12(R0),R3
  • Add 16,R0
  • Decrement R4
  • Branchgt0 LOOP
  • Move R1,SUM1
  • Move R2,SUM2
  • Move R3,Sum3

23
Relative Addressing
  • Move LIST,R0
  • Clear R1
  • Clear R2
  • Clear R3
  • Move N,R4
  • LOOP Add 4(R0),R1
  • Add 8(R0),R2
  • Add 12(R0),R3
  • Add 16,R0
  • Decrement R4
  • Branchgt0 LOOP
  • Move R1,SUM1
  • Move R2,SUM2
  • Move R3,Sum3

Hasil perakitan Branchgt0 24 LOOP PC - 24
24
Auto-indecrement Mode
  • Move N,R1
  • Move Num1,R2
  • Clear R0
  • LOOP Add (R2),R0 R0 ? R0 R2,
  • R2 ? R2 d
  • tipe data byte ? d 1
  • tipe data word ? d 2
  • Decrement R1
  • Branchgt0 LOOP
  • Move R0,SUM

25
  • Instruksi I/O

26
Organisasi Input/Output
  • I/O Device biasanya memiliki 2 register
  • 1 register menyatakan kesiapan untuk
    menerima/mengirim data(I/O ready), sering
    disebut Status/Control Register ? SIN, SOUT
  • 1 register berisi data, sering disebut Data
    Register ? DATAIN, DATAOUT
  • Prosesor membaca isi Status Register
    terus-menerus, menunggu I/O device men-set Bit
    Ready di Status Register (0 ? 1)
  • Prosesor kemudian menulis atau membaca data
    ke/dari Data Register
  • tulis/baca ini akan me-reset Bit Ready (1 ? 0)
    di Status Register

27
Contoh Program Input/Output
  • Input Read from keyboard Move LOC,R0
    Initialize memoryREAD TestBit 3,INSTATUS
    Keyboard (IN) ready? Branch0 READ Wait for
    key-in Move DATAIN,(R0) Read character
  • Output Write to displayECHO TestBit 3,OUTSTATU
    S Display (OUT) ready? Branch0 ECHO Wait for
    it Move (R0),DATAOUT Write character Compare C
    R,(R0) Is it CR? Meanwhile, stores
    it Branch?0 READ No, get more Call Process
    Do something

28
  • Stacks, Subroutine Calls

29
Stacks
  • Lokasi memori yang pengaksesan datanya dibatasi
    dengan cara LIFO (Last In, First Out)
  • data terakhir yang disimpan kedalam stack akan
    menjadi data pertama yang diperoleh pada saat
    stack diakses
  • Push memasukkan data ke Stack
  • Pop mengeluarkan data yang berada di
    top-of-stack (TOS) alamat TOS disimpan dalam
    register Stack Pointer (SP)

0
Push
Top-of-Stack SP
Stack
Bottom-of-Stack
Pop
2k-1
30
Operasi pada Stacks
  • Push NewItem Subtract 4,SP
  • Move NewItem,(SP)

Pop Item Move (SP),Item Add 4,SP
SP
19
SPold
-28
17
NewItem
SPold
19
-28
SP
Item
17
Bahaya Overflow
NewItem
19
Item
-28
Bahaya Underflow
31
SubRoutines
  • SubRoutine adalah sekumpulan instruksi yang
    mengerjakan suatu fungsi tertentu dan diakhiri
    dengan instruksi RETURN
  • SubRoutine biasanya dipanggil (CALL) oleh program
    lain dan setelah SubRoutine selesai mengerjakan
    fungsinya, kendali program dikembalikan (RETURN)
    ke program pemanggil

Lokasi Subroutine SUB 1000 instruksi_i . .
. Return
Lokasi Program Utama 200 Call SUB 201 instruksi_be
rikutnya
1000
PC
201
Link
201
32
SubRoutine Call Stacks
  • Lokasi Program Utama
  • Push R1
  • Call SUB
  • Pop R1
  • instruksi_berikutnya

Lokasi Subroutine SUB 1000 instruksi_i . .
. Add R1,R2 . . . Return
33
Passing Parameters via Registers
  • Lokasi Program Utama
  • Move N,R1
  • Move NUM1,R2
  • Call LISTADD
  • Move RO,SUM

Lokasi Subroutine LISTADD LISTADD Clear
R0 LOOP Add (R2),R0 Decrement R1
Branchgt0 LOOP Return
  • Via Registers
  • Caller Subroutine share the same registers
  • Passing by Value n (N) via R1
  • Passing by Reference NUM1 via R2
  • Contoh
  • int sum
  • int n 112
  • int num1 new intn
  • sum ListAdd(n, num1)

34
Passing Parameters via Stack Frame
Lokasi Program Utama Push NUM1 Push N
Call LISTADD Move 4(SP),SUM
Add 8,SP
Lokasi Subroutine LISTADD LISTADD Push
R0 Push R1 Push R2 Move
16(SP),R1 Move 20(SP),R2 Clear
R0 LOOP Add (R2),R0 Decrement R1
Branchgt0 LOOP Move R0,20(SP) Pop
R2 Pop R1 Pop R0 Return
SPSP4SP8SP12SP16SP20
SPSP4
35
Nested Subrouines
Stacking of Subroutine Calls Returns and
Environments
A
A CALL B CALL C
C RET
RET
B
A
B
A
B
C
A
B
A
36
  • Contoh Program

37
Contoh Program Vector Dot Product
  • Dot Procut ? Ai x Bi
  • Move AVEC,R1 R1 points to vector A.
  • Move BVEC,R2 R2 points to vector B.
  • Move N,R3 R3 serves as a counter.
  • Clear R0 R0 accumulates the product.
  • LOOP Move (R1),R4 Compute the product of
  • Multiply (R2),R4 next components.
  • Decrement R3 Decrement the counter.
  • Branchgt0 LOOP Loop again if not done.
  • Move R0,DOTPROD Store the product in memory.

38
Contoh Program Byte Sorting (Algoritme)
  • for (j n 1 j gt 0 j j 1)
  • for (k j 1 k gt 0 k k 1)
  • if (LISTk gt LISTj)
  • TEMP LISTk
  • LISTk LISTj
  • LISTj TEMP

Kondisi Awal
Setelah Iterasi ke-1
39
Contoh Program Byte Sorting
  • Move LIST,R0 R0 points to the list LIST.
  • Move N,R1 Initialize outer loop index.
  • Subtract 1,R1 register R1 to j n - 1.
  • OUTER Move R1,R2 Initialize inner loop index.
  • Subtract 1,R2 register R2 to k j 1.
  • MoveB (R0,R1),R3 Load LIST(j) into R3,
  • which holds current max.
  • INNER CompareB R3,(R0,R2) If LIST(k) ? R3,
  • Branch0 NEXT do not exchange.
  • MoveB (R0,R2),R4 Otherwise, exchange LIST(k)
  • MoveB R3,(R0,R2) with LIST(j) and load
  • MoveB R4,(R0,R1) new max. into R3.
  • MoveB R4,R3 Reg. R4 servers as TEMP.
  • NEXT Decrement R2 Decrement inner loop index.
  • Branch0 INNER
  • Decrement R1 Decrement outer loop index.
  • Branchgt0 OUTER

40
  • Linked Lists

41
Linked Lists
Head
Tail
Link Address
Menambahkan record baru
42
Linked Lists Alokasi Memori
Key field (ID)
Head
Link field
Data field
Tail
43
Pengkodean Informasi Instruksi (1/2)
m bit
n bit
Informasi Lokasi Operanddimana data masukan
bersumber dan/ataudimana hasil operasi disimpan
Kode Operasi
Format Ukuran Instruksi
Variable Fixed Hybrid


44
Pengkodean Informasi Instruksi (2/2)
Format 1-word
Format 2-word
Write a Comment
User Comments (0)
About PowerShow.com