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
ELEMEN CPU
PC (Program Counter): berisi alamat instruksi yang akan dieksekusi
SIKLUS INSTRUKSI
Dua tahap:
Siklus penjemputan (Fetch cycle) Siklus eksekusi (Execute cycle)
IR [MDR]
kata (word) ke i
b31 b30
b1
b0
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
i i+4 i+8
Segmen program
C
14
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
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
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
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
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