Anda di halaman 1dari 14

Mikroprosessor ada 3 komponen penting

1. ALU : mengolah data


2. CU : Mengontrol semua sistem yg ada di dalam MP
3. Register : untuk menyimpan data sementara pada saat MP mengola

operand = data
set instruksi : 1010100011
instruksi = perintah
Opcode = Operation Code
complement = negasi --> 1 jadi 0 atau 0 jadi 1

Memory 4096 x 16 bit = 4 Kword


lebar data 16bit
saluran alamat = 12 bit 0000 0000 0000B
memory
0 000H
program 1000h
4K 2000h
FFFFH
data
4095 FFFH
16 bit

Format instruksi terdiri dari kode operasi dan Alamat


15 14 1211 0
I Opcode address I = artinya untuk menunjukka
1 bit 3 bit 12 bit I = 0 direct (langsung)
I = 1 indirect (tidak langsung)
opcode ada 4 bit, berapa jumlah operasi yang mungkin dimiliki oleh MP
2 pangkat 4 = 16 operasi berbeda
bahasa assembly hanya 3 huruf
contoh ADDER --> ADD ACC : Accumulator adalah
LOAD TO ACC --> LDA
STORE TO MEMORY FROM ACC --> STA
Bahasa mesin --> kode biner --> kode hexa

set instruksi dibagi 3 :


1. MRI --> Opcode : 000 - 110
instruksi ini untuk mengakses memory
direct 0000 - 0110
indirect 1000 - 1110
XXX = alamat memory --> 000H samapai FFFH
memory
Acc
457 1350 4D62

FFF E000 3A12


F211
1350 F211 4D62

Format Instruksi 1001 0100 0101 0111


Register IR
direct bahasa assembly Bahasa mesin
ADD 457 : ACC <-- ACC + M[457] 1457H
indirect ADD (457) : ACC <-- ACC + M[M[457]] 9457H
atau ADD 457 I : ACC <-- ACC + M[M[457]] 9FFF

SIKLUS INSTRUKSI
FETCH Mengambil instruksi dari memory
DECODE Menterjemahkan instruksi
EXECUTE Menjalankan instruksi

bahasa tingkat tinggi : C = A + B


bahasa assembly
Load A artinya mengambil data dari memory
ADD B 0101 artinya jumlahkan data yang ada di dalam ACC dengan
STORE C 0010 artinya simpan hasil penjumlahan ke alamat C

memory REGISTER MP
instruksi 300 1940 1 300 PC
301 5941 0000
302 2941 1940

data 940 0003 2 301 PC


941 0005 0003
1940

3 301 PC
0003
5941

4 302 PC
0005
5941

5 302 PC
0005
2941

6 303 PC
0005
2941
saat MP mengolah data

untuk menunjukkan Indirect dan direct


tidak langsung)
cumulator adalah sebuah register MP
0001
am ACC dengan data yg ada di alamat B
amat C

Fetch
ACC
IR

Decode - Execute
ACC
IR

F
ACC
IR

D- E
ACC
IR

F
ACC
IR

D- E
ACC
IR
SIKLUS INSTRUKSI MP BAHASA ASSEM
FETCH Mengambil instruksi dari memory CLA
DECODE Menterjemahkan instruksi LDA 700
EXECUTE Menjalankan instruksi AND 701 I
INC
CMA
ADD 704
alamat MEMORY STA 702
000 HLT

Register MP
500 7800
501 2700 1 Fetch
INSTRUKSI 502 8701 500 PC
503 7020 89FF ACC
504 3702 7800 IR
505 7001
506

5. F
DATA 700 0EC1 502 PC
701 147F 0EC1 ACC
702 00C2 8701 IR

9. F
147F 10FF 504 PC
00C2 ACC
3702 IR
16 bit

0EC1 0000 1110 1100 0001


10FF 0001 0000 1111 1111
0000 0000 1100 0001
00C1

Aulia + Insan Adzka + Ahmadsyah Fauzi (kel 2) = 100


Mario + Winter + Andika Wahyu = 100
BAHASA ASSEMBLY
membersihkan / me-reset register Accumulator
LDA 700 masukkan data dari alamat 700 ke dalam ACC ; ACC <--- M[700]
AND 701 I ACC <--- ACC AND M[M[701]]
Increment : ditambah 1 ; ACC <--- ACC + 1

ADD 704
STA 702 Simpan data dari ACC ke alamat 702 ; M[702] <--- ACC
Halt : selesai/berhenti

2 decode - execute 3. F 4. D - E
501 PC 501 PC 502 PC
0000 ACC 0000 ACC 0EC1 ACC
7800 IR 2700 IR 2700 IR

6. D - E 7.F 8.D - E
503 PC 503 PC 504 PC
00C1 ACC 00C1 ACC 00C2 ACC
8701 IR 7020 IR 7020 IR

10. D - E 11. F 12. D - E


505 PC 505 PC 506 PC
00C2 ACC 00C2 ACC 00C2 ACC
3702 IR 7001 IR 7001 IR

110 1100 0001 1111 0001 0011 1110


000 1111 1111
000 1100 0001
koreksi error
menggunakan kode Hamming
D8 D7 D6 D5 D4 D3 D2 D1
diketahui : Data input 8 bit : 0 0 1 1 1 0 0 1 CHECK BIT DATA TSB : 0 1
panjang data yang disimpan ke dalam memory : D + C = 8 + 4 = 12
menurut kode hamming bit paritas SEC : 4 bit
pertanyaan brp C ?? 4 4 bit : C4 C3 C2 C1

posisi bit Posisi Angka check bit Data bit


12 1100 D8 C1 = D1 XOR D2 XO
11 1011 D7 C2 = D1 XOR D3 XO
10 1010 D6 C3 = D2 XOR D3 XO
9 1001 D5 C4 = D5 XOR D6 XO
8 1000 C4
7 0111 D4 C1 = 1 XOR 0 XOR 1
6 0110 D3 C2 = 1 XOR 0 XOR 1
5 0101 D2 C3 = 0 XOR 0 XOR 1
4 0100 C3 C4 = 1 XOR 1 XOR 0
3 0011 D1
2 0010 C2
1 0001 C1
compare
data dikeluarkan dari memory : 0 0 1 1 1 1 0 1 C4 C3 C2 C1
0 1 1 1
C1 = 1 XOR 0 XOR 1 XOR 1 XOR 0 = 1 0 0 0 1
C2 = 1 XOR 1 XOR 1 XOR 1 XOR 0 = 0 XOR 0 1 1 0
C3 = 0 XOR 1 XOR 1 XOR 0 = 0 desimal --> posisi b
C4 = 1 XOR 1 XOR 0 XOR 0 = 0
check bit data yg terjadi error : 0 0 0 1 kesimpulan : pada posisi b
yang mengalami Error
BIT DATA TSB : 0 1 1 1

C1 = D1 XOR D2 XOR D4 XOR D5 XOR D7


C2 = D1 XOR D3 XOR D4 XOR D6 XOR D7
C3 = D2 XOR D3 XOR D4 XOR D8
C4 = D5 XOR D6 XOR D7 XOR D8

C1 = 1 XOR 0 XOR 1 XOR 1 XOR 0 = 1


C2 = 1 XOR 0 XOR 1 XOR 1 XOR 0 = 1
C3 = 0 XOR 0 XOR 1 XOR 0 = 1
C4 = 1 XOR 1 XOR 0 XOR 0 = 0

compare
C4 C3 C2 C1
0 1 1 1
0 0 0 1
0 1 1 0
desimal --> posisi bit = 6

pulan : pada posisi bit ke-6 terdapat data bit ke-3


mengalami Error

Anda mungkin juga menyukai