• Tidak ada hasil yang ditemukan

Central Processing Unit (CPU)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Central Processing Unit (CPU)"

Copied!
31
0
0

Teks penuh

(1)

Arsitektur & Instruksi

Mikroprosesor

(2)

Komputer vs

Prosessor

Komputer (Komputer) berbeda dengan Prosessor Unit (Central Processing Unit / MPU). Komputer tersusun atas

Prosessor + unit-unit penyusun komputer lainnya (seperti: Unit I/O, Memori, dan Sistem Bus).

(3)

Central Processing Unit (CPU)

(4)

CPU cont…

CPU merupakan jantung dari komputer, dan melakukan beberapa fungsi berikut:

Memberikan sinyal-sinyal pewaktuan (Clock) dan kontrol untuk semua elemen dalam komputer

1.Mengambil instruksi dan data dari memori

2.Mentransfer data menuju dan dari memori dan elemen

I/O

3.Men-dekode (menterjemahkan) instruksi

4.Melakukan operasi-operasi aritmatika & logika yang

diminta oleh instruksi

5.Merespon sinyal-sinyal kontrol yang diberikan oleh I/O,

(5)

Bahasa Assembly

Bahasa

Assembly

adalah

bahasa

pemrograman

tingkat

rendah,

karena

kemampuannya berinteraksi langsung dengan

perangkat keras (

hardware

) komputer. Disebut

juga dengan bahasa mesin (

machine language

)

karena terdiri dari logika 0 dan 1 (sistem biner)

Bahasa

C,

Basic,

Pascal,

dll

merupakan

beberapa contoh dari bahasa pemrograman

(6)

Beberapa Istilah

Mnemonic (kode operasi):

merupakan istilah untuk kode instruksi (perintah) dalam bahasa assembly, seperti mov, add, jump, etc.

Register :

berfungsi untuk penyimpanan sementara (register serba guna). Digunakan untuk 16 bit (X) dan 8 bit (H,L)

Operand :

adalah suatu item data yang dimanipulasi.

Assembler :

digunakan untuk menerjemahkan bahasa Assembly ke dalam kode mesin (disebut juga dengan kode Objek). Kuliah ini digunakan Turbo Assembler

mov AX, 56FCH

(7)

Microprocessor (

P)

 Pada dasarnya P hanyalah kumpulan register (hardware) yang operasinya ditentukan oleh instruksi mesin yang dapat dieksekusi (software)

 Kumpulan fungsi yang dapat dieksekusi P disebut set instruksi (instruction set)

 Instruksi mesin (machine instruction) terdiri dari kode operasi dan operand yang dispesifikasi dalam kode biner

 Jenis Operand : Alamat, Bilangan, Karakter, dan Data logika

(8)

P

(contin….1)

Jenis Operasi yang dilakukan :

Data Processing / Pengolahan Data

(ALU atau Arithmetic Logic Unit)

Data Movement / Perpindahan Data

Control / Kontrol (Instruksi Pemeriksaan

(9)

Set Instruksi

:

-

Transfer Data (Data Movement)

-

Logika

-

Aritmatika

-

Kontrol

-

String

P

(contin….2)

Data Processing

(10)

REGISTER

Pada CPU, register digunakan untuk menyimpan

informasi sementara. Informasi ini dapat berupa

satu atau dua byte untuk memproses data atau

alamat. Register-register tersebut antara lain:

AX

digunakan sebagai akumulator 2 byte,

BX

sebagai basis pengalamatan register,

CX

digunakan sebagai counter dalam bentuk

operasi,

(11)

Register (Con….1)

a) Fungsi khusus:

-

AX : Akumulator Perkalian, pembagian, … 16

bit. Dibagi menjadi AH dan AL yang

masing-masing 8 bit

-

BX : Penunjuk memori tak langsung terhadap

Data Segment (DS). Dibagi menjadi BH dan

BL

-

CX : Pencacahan / looping. Dibagi menjadi CH

dan CL. CL dimanfaaatkan untuk penggeseran

bit

-

DX : Pengalamatan I/O tak langsung. Dibagi

(12)

Register (Con….2)

b) Register penunjuk (BP, SP) :

Sebagai penunjuk offset dalam mengalamati memori pada operasi stack (penumpukan)

SS : SP SS : BP

c) Register Index :

Digunakan untuk menahan alamat offset untuk istruksi yang menjangkau data yang tersimpan di memori

- SI untuk menyimpan alamat operand sumber (DS : SI)

- DI untuk menyimpan alamat lokasi tujuan operand (DS :

(13)

Register (Con….3)

d) Register Segment :

Digunakan untuk penunjukan alamat memori.

-

CS : Segmen Instruksi

-

DS : Segmen Data

-

SS : Segmen Stack (Penumpukan)

-

ES : Segmen Data Ekstra

e) Register IP :

(14)

Register

Instruction Pointer

IP 16

Flag Register

FR 16

Extra Segment (Reg Segmen)

ES 16

Stack Segment (Reg Segmen)

SS 16

Data Segment (Reg Segmen)

DS 16

Code Segment (Reg Segmen)

CS 16

Data (General Purpose Register) DL 8

DH 8

DX 16

Count (General Purpose Register) CL 8

CH 8

CX 16

Base (General Purpose Register) BL 8

BH 8

BX 16

Akumulator (General Purpose Register) AL 8

AH 8

(15)

Mode Pengalamatan

Menspesifikasikan alamat suatu operand

#

Mode Pengalamatan segera

(Data bilangan

langsung disertakan dengan OpCode)

Contoh : mov AX,

4477

H

#

Mode Pengalamatan Register

(Data sumber

ada dalam register

P)

Contoh : mov AX,

BX

(16)

Mode Pengalamatan (Cont…)

#

Mode Pengalamatan tak Langsung

(Data di memori dan ditunjuk alamatnya dengan isi register)

Contoh : mov ah,[SI]

#

Mode Pengalamatan Berindex

(Data di memori dan ditunjuk dengan reg index + bilangan)

Contoh : mov AX,[SI+6]

#

Mode Pengalamatan Berbasis

(Data di memori dan ditunjuk dengan reg BP / BX + bilangan)

Contoh : mov AX,[BP+2]

#

Mode Pengalamatan String

(17)

Instruksi Transfer Data

 MOV Tujuan,Sumber <movement/pindah> Contoh : mov [0000H],AL

mov AX,BX mov AL,27H

 XCHG Tujuan,Sumber <Exchange/Tukar> Contoh : xchg AX,BX

xchg [0100],BH  In Akumulator Port <Input>

Contoh : In AL,10H In AX,DX

(18)

Instruksi Logika

 AND Tujuan,Sumber AND BX,DX

 OR Tujuan,Sumber OR AH,[0100]

 XOR Tujuan,Sumber XOR AL,01010101

 NOT Tujuan NOT AX

<Hasil operasi disimpan di tujuan>

 TEST Tujuan,Sumber TEST BX,DX

 And Tujuan,Sumber AND BX,DX

(19)

Instruksi Logika (Cont…1)

SHL Tujuan,banyak-geseran

<Shift Logical

Left>

SHL Tujuan,banyak-geseran

<Shift Logical

Right>

SAL Tujuan,banyak-geseran

<Shift Arithmetic

Left>

SAR Tujuan,banyak-geseran

<Shift Arithmetic

Right>

Contoh : SHL AL,1

(20)

Instruksi Logika (Cont…2)

CF X7 X6 X5 X4 X3 X2 X1 X0

X7 X6 X5 X4 X3 X2 X1 X0 0

X7 X7 X6 X5 X4 X3 X2 X1 X0 X0

Before

After

SHL

After

(21)

Instruksi Logika (Cont…3)

RCL Tujuan,banyak-putaran

<Rotate with

Carry Left>

RCR Tujuan,banyak-putaran

<Rotate with

Carry Right>

ROL Tujuan,banyak-putaran

<Rotate Left>

ROR Tujuan,banyak-putaran

<Rotate Right>

Contoh : RCL AL,1

(22)

Instruksi Logika (Cont…4)

CF X7 X6 X5 X4 X3 X2 X1 X0

X7 X6 X5 X4 X3 X2 X1 X0 C

F

X7 X7 X6 X5 X4 X3 X2 X1 X0 X7

Before

After

RCL

After

(23)

Instruksi Aritmetika

 Penjumlahan

ADD Tujuan, Sumber ADD AX,BX

ADC Tujuan, Sumber ADC AX,BX

INC Tujuan, Sumber INC CX

DAA (Decimal Adjust Addition)

AAA (ASCII Adjust Addition)

 Pengurangan

SUB Tujuan, Sumber SUB SI,BX

SBB Tujuan, Sumber SUB [SI],CH

DEC Tujuan DEC CL

NEGTujuan NEG AL

DAS (Decimal Adjust Subtraction)

(24)

Instruksi Aritmetika (Cont…1)

 Perkalian

MUL Sumber <AX  AL x Sumber 8 bit>

MUL BX <DX,AX AX x Sumber 16bit>

IMUL Sumber <Untuk Bilangan bertanda> IMUL CX

 Pembagian

DIV Sumber IDIV Sumber

 Pengaturan

CWB <Convert Byte to Word> (MSB dari ALAH)

(25)

Instruksi Kontrol

 Lompatan tanpa kondisi

JMP Operand  JMP Lagi JMP BX

Operand : Short-Label/Near-Label Mem16, Reg16  Intrasegment

Far-Label, Mem32, reg32  Intersegment

 Lompatan dengan Kondisi

Lompatan terjadi jika kondisi terpenuhi Kondisi mengacu pada register flag

Contoh : JZ Operand (Jump Zero)

JNZ Operand (Jump Not Zero) JS Operand (Jump Sign)

(26)

Instruksi Kontrol (Cont…1)

Looping

Loop Short-Label

<melompat ke Short-Label jika CX  0> Contoh : Mov CX,10

lagi INC AX DEC CX Loop lagi

PUSHSumber

Untuk menyimpan data dari register ke memori stack

PUSH AX mengakibatkan (SP-1)AH (SP-2)AL SP  SP-2

POPTujuan

Untuk mengambil kembali data yang tersimpan di stack

(27)

Instruksi Kontrol (Cont…2)

 CALL Operand

Untuk memanggil prosedur (subrutin)

 RET

Untuk Mengakhiri Prosedur dan kembali ke rutin pemanggil

CALL NearLabel [SP-1] IPH [SP-2] IPL

SP  SP-2

IP  NearLabel RET IPL  [SP]

(28)

Instruksi Kontrol (Cont…3)

Interupsi Software

INT Tipe  Tipe bernilai 0-255

Jika interupsi dijalankan, P akan menyimpan isi flag, CS, IP ke stack lalu mengambil nilai baru untuk CS dan IP dari tabel

Interupsi (Interupt Vector) yang terletak pada alamat memori 00000H – 003FFH (1kByte)

Tipe Alamat Fungsi

0 00000 Devide by Zero 1 00004 Single Step

2 00008 NMI

“ “ “

“ “ “

(29)

Instruksi Kontrol (Cont…4)

 Interupsi Software (Cont…)

dan untuk kembali digunakan perintah IRET

 STC (Set Carry Flag)

 CLC (Clear Carry Flag)

 CMC (Complement Carry Flag)

 STD (Set Direction Flag)

 CLD (Clear Direction Flag)

 STI (Set Interrupt Flag)

 CLI (Clear Interrupt Flag)

 HALT berhenti

(30)

Instruksi Kontrol (Cont…5)

STOS Tujuan <menyimpan data dari AL/AX

ke memori>

STOSB

STOSW

STOSW

DS:[DI+1:DI]

AX

REP

<Instruksi Pengulangan>

REP MOVS

ulangi instruksi ini

sampai register CX bernilai 0

REP STOSB

STOSB : CX

CX-1

(31)

Instruksi String

String adalah rangkaian data pada memori baik dalam byte atau word

 MOVS Tujuan, Sumber <memindahkan blok memori> Tujuan dan sumber berupa label

MOVSB <Byte> ES:DI  Tujuan MOVSW <Word> DS:SI  Sumber MOVSB  ES:[DI]  DS:[SI]

Jika DF = 0 maka DI  DI+1 SI  SI+1 DF = 1 maka DI  DI-1

SI  SI-1

 CMPS Tujuan, Sumber <membandingkan blok memori>

Referensi

Dokumen terkait

Dengan menggunakan penyajian bilangan biner komplemen 2 sebagai bilangan negatif dalam bilangan biner bertanda didapat hasil operasi aritmetika yang benar. Untuk kode 8

Bentuk operand sangat bervariasi, bisa berupa kode-kode yang dipakai untuk menyatakan Register dalam prosesor, bisa berupa nomor-memori (alamat memori) yang dinyatakan dengan

 Tahun 1997, Intel meluncurkan Pentium II, Pentium Pro dengan teknologi MMX yang memiliki 2 inovasi: cache memori tidak menjadi 1 dengan inti prosesor seperti Pentium Pro ,

buah operand dari register, melakukan operasi ALU, dan menyimpan hasil operasinya kedalam register, dengan demikian instruksi mesin RISC tidak boleh lebih

Memori (RAM) CPU Instruksi Bahasa Assembly /Mesin, Data Instruksi Bhs.  Assembly/  Mesin (dapat  memuat  alamat), Data Data,  Control,  Alamat Data, Control,  Alamat

Solusinya adalah karena itu untuk menyertakan jenis ini dekat memori lokal untuk prosesor dan untuk sementara menyimpan data primer untuk diproses di dalamnya.Model

Kode untuk instruksi LJMP adalah $02, nomor memori-program baru yang dituju dinyatakan dengan bilangan biner 16 bit, dengan demikian instruksi ini bisa menjangkau semua

Modul ini membahas tentang aritmatika dan operasi logika dalam komputer, termasuk bilangan biner, jalur komunikasi, dan operasi