Anda di halaman 1dari 24

KULIAH 2

Review kuliah yang lalu Alamat, lokasi & operasi memory Instruksi & urutan instruksi Contoh-contoh eksekusi instruksi

KOMPONEN KOMPUTER

ELEMEN CPU
CPU
Memory

PC IR R0
:

MAR

MDR

Rn

MDR: kadang disebut MBR


3

ELEMEN CPU
PC (Program Counter): berisi alamat instruksi yang akan dieksekusi

IR (Instruction Register): berisi instruksi yang saat ini sedang dieksekusi


MAR (Memory Address Register): berisi alamat dari memory yang akan diakses MBR/MDR (Memory Buffer/Data Register) berisi data yang di READ dari memory, atau yang akan di WRITE ke memory R0, R1, . , Rn: general register yang digunakan untuk proses di CPU

SIKLUS INSTRUKSI
Dua tahap:
Siklus penjemputan (Fetch cycle) Siklus eksekusi (Execute cycle)

Contoh Eksekusi Program

PROSES EKSEKUSI INSTRUKSI


Siklus fetch:
MAR [PC] Increment PC READ

[isi PC dimasukkan ke MAR]

} bisa dijadikan satu

IR [MDR]

Siklus eksekusi: (Misal Move A,R3)


MAR [IR]ADDR
READ R3 [MDR]
7

{Bag. Alamat dari IR}

Lokasi & alamat memory


n bit kata (word) 0 kata (word) 1

kata (word) ke i

kata (word) terakhir


8

b31 b30

b1

b0

B31=0 untuk bilangan positif, 1 untuk bilangan negatif

8 bit
Karakter ASCII

8 bit
Karakter ASCII

8 bit
Karakter ASCII

8 bit
Karakter ASCII

OPCODE

src
src: source

dst
dst: destination

10000100111000110000110110101000 ?
9

Word address 0

Byte address

Word address

Byte address

0 4

1 5

2 6

3 7

0 4

3 7

2 6

1 5

0 4

2k-4

2k-4

2k-3

2k-2

2k-1

2k-4

2k-1

2k-2

2k-3

2k-4
10

Big-endian

Little-endian

BENTUK INSTRUKSI
Transfer data antara memory dengan register Operasi aritmatika & logika Urutan program dan control Transfer input/output

11

Transfer register
Move LOC,R1 R1 [LOC] Add R1,R2,R3 R3 [R1] + [R2] Bagaimana instruksi untuk C = A + B ?
1. Add A,B,C Instruksi dengan 3 alamat 2. Add A,B Move B,C Instruksi dengan 2 alamat 3. Load A Add B Store C Instruksi dengan 1 alamat
12

Bagaimana dengan instruksi ini


Move A,R1 Move B,R2 Add R1,R2 Move R2,C

Move A,R1 Add B,R1 Move R1,C


13

PROGRAM UNTUK C=[A]+[B]


Address

i i+4 i+8

Move A,R1 Add B,R1 Move R1,C

Segmen program

A Data untuk program

C
14

Program untuk penambahan n bilangan


Address i
Move NUM1,R0

i+4 i+8

Add NUM2,R0
Add Num3,R0

i+4n-4 i+4n

Add NUMn,R0
Move R0,SUM

SUM NUM1
NUM2 NUMn
15

Generic Addressing Modes


Name
Immediate Register Absolute (Direct) Indirect Index Base with index Base with index and offset Relative Autoincrement Autodecrement

Assembler syntax
#Value Ri LOC (Ri) (LOC) X(Ri) (Ri,Rj) X(Ri,Rj) X(PC) (Ri)+ -(Ri)

Addressing function
Operand = Value EA = Ri EA = LOC EA = [Ri] EA = [LOC] EA = [Ri] + X EA = [Ri] + [Rj] EA = [Ri] + [Rj] + X EA = [PC] + X EA = [Ri] ; increment Ri Decrement Ri ; EA = [Ri]

EA = Effective Address
16

Move A,(R2)
Siklus fetch: MAR [PC] Increment PC, READ IR [MDR] Siklus eksekusi: MAR [IR]ADDR SRC READ MAR [R2] WRITE

atau MAR A

17

APA HASIL EKSEKUSINYA?


100 104 108 220 -600 983 R2 2000 R1 1000

2000 2004 450 -3001

3000
3004

-330
12345

Add #2000,R2 Add 2000,R2 Move 1000(R1),R2 Add (R2),(R1) Add (R2)+,R1 Move (R1,R2),R2 Add 4(R1,R2),R1 18

Move 100(R1),(R2)+ ?
Siklus fetch: MAR [PC] Increment PC, READ IR [MDR] Siklus eksekusi: MAR 100 + [R1] READ MAR [R2] WRITE Increment R2

19

Add 100(R1),(R2)+ ?
Siklus fetch: MAR [PC] Increment PC, READ IR [MDR] Siklus eksekusi: MAR 100 + [R1] READ R0 [MDR] MAR [R2] Increment R2, READ MDR [R0] + [MDR] WRITE

20

Apa yang dilakukan program ini?


Move Move Clear Add Add Decrement Branch>0 Move N,R1 #NUM1,R2 R0 (R2),R0 #4,R2 R1 LOOP R0,SUM
21

LOOP

CONDITION CODES
Prosesor selalu melacak hasil setiap operasi untuk digunakan pada operasi pencabangan (branch) berikutnya. Hal ini dilakukan dengan menyimpan hasilnya dalam bit-bit tertentu yang disebut condition code flag. Flag-flag ini biasanya disimpan dalam register khusus yang disebut condition code register atau status register. Empat flag yang sering digunakan adalah: N (Negative) Z (Zero) V (Overflow) C (Carry) = 1 bila hasil operasi negatif = 1 bila hasil operasi 0 (nol) = 1 bila terjadi overflow = 1 bila ada carry
22

Apa yang dilakukan program ini?


N LIST LIST+4 LIST+8 LIST+12 LIST+16 n NRP Mhs Tes1 Tes2 Tes2 NRP Mhs Tes1 Tes2 Tes2

LOOP

Move #LIST,R0 Clear R1 Clear R2 Clear R3 Move N,R4 Add 4(R0),R1 Add 8(R0),R2 Add 12(R0),R3 Add #16,R0 Decrement R4 Branch >0 LOOP Move R1,SUM1 Move R2,SUM2 Move R3,SUM3
23

PEKERJAN RUMAH
Baca Bab I & II buku Hamacher Kerjakan soal no. 2.1; 2.2; 2.3; 2.5; 2.8; 2,9 & 2.13 Dikumpulkan minggu depan

24

Anda mungkin juga menyukai