JurusanTeknikInformatika STT –PLN · •AX (akumulator) AX disebutregister...
Transcript of JurusanTeknikInformatika STT –PLN · •AX (akumulator) AX disebutregister...
PERTEMUAN : 3
ARSITEKTUR SISTEMARSITEKTUR SISTEM
Jurusan Teknik Informatika
STT – PLN
Riki Ruli S - http://blogriki.wordpress.com
• Mikrokomputer menggunakan CPU tunggal meskipundalam kenyataannya terdapat banyak chip yang mendukung PC, yang paling nampak adalah 80x87 co-prosesor matematika, tapi CPU masih menjadipengatur utamanya.
• Tugas yang paling mendasar yang ditangani oleh CPU
CPU (Central Processing Unit)
• Tugas yang paling mendasar yang ditangani oleh CPU adalah :– Menemukan dan load/menempatkan instruksi berikutnya
– Mengeksekusi instruksi :• Fetch data dari memori/register
• Menyimpan data dalam memori/register
• Melaksanakan penghitungan dan perbandingan
• Memperbaharui penunjuk instruksi (pencabangan)
• CPU dibagi menjadi dua bagian : Arithmetic Logic Unit (ALU) danControl Unit (CU).
• ALU melaksanakan operasi aritmetik, logic, dan penggeseran
• Control Unit mengambil data dan instruksi dan menerjemahkankode (decode) alamat untuk ALU.
• Bus data. Bus adalah kabel parallel yang mengirimkan data antaraberbagai bagian CPU.
CPU (Central Processing Unit)
• Bus data. Bus adalah kabel parallel yang mengirimkan data antaraberbagai bagian CPU.
• Register. Berada dalam CPU yaitu area penyimpan kecepatan tinggi, yang langsung terhubung ke unit kendali dan ALU.
• Clock. Setiap operasi yang dilakukan di CPU harus disinkronkan olehclock. Unit waktu paling dasar untuk instruksi mesin yang disebutsiklus mesin (machine cycle). Instruksi mesin dalam prosesor Intel umumnya dilaksanakan antara 3 dan 20 clock.
CPU (Central Processing Unit)
• Register berada dalam CPU. Ketika sesuatu diambil dari memori, alamatnya dihitung oleh unit kendali dan dikirim melalui bus alamat. Nilai
dari memori (baik instruksi atau data) dikirim balik ke CPU melalui bus data. Clock melakukan sinkronisasi setiap operasi CPU.
• Register merupakan sebagian memori darimikroprosesor yang dapat diakses dengankecepatan yang sangat tinggi. Dalam melakukanpekerjaannya mikroprosesor selalu menggunakanregister-register sebagai perantaranya, jadiregister dapat diibaratkan sebagai kaki dan
REGISTER
register-register sebagai perantaranya, jadiregister dapat diibaratkan sebagai kaki dantangannya mikroprosesor.
• Register memiliki panjang 16 bit.
• Pengaksesan 4 register data dibagi dua bagianyaitu setengah bagian atasnya dan setengahbagian bawah.
• Register merupakan sebagian memori darimikroprosesor yang dapat diakses dengankecepatan yang sangat tinggi. Dalam melakukanpekerjaannya mikroprosesor selalu menggunakanregister-register sebagai perantaranya, jadiregister dapat diibaratkan sebagai kaki dan
REGISTER
register-register sebagai perantaranya, jadiregister dapat diibaratkan sebagai kaki dantangannya mikroprosesor.
• Register memiliki panjang 16 bit.
• Pengaksesan 4 register data dibagi dua bagianyaitu setengah bagian atasnya dan setengahbagian bawah.
REGISTER
• Register Data
Register 16 bit ( satuan word )
AX, BX, CX, dan DX
REGISTER
Register 8 bit ( satuan byte )
AL, AH, BL, BH, CL, CH, DL, dan DH
– L = Low ( 8 bit pertama )
– H = High ( 8 bit kedua )
Register Data
• Register data digunakan untuk perhitunganaritmatik dan pemindahan data.
• Perhitungan setiap register dapat dialamatisebagai nilai 16-bit atau 8 bit.
REGISTER
sebagai nilai 16-bit atau 8 bit.
• Contoh register AX adalah register 16-bit, 8 bit atasnya disebut AH dan 8 bit bawahnya dinamaiAL.
• Posisi bit selalu diberi nomor dari kanan ke kiridimulai dari nol.
• AX (akumulator)AX disebut register akumulator karena digunakan oleh CPU untuk operasi
aritmatik. Operasi-operasi lain juga sedkit lebih efisien denganmenggunakan AX.
• BX (basis)Seperti register tujuan umum lainnya, register BX dapat melaksanakan
operasi aritmetik dan perpindahan data dan BX memiliki kemampuan
REGISTER DATA
operasi aritmetik dan perpindahan data dan BX memiliki kemampuanpengalamatan khusus. Dia dapat menyimpan alamat memori yang menunjuk pada variabel lain. Tiga register lain yang memiliki kemampuanini adalah SI, DI dan BP.
• CX (counter)Register CX bekerja sebagai counter untuk instruksi pengulangan atau
looping. Instruksi-instruksi tersebut secara otomatis mengulang danmengurangi CX dan keluar ketika CX sama dengan 0.
• DX (data)Register DX mempunyai peranan khusus dalam operasi perkalian dan
pembagian. Pada saat perkalian, contohnya, DX menyimpan 16 bit perkalian.
Register SegmenCPU mengandung 4 register segmen, digunakan sebagai lokasi basis untuk
instruksi program, data dan stack. Register segmen sebagai berikut :
• CS (code segment)
Register CS menyimpan lokasi basis semua instruksi yang dapat dieksekusi
REGISTER
Register CS menyimpan lokasi basis semua instruksi yang dapat dieksekusi
dalam program.
• DS (data segment)
Register DS adalah lokasi basis default untuk variabel variabel CPU
menghitung lokasi variabel-variabel menggunakan nilai segmen dalam DS.
• SS (stack segment)
Register SS mengandung lokasi basis stack.
• ES (extra segment)
Register ES adalah lokasi basis tambahan untuk variabel-variabel memori.
• Register index mengandung offset variabel.
• Istilah offset mengacu pada jarak variabel, label atau instruksi dari segmen
basisnya.
• Register index mempercepat pemrosesan string array dan struktur data
lain yang mengandung banyak elemen.
Register-register index adalah :
REGISTER INDEX
Register-register index adalah :
• SI (source index)
Register ini mengambil nama dari instruksi pemindahan string, yang mana
string sumber ditunjuk oleh register SI. SI biasanya mengandung nilai
offset dari register DS.
• DI (destination index)
Register DI bekerja sebagai tujuan instruksi pemindahan string. Biasanya
mengandung offset dari register ES, BP (base pointer).
Register khusus sebagai berikut :
• IP (instruction pointer)
Register IP selalu mengandung offset instruksi berikutnya yang
akan dieksekusi. CS dan IP digabung untuk melaksanakan
alamat komplit instruksi berikutnya yang akan dieksekusi.
REGISTER KHUSUS
alamat komplit instruksi berikutnya yang akan dieksekusi.
• SP (stack pointer)
Register SP mengandung offset atau jarak dari awal stack ke
puncak stack. Register SS dan SP bersama melakukan alamat
lengkap puncak stack.
• Register flag adalah register 16-bit khusus dengan
posisi bit sendiri dibuat untuk menunjukan status
CPU atau hasil operasi aritmetik.
• Setiap posisi bit yang relevan diberi nama, posisi lain
tidak didefinisikan.
REGISTER FLAG
tidak didefinisikan.
• Debug � berasal dari istilah bahasa Inggris “bug”
yang berati kutu atau binatang kecil
• Mencari atau melacak kesalahan
• Debug = sebuah program yang digunakan untuk
melihat, mengedit dan menyimpan data kedalam
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
melihat, mengedit dan menyimpan data kedalam
memori atau disk.
• Bisa digunakan untuk membuat program COM dan
EXE. Dan bisa dijadikan sebagai alat bantu dalam
perancangan peralatan berbasis mikroprosesor.
• Program DEBUG dapat digunakan untuk
mengeksplorasi keluarga prosesor 8086 termasuk
PENTIUM pada PC
• Program DEBUG telah disertakan setiap kali user
melakukan instalasi WINDOWS
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
melakukan instalasi WINDOWS
• Untuk menjalankan DEBUG, click Start-Run,
kemudian ketik CMD dan click OK sehingga muncul
pada layar prompt DOS.
• Dari prompt DOS ketikDEBUG:
C:>DEBUG diikuti ENTER
• Prompt DEBUG ditandai dengan tanda minus dikuti
kursor berkedip : -_
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• Terdapat 19 menu DEBUG, untuk melihatnya ketik -?
diikuti ENTER
• Melihat isi register, ketik -R diikuti ENTER, maka akan
muncul dilayar :
• Hal itu menandakan bahwa isi register AX=0000 atau
AH=00 dan AL=00, BX=0000 atau BH=00 dan BL=00,
CX=0000 atau CH=00 dan CL=00, DX=0000 atau
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
CX=0000 atau CH=00 dan CL=00, DX=0000 atau
DH=00 dan DL=00
• Keadaan set dan reset register flag pada DEBUG
dinyatakan dengan singkatan NV, UP, EI, PL, NZ, NA,
PO, NC
Flag Status
• Bendera overflow:
OV (Overflow atau OF=1=set)
NV (No Overflow atau OF=0=reset)
• Bendera sign:
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
NG (Negative atau SF=1=set)
PL (Plus atau SF=0=reset)
• Bendera zero:
ZR (Zero atau ZF=1=set)
NZ (No Zero atau ZF=0=reset)
• Bendera auxiliary carry:
NA (No Auxiliary carry atau AF=0=reset)
AC (Auxiliary carry atau AF=1=set)
Flag Status
• Bendera paritas:
PO (Parity Odd = paritas ganjil atau PF=0=reset)
PE (Parity Even = paritas genap atau PF=1=set)
• Bendera Carry:
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
NC (No Carry atau CF=0=reset)
CY (carry atau CF=1=set)
• Contoh jika DEBUG menampilkan keadaan flag :
NV UP EI PL NZ NA PO NC
Artinya : hasil perhitungan ALU tidak overflow (NV), bernilai positif (PL),
tidak bernilai 0 (NZ), tidak ada carry pada penjumlahan bit ke-3 (NA),
berparitas ganjil(PO) dan tidak ada carry (NC)
Example Analyze • Analisis :
Misal kita menulis program assembly dengan perintah A dan
menjalankannya baris demi baris dengan perintah T (trace) :
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
Example Analyze
• Perintah diatas yakni:
MOV AL,3
ADD AL,2
ketika baris pertama dijalankan, isi AL=03 dan setelah baris
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
ketika baris pertama dijalankan, isi AL=03 dan setelah baris
kedua dijalankan isi AL menjadi AL=05 heksadesimal. Hal itu
menunjukkan bahwa instruksi pertama MOV AL,3
menyebabkan akumulator AL terisi 3 heksadesimal, baris
kedua menyebabkan isi AL ditambah dengan 2 heksadesimal
sehingga menjadi 5 heksadesimal. Pada akhir pelaksanaan
kedua perintah tersebut, DEBUG menghasilkan keadaan
register flag sebagai berikut :
NV UP EI PL NZ NA PE NC
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• Dalam bahasa Assembly mempunyai 3 tipe intruksi
dasar yaitu : mnemonic, operan1 dan 2 serta
komentar
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• Contoh Perintah debug :
• A : Address � A 100
• C : Compare � C 0100 L10 0200
• D : Dump � D CS:80
• E : Enter � E 100
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• E : Enter � E 100
• F : Fill � F 0100 L1 41
• G : Go �
• H : Penjumlahan 2 bilangan heksa
• I : Input � 3FD
• R : register
• RAX � Rubah Nilai AX
• RBX � Rubah Nilai BX
• Contoh Perintah debug :
• T = Menjalankan baris program Asembly
• U = Melihat program yang sedang aktif
• W = Menyimpan data ke disk
• ? = Menampilkan layar Help versi debug
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• ? = Menampilkan layar Help versi debug
• Prosedur Percobaan
• Klik menu start pada computer
• Pilih All Programs dan pilih accessories
• Pilih command prompt
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• Pilih command prompt
• Lalu anda ketika debug pada bagian c prompt dan
tekan Enter
• Prosedur Percobaan
• Klik menu start pada computer
• Pilih All Programs dan pilih accessories
• Pilih command prompt
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
• Pilih command prompt
• Lalu anda ketika debug pada bagian c prompt dan
tekan Enter
• Kemudian anda ketikan Huruf A 100 dan tekan Enter
• Kenapa A 100 ? � Merupakan segment awal debug
(Program Segmen Prefix)
Lalu ketikan program dibawah ini :
mov ah,02
mov dl, 41
int 21
int 20
EKSPLORASI PROSESOR 8086 DENGAN DEBUG
int 20