ORGANISASI DAN ARSITEKTUR KOMPUTER
rsp‐oak‐informatika
1
Microprocessor Intel 80x86
rsp‐oak‐informatika
2
C Central Processing Unit (C (CPU)) U e upa a p oseso yC CPU merupakan prosesor Æ untuk memproses data y Terpusat p ((central)) Æ merupakan pusat pemroses data pada komputer y Merupakan p unit Æ suatu chip atau IC yang mengandung jutaan transistor.
rsp‐oak‐informatika
3
Perkembangan Prosesor y Terkait dengan perusahaan IBM dan Intel y Prosesor Intel pertama kali diperkenalkan 4004 tahun
1971 y Konsep kompatibilitas menjadi penting selama proses perkembangan CPU
rsp‐oak‐informatika
4
Perkembangan Prosesor Intel dan lainnya Generasi
Prosesor
Tahun
1st 2nd
8086, 8088 80286
1978-1981 1984
Jumlah Transistor 22.000 128.000
3rd 4th
80386DX, 80386SX
1987-1988 1990-1992
250.000 1.200.000
80486DX, 80486DX2, 80386DX4
5th
Pentium, IBM, AMD K5, Pentium MMX
1993,1996
3.100.000
6th
Pentium Pro, PII, Celeron, AMD Athlon, Duron
1996-2000
5.000.000 – 25.000.000
7th 8th
Pentium IV
2000 2001-2003
42.000.000 42 000 000 25.000.000
Itanium(64 bit), AMD rsp‐oak‐informatika Athlon 64
5
Register-register
rsp‐oak‐informatika
6
Register Data y Register 16 bit ( satuan word ) R i bi ( d )
AX, BX, CX, dan DX y Register 8 bit ( satuan byte )
AL, AH, BL, BH, CL, CH, DL, dan DH AL AH BL BH CL CH DL d DH L = Low ( 8 bit pertama ) H High ( 8 bit kedua ) H = High ( 8 bit kedua )
rsp‐oak‐informatika
7
y AX ( Akumulator )
Di gunakan untuk perkalian, pembagian dan operasi I/O ( k l I/O ( keluaran/masukan) ukuran word / k ) k d Register AL digunakan operasi yang sama dalam ukuran byte serta dalam operasi translasi dan ukuran byte, serta dalam operasi translasi dan aritmatika. Register AH juga mempunyai fungsi yang sama dengan AL. g
rsp‐oak‐informatika
8
y BX ( Register Basis )
Digunakan untuk membawa data alamat memori
rsp‐oak‐informatika
9
y CX ( Pencacah / Counter )
Digunakan untuk menyimpan cacah pengulangan pada operasi string. d i i Register CL biasanya digunakan untuk menyimpan cacah penggeseran untuk instruksi penggeseran dan rotasi
rsp‐oak‐informatika
10
y DX ( Data )
Digunakan dalam operasi perkalian dan pembagian ukuran word. Juga digunakan sebagai nomor port k d J di k b i dalam operasi I/O.
rsp‐oak‐informatika
11
Register – register Segmen y CS ( Code Segment/Segmen Kode)
Digunakan untuk menyimpan kode program y DS ( Data Segment/Segmen Data)
Digunakan untuk menyimpan data‐data atau variabel‐ variabel yang digunakan dalam program.
rsp‐oak‐informatika
12
y SS ( Stack Segment/ Segmen Stak )
Digunakan untuk menyimpan struktur data khusus atau unik, dinamakan stack. ik di k k FILO – First In Last Out LIFO Last In First Out LIFO – L I Fi O
rsp‐oak‐informatika
13
y ES ( Extra Segment/Segment Ekstra )
Digunakan sebagai segmen data cadangan, biasa di digunakan dalam operasi‐operasi string k d l i i i
rsp‐oak‐informatika
14
Register-register Pointer dan Indeks y Mikroprosesor 80x86 melakukan akses data
menggunakan cara yang sama dengan mengkombinasikan segmen dan offset. offset y Untuk mengakses segmen data, segmen‐nya data segmen nya diperoleh
dari DS, dan offsetnya dari BX atau register indeks SI (Source Index) atau DI (Destination Index).
rsp‐oak‐informatika
15
y Untuk mengakses stack, segmen‐nya diperoleh dari
register SS dan offset‐nya dari register penunjuk SP (Stack Pointer) atau BP (Base Pointer). (Stack Pointer) atau BP (Base Pointer) y Sedangkan untuk segmen ekstra, menggunakan Sedangkan untuk segmen ekstra menggunakan
segmen dari ES dan digabung dengan SI atau DI.
rsp‐oak‐informatika
16
Penunjuk Instruksi (Instruction Pointer) y Mikroprosesor 80x86 menghitung alamat suatu
instruksi yang akan dikerjakan dengan cara mengkombinasikan segmen CS dan Offset IP (CS:IP), dan Offset IP (CS:IP) sehingga dalam hal ini IP merupakan register yang digunakan untuk menyimpan penunjuk atau offset g y p p j instruksi yang akan dikerjakan prosesor. y Dengan demikian IP didedikasikan untuk menyimpan alamat lokasi instruksi berikutnya.
rsp‐oak‐informatika
17
Bendera Status ( Status Flags ) y Untuk pengambilan keputusan, misalnya suatu proses
jika hasil penjumlahan adalah NOL akan dilakukan proses pencetakan string “Hasilnya NOL” proses pencetakan string Hasilnya NOL , dan dan melakukan proses lain jika hasilnya bukan NOL. y IF … = 0 Then “ Hasilnya NOL”
ELSE …
rsp‐oak‐informatika
18
Register Flags
rsp‐oak‐informatika
19
y Bit 0, CF ( Carry Flag )
Akan berisi 1 jika suatu penjumlahan menghasilkan sisa (carry) atau suatu pengurangan membutuhkan i ( ) b hk pinjaman (borrow), selain itu akan bernilai 0. y Bit 2, PF ( Parity Flag ) Bit 2 PF ( Parity Flag ) Akan berisi 1 jika hasil dari suatu operasi memiliki cacah genap dari logika 1, selain itu akan berisi 0.
rsp‐oak‐informatika
20
y Bit 4, AF ( Auxiliary Carry Flag )
Sama seperti bit CF, kecuali AF digunakan untuk i dik indikator sisa atau pinjaman dari bit 3, yaitu operasi‐ i i j d i bi i i operasi BCD (Binary Coded Decimal), yaitu sistem bilangan desimal ( 0 sampai 9 ). ) y Bit 6, ZF ( Zero Flag ) Bernilai 1 jika hasil dari suatu operasi adalah nol, selain itu bernilai 0.
rsp‐oak‐informatika
21
y Bit 7, SF ( Sign Flag )
Hanya akan berarti selama operasi bilangan bertanda ( i (signed number). Akan berisi 1 d b ) Ak b i i jika hasil suatu operasi jik h il i (aritmatika, logika, rotasi atau penggeseran) merupakan bilangan negatif. merupakan bilangan negatif y Bit 8, TF ( Trap Flag ) Digunakan untuk menjalankan instruksi langkah demi langkah pada progran DEBUG.
rsp‐oak‐informatika
22
y Bit 9, IF ( Interrupt Enable Flag )
Jika diisi dengan 1, maka membolehkan prosesor 80x86 mengenali permintaan interupsi dari piranti‐ li i i i d i i i piranti eksternal sistem. Dan jika diisi 0 maka semua perintah interupsi di abaikan. perintah interupsi di abaikan
rsp‐oak‐informatika
23
y Bit 10, DF ( Direction Flag )
Akan menaikan (increment, DF=0) atau menurunkan (d (decrement, DF=1) register‐register indeks setelah DF ) i i i d k l h dikerjakan suatu indeks strings
rsp‐oak‐informatika
24
y Bit 11, OF ( Overflow Flag )
Merupakan indikator adanya kesalahan (error) selama operasi bilangan bertanda. i bil b d Misal : operasi tipe word, paling kecil ‐32767 dan paling besar 32768 Jika 32760 + 20, maka hasil 32790 tidak cukup disimpan pada register (AX, BX, CX atau DX). OF 1 disimpan pada register (AX, BX, CX atau DX). OF=1 (terjadi overflow)
rsp‐oak‐informatika
25
Pengenalan Emu 8086
rsp‐oak‐informatika
26
Apa?? Emu8086 y Mempelajari bahasa Assembly gampang atau susah?? y Membuat bahasa mesin untuk memprogram mesin
llain atau i h d hardware?? y Mengkompile tanpa adanya Interface?? Mungkin?? y Emu8086… merupakan E 8 86 k perangkat k lunak l k emulator (PC l (PC Semu) + debugger. y www.emu8086.com www emu8086 com
rgs‐oak‐undip
27
Memulai Emu8086
rgs‐oak‐undip
28
Ada beberapa sampel source code
rgs‐oak‐undip
29
Selanjutnya Klik Continue
rgs‐oak‐undip
30
Menu y Pada jendela bagian atas terdapat Menu Bar, antara
lain File, Edit, Bookmarks, Makro, Compile, Emulator, Math Help dan beberapa Sub Menu yang lain Math, Help dan beberapa Sub Menu yang lain. y Jika kita akan membuat file baru, maka pilih File – New ( COM EXE BIN BOOT Template ) New ( COM, EXE, BIN, BOOT Template ) y Atau tekan Icon NEW, maka akan muncul :
rgs‐oak‐undip
31
Pilihan Template File y .COM, merupakan file berkas CO k fil b k
sederhana yang bisa di eksekusi. eksekusi y .EXE, seperti file .COM tetapi lebih kompleks p y .BIN, berkas sederhana yang akan disimpan y .BOOT, membuat jalur atau track pertama (sektor boot )
rgs‐oak‐undip
32
Text Editor y Digunakan untuk menuliskan program assembly
rgs‐oak‐undip
33
Kompilasi & Pemrosesan Kesalahan y Klik Tombol Emulate untuk Mengkompile
rgs‐oak‐undip
34
y Jika selama proses kompilasi terjadi kesalahan, maka
kompiler menampilkan :
rgs‐oak‐undip
35
y Jika Sukses maka :
rgs‐oak‐undip
36
y Untuk melihat hasilnya, klik Run
rgs‐oak‐undip
37
y Setelah Program Selesai
rgs‐oak‐undip
38