cihuahua
DESCRIPTION
modulTRANSCRIPT
-
Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.Semoga Tuhan memberi berkah pada kelas ini.
1
-
Pertemuan 1
PENDAHULUAN
-
DEFINISI
Sebuah mikroprosesor (disingkat p atau uP) adalah
sebuah central processing unit (CPU) elektronik
komputer yang terbuat dari transistor
dan komponen lainnya di atas sebuah dan komponen lainnya di atas sebuah
sirkuit terintegrasi semikonduktor.
-
Tugas utama mikroprosesor adalah :
1. Memindahkan data antara memori dan piranti
lainnya
FUNGSI
lainnya
2. Menjalankan operasi aritmatika dan logika
(Tabel 1-1)
3. Menentukan aliran program melalui keputusan
sederhana (Tabel 2).
Keputusan sederhana ini akan tersimpan dalam
bentuk sebuah Flag Bit.
-
TabelTabelTabelTabel 1111----1111
OperasiOperasiOperasiOperasi aritmatikaaritmatikaaritmatikaaritmatika dandandandan logikalogikalogikalogika sederhanasederhanasederhanasederhana
OPERASI KETERANGAN
Penambahan
Pengurangan
Perkalian
PembagianPembagian
AND Perkalian logika
OR Penjumlahan logika
NOT Inversi logika
NEG Inversi aritmatika
Shift Pergeseran logika
Rotate Perputaran logika
-
Tabel 1-2. Keputusan dalam mikroprosesor
Uji apakah bilangan nol atau bukan nol
Uji apakah bilangan negatif atau positif
Zerro
Sign
KeteranganOperasi
Uji apakah bilangan negatif atau positif
Uji apakah ada carry setelah penjumlahan
atau borrow setelah pengurangan
Uji bilangan untuk jumlah bit 1, apakah
genap atau ganjil
Uji apakah hasil operasi melebihi kapasitas
mesin.
Sign
Carry
Parity
Overflow
-
PERKEMBANGAN MIKROPROSESOR
1. Intel 4004 Merupakan mikroprosesor 4 bit pertama
dari keluarga Intel
2. Hanya mengalamatkan 4096 lokasi memori 4 bit.
Mikroprosesor 4 bit
2. Hanya mengalamatkan 4096 lokasi memori 4 bit.
3. Memiliki 45 set instruksi
4. Kecepatan 50 KIPs (Kilo Instructions per second)
5. Dibuat dengan teknologi P-channel MOSFET.
6. Digunakan untuk video games, sistem kontrol kecil
berbasiskan mikroprosesor serta kalkulator.
-
Terdapat 4096 lokasi
4096 = 4x1024
= 22x210
= 212
FFFH 4 bitMemori
Gambar 1-1. Memori pada Mikroprosesor Intel 4004
Ingat !!!
4 bit000H
Ingat !!!
bit = binery digit
1 Byte = 8 bit
1 Kbit = 210 bit = 1024 bit
1 Mbit = 220 bit
1 Gbit = 230 bit
1 Tbit = 240 bit
-
Menyadari bahwa mikroprosesor merupakan produk
berkembang yang memiliki nilai komersial, maka
Intel mengembangkan mikroprosesornya untuk versi
8 bit, yaitu :
Mikroprosesor 8 bit
1. Intel 8008 (tahun 1971)
2. Intel 8080 (tahun 1973)
3. Intel 8085 (tahun 1977)
Pada saat yang bersamaan perusahaan-perusahaan
lainnya juga mengeluarkan mikroprosesor 8 bit versi
mereka (Tabel 1-3)
-
F-8
8080
6502
Fairchild
Intel
MOS Technoogy
Nomor ModulPerusahaan
Tabel 1-3
Mikroprosesor 8 Bit pertama
6502
MC6800
IMP-8
PPS-8
Z-8
MOS Technoogy
Motorola
National Semiconductor
Rockwell International
Zilog
-
Mikroprosesor 16 bit berkembang akibat kebutuhan
memori yang lebih besar.
Berikut ini adalah mikroprosesor 16 bit dari keluarga
Intel :
Mikroprosesor 16 bit
1. Intel 8086 (tahun 1978)
2. Intel 8088 (tahun 1979)
3. Intel 80286 (tahun 1983)
Ketenaraan keluarga Intel melambung pada tahun
1981, ketika IBM menggunakan 8088 dalan komputer
pribadinya.
-
Ciri-ciri mikroprosesor 16 bit keluarga Intel :
1. Dapat mengeksekusi instruksi dalam waktu 400 ns
(2,5 MIPs atau 2,5 juta instruksi per detik)
2. Mengalokasikan memori sebesar 1 MByte), kecuali
Intel 80286 mengalokasikan memori sebesar 16
MByte.MByte.
3. Jumlah instruksi yang semakin banyak dan
kompleks (lebih dari 20.000), sehingga komputer
ini disebut juga dengan Complex Complex Complex Complex InststructionInststructionInststructionInststruction Set Set Set Set Computer Computer Computer Computer (CISC)
-
Perkembangan software aplikasi mulai memerlukan kecepat-an
mikroprosesor yang lebih tinggi. Untuk itu, Intel mengem-
bangkan lagi mikroprosesor 32 bit, yaitu :
1. Intel 80386 (tahun 1986)
80386 adalah mikroprosesor fungsional 32 bit pertama Intel
yang mengandung data bus 32 bit dan alamat memori 32 bit.
Mikroprosesor 32 bit
yang mengandung data bus 32 bit dan alamat memori 32 bit.
Melalui bus alamat 32 bit ini, 80386 mampu meng-alamati
memori sebesar 4 MByte (232=230x 22=4G, 1 Giga = 230)
2. Intel 80486 (tahun 1989)
Intel 80486 merupakan gabungan dari 80386 sebagai mikro-
prosesor dan 80387 sebagai numeric coprocessornumeric coprocessornumeric coprocessornumeric coprocessor serta 8 KByte cache memory systemcache memory systemcache memory systemcache memory system dalam satu paket terpadu.
-
Pada tahun 1993, Intel meluncurkan prosesor 64 bit
yang diberi label P5 atau 80586.
Namun Intel memutuskan untuk tidak menggunakan
label nomor karena sulit untuk memetakan angka
Mikroprosesor 64 bit
label nomor karena sulit untuk memetakan angka
yang terlalu banyak, sehingga Intel mengganti nama
prosesornya dengan PentiumPentiumPentiumPentium.
Pentium memiliki teknologi superscalar, yaitu memiliki
dua prosesor integer internal bebas sehingga dapat
mengeksekusi dua instruksi, yang tidak saling
tergantung, secara simultan.
-
64 K
1 M
8
16
8085
8086
Ukuran MemoriLebar Bus DataModul
Tabel 1-4
Prosesor Keluarga Intel
1 M
1 M
16 M
4 G
4 G + 8 K cache
4 G + 16 K cache
16
8
16
32
32
64
8086
8088
80286
80386
80486
Pentium
-
Mari kita diskusikan ..
Apa yang menyebabkan sebuah prosesor dikatakan sebagaiprosesor 16 bit ?
Apakah prosesor 16 bit harus memiliki bus data 16 bit juga ?
Sebuah memori mempunyai kapasitas 1 MByte, Beraparange alamat yang dimilikinya ? Berapa lebar bus alamat
yang dibutuhkan oleh memori tersebut agar dapatmenjangkau seluruh lokasi-nya ?
-
TTTTHHHHEEEE EEEENNNNDDDDTTTTHHHHEEEE EEEENNNNDDDD
-
SISTEM KOMPUTER BERBASISKAN
Pertemuan 2
SISTEM KOMPUTER BERBASISKAN
MIKROPROSESOR
-
Gambar 2-1
Blok diagram dari sistem komputer pribadi
berbasiskan mikroprosesor
-
Memori dan Sistem I/O
Struktur memori dari semua sistem komputer
pribadi berbasiskan mikroprosesor Intel 80XXX
sampai pentium II adalah sama.
Sistem memori dibagi atas tiga bagian utama,
yaitu :
1. TransienTransienTransienTransientttt Program AreaProgram AreaProgram AreaProgram Area (TPA)
2. System AreaSystem AreaSystem AreaSystem Area
3. Extended Memory SystemExtended Memory SystemExtended Memory SystemExtended Memory System (XMS)
-
Gambar 2-2
Peta memori sebuah PC
-
Transien Program Area (TPA)
TPA berisikan sistem operasi DOS (Disk Operating System) dan program lainnya yang mengontrolsistem komputer.
Panjang TPA adalah 640 KB. Panjang TPA adalah 640 KB.
Sebagian besar area TPA digunakan untuk sistem
program, data dan driver.
-
Gambar 2-2. Peta MemoriTPA pada sebuah PC
-
Vektor Interrupt berisi tabel vektor pelayanan interupsi, yang akan mengakses berbagai fitur DOS, BIOS dan aplikasi.
BIOS (Basic Input Output System) adalah sekumpulan program yang tersimpan, baik pada ROM maupun memori flash yang akan mengoperasikan berbagai macam peralatan I/O yang terhubung dengan sistem komputer.
Area sistem BIOS dan komunikasi DOS berisi data transien yang digunakan oleh program untuk mengakses peralatan-peralatan I/O dan berbagai fitur yang terdapat dalam komputer.
IO.SYS adalah sebuah program yang dimasukkan ke TPA dari disk saat DOS dimulai. Program tersebut menghubung-kan DOS dengan BIOS sehingga memampukan DOS menggunakan peralatan I/O.
-
Driver adalah program yang mengontrol peralatan-peralatan I/O yang dapat diinstal, seperti mouse cache disk, hand scanner, memori CD-ROM (Compact Disc Read Only Memory) dan DVD (Digital Versatile Disc)
COMMAND.COM (prosesor perintah) adalah program yang mengontrol operasi komputer dari keyboard. Program ini mengontrol operasi komputer dari keyboard. Program ini akan memroses perintah-perintah DOS yang diketikkan lewat keyboard. Jika program ini dihapus, maka keyboard tidak dapat digunakan.
Daerah TPA bebas menampung aplikasi selama mereka dijalankan.
-
System AreaArea sistem berisi program dari ROM atau memori flash serta area memori baca/tulis RAM untuk penyimpanan data. (Gambar 2-3)Area pertama dari system area berisi RAM video display dan pengontrol ROM atau memori flash. Area ini umumnya dan pengontrol ROM atau memori flash. Area ini umumnya dimulai dari lokasi A0000H sampai C7FFFH. Ukuran dan jumlah memori yang digunakan tergantung dari tipe adapter tampilan video yang dipakai sistem.
Area kedua pada lokasi C8000H-DFFFFH sering terbuka atau bebas.
-
Gambar 2-3 Area Sistem dari sebuah PC standar.
-
Lokasi memori E0000H-EFFFFH berisikan bahasa basic dalam ROM pada sistem PC IBM generasi terdahulu. Dalam sistem yang lebih baru, area ini sering di back filldengan ekstra RAM (Upper Memory Block).Area puncak pada lokasi F0000H-FFFFFH berisi sistem Area puncak pada lokasi F0000H-FFFFFH berisi sistem ROM BIOS (Basic Input Output System). Program BIOS yang tersimpan di dalam ROM ini mengontrol operasi piranti-piranti I/O dasar.
-
R U A N G I / ORuang I/O dalam sebuah sistem komputer membentang dari port 0000h sampai FFFFh. Ruang I/O ini membuat komputer dapat mengakses sampai 64 K peranti 8 bit yang berbeda.Area I/O berisikan dua bagian besar, yaitu :1. Daerah 0000h sampai 03FFh dicadangkan untuk 1. Daerah 0000h sampai 03FFh dicadangkan untuk
peralatan sistem (Gambar 2-4)Umumnya alamat 00h sampai FFh digunakan untuk mengalamatkan komponen yang terdapat pada mainboard, sedangkan 0100h sampai 03FFh dialokasikan untuk piranti pada kartu plug-in
2. Daerah 0400h sampai FFFFh adalah area ekspansi I/O
-
Gambar 2-4 Peta I/O sebuah PC
-
B U S
Bus adalah kumpulan kabel-kabel yang sama, yang meng-hubungkan komponen-komponen pada sistem komputer.
Fungsi dari bus adalah :Fungsi dari bus adalah :1. Menghubungkan bagian-bagian sistem komputer2. Mentransfer informasi mengenai data, alamat dan
kontrol.3. Mengontrol informasi antara mikroprosesor dengan
memori maupun sistem I/O
-
BUS ALAMAT digunakan untuk menentukan lokasi memori atau lokasi I/O. Jika I/O dialamatkan, maka bus alamat terdiri dari sebuah alamat I/O 16 bit yang berlokasi antara 0000H sampai FFFFH (sebesar 1 segmen memori = 64 Kbit)Jika memori dialamatkan, maka bus alamat terdiri dari alamat memori yang mempunyai lebar alamat bervariasi sesuai dengan mikroprosesornya.Misalnya :Misalnya :1. 8086 dan 8088 mengalamatkan memori sebesar 1 MB
yang menggunakan alamat 20 bit untuk memilih lokasi 00000H sampai FFFFFH
2. 80386 mengalamatkan 16 MB yang menggunakan alamat 24 bit untuk memilih lokasi 000000H sampai FFFFFFH
Sekarang coba tentukan berapa bit alamat yang dibutuhkan untuk menjangkau memori sebesar 4 GB serta 64 GB ?
-
BUS DATA memindahkan informasi antara mikroprosesor dengan memorinya dan ruang alamat I/OPada kerabat mikroprosesor keluarga Intel, ukuran pemindahan data bervariasi dari yang lebarnya 8 bit sampai 64 bit.Misalnya :- Intel 8088 mempunyai bus data 8 bit yang dapat - Intel 8088 mempunyai bus data 8 bit yang dapat
memindahkan data sebesar 8 bit pada suatu waktu.- Intel 8086 dan 80286 memindahkan data 16 bit melalui
bus masing-masing pada suatu waktu.- Intel 80386 memindahkan data 32 bit pada suatu waktu.- Pentium I dan Pentium II memindahkan data 64 bit pada
suatu waktu.
-
BUS KENDALI berisi jalur yang memilih memori atau I/O dan membuatnya melakukan operasi baca (read) atau tulis (write).Pada kebanyakan sistem komputer, ada empat hubungan bus kontrol aktif rendah, yaitu :1. #MRDC (Memory ReaD Control)2. #MWTC (Memory WriTe Control)2. #MWTC (Memory WriTe Control)3. #IORC (I/O Read Control)4. #IOWC (I/O Write Control
-
Coba diskusikan .
Apa fungsi bus kendali?siapa yang mengendalikan dan dikendalikan melalui bus
ini?
Bus alamat adalah bus yang digunakan untuk melewatkan informasi alamat. Dalam hal ini, siapa saja yang akan
dialamati oleh prosesor ?
-
The EndThe End
-
Pertemuan 3F O R M A T D A T A K O M P U T E RF O R M A T D A T A K O M P U T E RF O R M A T D A T A K O M P U T E RF O R M A T D A T A K O M P U T E R
-
Secara umum, format data yang digunakan dalam sistem komputer adalah :1. ASCII2. BCD3. Sign and Unsign Integer4. Floating Point (Bilangan Real)4. Floating Point (Bilangan Real)
-
A S C I I(American Standard Code for Information Interchange)
Karakter alfanumerik tersimpam pada memori dalam format data ASCII (Tabel 3-1).Format data yang digunakan adalah 7 bit dengan bit yang ke 8 digunakan untuk memuat parity.
ASCII 7Dengan 7 bit, kode ASCII memiliki 27 = 128 buah kombinasi kode yang berbeda (mulai 00H sampai 7FH).Extended ASCII adalah kode 8 bit (perluasan ASCII) dimulai dari 80H sampai FFH (Tabel 3-2)Secara umum, karakter ASCII terdiri dari :1. Control characters 2. Information characters.
-
Tabel 3-1. ASCII 7 bit
-
Tabel 3-2. Extended ASCII 8 bit
-
Information characters terdiri dari :- 26 buah huruf kapital (upper case) dari A sampai Z- 26 buah huruf kecil (lower case) dari a sampai z - 10 digit desimal dari 0 sampai 9- 32 karakter khusus (special characters).Control characters dapat dikelompokkan menjadi :- Transmision control, digunakan untuk mengontrol arus - Transmision control, digunakan untuk mengontrol arus
dari data yang dikirimkan lewat jalur transmisi.- Format effector, digunakan untuk mengatur susunan
secara fisik dari informasi yang ditransmisikan pada alat cetak atau layar dari terminal.
- Device controls, digunakan terutama untuk pengontrolan alat-alat fisik yang ada di terminal.
- Information separator, digunakan sebagai elemen pembatas data yang ditransmisikan.
-
Data ASCII dapat disimpan dalam memori dengan meng-gunakan direktif khusus program assembler yaitu : Define Byte (DB) atau BYTEContoh 3-1.0000 42 61 72 72 NAMA DB Barry B. Brey
79 20 42 2E79 20 42 2E20 42 72 6579
000D 57 68 65 72 PESAN DB Where can it be?65 20 63 616E 20 69 7420 62 65 3F
-
B C D(Binary Code Decimal)
BCD berisi simbol desimal yang dikodekan kedalam biner.Rentang digit BCD antara 0000b sampai 1001b (desimal 0 sampai 9)Data BCD disimpan dalam dua bentuk, yaitu :Data BCD disimpan dalam dua bentuk, yaitu :1. BCD Packed, disimpan dalam bentuk 2 digit per-byte,
biasa digunakan pada instruksi mikroprosesor.2. BCD Unpacked, disimpan dalam 1 digit per-byte, biasa
digunakan pada keypad atau keyboard.
(Tabel 3-3) memperlihatkan beberapa bilangan desimal yang dikonversikan ke bentuk BCD Packed dan Unpacked.
-
Penggalan listing program berikut ini memperlihatkan bagaimana assembler digunakan dalam mendefinisikan BCD packed dan unpacked.
Contoh 3-2.; data BCD unpacked; data BCD unpacked
0000 03 04 05 NUMB1 DB 3,4,5 ; menetapkan bil. 54307 08 NUMB2 DB 7,8 ; menetapkan bil. 87
; data BCD packed0005 37 34 NUMB3 DB 37H, 34H : menetapkan bil. 34370007 03 45 NUMB4 DB 3H, 45H : menetapkan bil. 4503
-
Signed dan Unsigned Integer
Signed dan Unsigned integer adalah format data yang di gunakan untuk menyajikan bilangan bulat. Bilangan ini dapat berukuran 1, 2 atau 4 byte. (Gambar 3-1.) mengilustrasikan bobot posisi pada bilangan signed dan unsigned integer berukuran satu byte.Dalam format data signed integer satu byte, bit yang paling kiri adalah bit tanda bilangan S. Jika S=0 maka bilangan bertanda positif dan jika S=1 maka bilangan bertanda negatif. Range dari bilangan ini adalah dari -128 sampai -1 dan 0 sampai +127.Sebenarnya, bilangan singed integer ini didapat dari komplemen ke-dua dari bilangan positifnya.
-
Gambar 3-1. Byte Unsigned dan Unsigned menggambarkan bobot setiap posisi bit
128 64 32 16 8 4 2 1 Bobot biner
Byte Unsigned
-128 64 32 16 8 4 2 1 Bobot biner
Byte SignedBack
-
Sedangkan untuk unsigned integer satu byte, semua bit digunakan untuk menyajikan bilangan integer. Range untuk bilangan ini adalah dari 0 sampai 255.Sekarang coba anda tentukan range bilangan signed dan unsigned integer untuk ukuran word dan double word.Untuk menyimpan bilangan integer satu byte pada memori, Untuk menyimpan bilangan integer satu byte pada memori, dapat digunakan direktif DB.
-
Contoh 3-3.; Unsigned integer
0000 FE DATA1 DB 254 ; unsigned integer 254 desimal0001 87 DATA2 DB 87H ; unsigned integer 87 heksa
; signed integer0002 9C DATA3 DB -100 ; signed integer -100 desimal0002 9C DATA3 DB -100 ; signed integer -100 desimal0003 64 DATA4 DB +100 ; signed ingeger +100 desimal0004 FF DATA5 DB +1 ; signed integer +1 desimal
Sedangkan untuk data ukuran word, digunakan direktif DW, dan ukuran doubleword digunakan direktif DD
-
Little Endian dan Big Endian
Untuk data berukuran word (16 bit) dibentuk oleh 2 byte data. Ada dua cara yang dapat digunakan untuk menyimpan data word kedalam memori, yaitu :1. Format Little Endian
Yaitu dengan menyimpan bit LSB pada lokasi memori Yaitu dengan menyimpan bit LSB pada lokasi memori yang paling rendah dan MSB pada lokasi yang paling tinggi. Format ini biasa digunakan pada komputer keluarga Intel.
2. Format Big EndianKebalikan dari Little Endian. Cara ini digunakan pada kerabat prosesor Motorola
-
Bilangan Real / Floating Point
Bilangan Real terdiri dari tiga field, yaitu :1. Bit signed S2. Eksponen3. Mantisa (Signifikan atau pecahan)3. Mantisa (Signifikan atau pecahan)
Secara umum ada tiga bentuk bilangan real yang dapat disimpan dalam memori (Gambar 3-2), yaitu1. Presisi tunggal berukuran 4 byte2. Presisi ganda berukuran 8 byte3. Presisi diperpanjang (expanded) berukuran 10 byte
-
Eksponen disimpan dalam format eksponen terbias. Untuk bilangan real presisi tunggal biasnya adalah 127 (7FH), sedangkan untuk presisi ganda biasnya adalah 1023 (3FFH).Bias ini akan dijumlahkan ke dalam eksponen sebelum disimpan ke dalam field eksponennya.
Ada dua pengecualian mengenai aturan-aturan yang diterap-Ada dua pengecualian mengenai aturan-aturan yang diterap-kan mengenai bilangan real, yaitu :1. Angka 0,0 di simpan semuanya sebagai bit 02. Bilangan tak berhingga disimpan dalam field eksponen
semuanya sebagai bit 1 dan dalam field mantisa semuanya sebagai bit 0.
-
Contoh 3-4.Bilangan desimal = +12Biner = 1100Biner yang dinormalkan = 1.1 x 23Bit tanda S = 0Eksponen (8 bit) = 0000 0011Bias (7FH) = 0111 1111Eksponen terbias = 1000 0010 (eksponen+bias)Mantisa (bit pecahannya) = 1000000 00000000 00000000 (23 bit)Sehingga didapat bilangan real-nya adalah :
S + Eksponen_Terbias + Mantisa = 0100 0001 0100 0000 0000 0000 0000 0000 = 41400000H
-
Sekarang Cobalah anda cari bilangan real presisi tunggal untuk desimal berikut :1. -122. +1003. -1,75
-
TTTTHHHHEEEE EEEENNNNDDDDTTTTHHHHEEEE EEEENNNNDDDD
-
Sampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depanSampai bertemu lagi Minggu depan
-
Desimal BCD Packed126235940
0001 00100000 0110 0010 00110101 1001 1000 0000
Tabel 3-3. Data BCD Packed dan Unpacked
Desimal BCD Unpacked126235940
0000 0001 0000 00100000 0110 0000 0010 0000 00110000 0101 0000 1001 0000 1000 0000 0000
Back
-
Gambar 3-2. Bilangan Real atau Floating Point
S Eksponen Mantisa31 30 23 22 0
(a) presisi tunggal
S Eksponen Mantisa63 62 52 51 0
(b) presisi ganda
Back
-
Pertemuan 4ARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESORARSITEKTUR INTERNAL MIKROPROSESOR
-
MODEL PEMROGRAMANModel pemrograman 8086 ke atas termasuk visible register (terlihat program) karena register-registernya digunakan selama pemrograman aplikasi dan ditentukan oleh instruksi (Gambar 4-1) Register lainnya merupakan invesible register (tak terlihat program) karena register-register tersebut tidak terlihat program) karena register-register tersebut tidak dapat dialamati selama pemrograman aplikasi, namun dapat digunakan tak langsung selama pemrograman sistem.
Hanya mikroprosesor 80286 keatas yang memiliki register-register invesible program.
-
BPSP
DLDHCLCHBLBHALAH
EBPESPEDXECXEBXEAX
GSFSSSESDSCS
Gambar 4-1. Model Pemrograman mikroprosesor Intel 8086 keatas
SIDIBP
ESIEDI
EBP
FLAG
GS
Catatan :- Daerah yang diarsir hanya terdapat pada 80386 keatas- FS dan GS tidak mempunyai nama khusus
-
Berdasarkan fungsinya, register-register yang dimiliki olehmikroprosesor keluarga Intel dapat dikelompokkanmenjadi tiga, yaitu : Multi purpose register (register serbaguna), yaitu :
Akumulator, Base, Count, Data, Base Pointer, Destination Index, Source Index.
Special purpose register (register untuk tujuan Special purpose register (register untuk tujuankhusus), yaitu : Instruction Poniter, Stack Pointer, Flags
Segment register, yaitu : Code Segment, Data Segment, Stack Segment, Extra Segment, FS danGS.
-
MULTI PURPOSE REGISTER1. Akumulator (EAX)
Akumulator digunakan untuk instruksi-instruksi aritmatika. EAX dapat dialamati sebagai register 32 bit (EAX), register 16 bit (AX atau register 8 bit (AH dan AL)
2. Base Index Register (EBX) BX dapat menyimpan alamat offset sebuah lokasi BX dapat menyimpan alamat offset sebuah lokasi memori. Dalam mikroprosesor 80386, EBX juga dapat mengalamati data memori
3. Count (ECX) ECX dapat digunakan untuk instruksi perhitungan, misalnya : instruksi string berulang (menggunakan CX), instruksi pergeseran dan perputaran (menggunakan CL), instruksi LOOP (menggunakan CX atau ECX)
-
Data (EDX) Digunakan untuk menyimpan hasil perkalian dan menyimpan sisa dalam perkalian. Dalam mikroprosesor 80386, register ini juga mampu mengalamati data memori.
Base Pointer (EBP) Base Pointer (EBP) EBP menunjuk sebuah lokasi memori yang digunakan untuk mentransfer data memori.
Destination Index (EDI) EDI sering digunakan untuk mengalamati data tujuan string pada beberapa instruksi string.
-
Source Index (ESI) Register Source Index sering digunakan untuk mengalamati sumber data string pada beberapa instruksi string.
SPECIAL PURPOSE REGISTER
Instruction Pointer (EIP) Instruction Pointer digunakan untuk mengalamati instruksi selanjutnya yang akan dieksekusi dalam sebuah segmen memori yang didefinisikan oleh register Code Segment. Isi register ini dapat di rubah dengan instruksi JUMP atau CALL
-
Stack Pointer (ESP) Register ini digunakan untuk mengalamati sebuah segmen memori yang dialokasikan untuk stack.
Flag (EFLAG) Register Flag menunjukkan kondisi mikroprosesor dan mengontrol operasinya. (Gambar 4-2.) mengontrol operasinya. (Gambar 4-2.) Lima bit FLAG terkanan dan FLAG Overflow dipengaruhi oleh operasi aritmatika atau logika, sedangkan transfer data tidak mempengaruhinya.Pada slide berikut, akan dijelaskan fungsi dari beberapa bit FLAG.Berikut ini adalah beberapa bit pada Flag Register.
-
ID VIP VIF AC VM RF NT IOP IOP O D I T S Z A P C01
31 21 20 19 18 17 16 14 13 12 11 10 9 8 7 6 4 2 1
8088/808680286
Gambar 4-2. FLAG Register untuk kerabat Mikroprosesor Intel
80286
8038680486
Pentium
-
a. Carry CBit C menyimpan carry setelah penambahan atau borrow setelah pengurangan
b. Paritas PParitas adalah jumlah angka satu dalam bilangan biner, yang dinyatakan dalam genap atau ganjil.Jika P=0, maka paritasnya adalah ganjil, dan sebaliknya.
c. Auxiliary carry ACarry tambahan (auxiliary carry) menampung carry setengah setelah penambahan atau borrow setengah setelah pengurangan, antara posisi bit 3 dan 4. Pada operasi untuk bilangan BCD, bit FLAG ini diuji oleh instruksi DAA dan DAS untuk menyeseuaikan nilai AL.
-
d. Zerro ZFLAG Z menunjukkan bahwa hasil dari operasi aritmaka atau logika adalah nol. Jika Z=1, maka hasil operasi adalah nol, sebaliknya jika Z=0, maka hasil operasi bukan nol.
e. Sign SFLAG S akan menampung tanda dari hasil operasi FLAG S akan menampung tanda dari hasil operasi aritmatika atau logika. Jika S=1, maka hasil operasi bertanda negatif, dan sebaliknya.
f. Interrupt IFLAG I mengendalikan operasi dari pin input INTR pada mikroprosesor. Jika I=1, maka pin INTRnya enable (aktif), dan sebaliknya. Bit ini dapat di kendalikan dengan intsruksi STI (SeT Interrupt) atau CLI (Clear Interrupt).
-
g. Diretion DFLAG arah ini memilih salah satu dari mode penambahan atau pengurangan untuk register DI dan/atau register SI selama instruksi string.
h. Overflow OOverflow terjadi ketika bilangan bulat bertanda (sign Overflow terjadi ketika bilangan bulat bertanda (sign Integer) ditambah atau dikurang. (untuk operasi pada bilangan tidak bertanda bit ini diabaikan)
. Suatu overflow menunjukkan apakah hasil operasi melebihi kapasitas mesin.contohnya jika 7FH(+127) ditambah dengan 01H(+1) dengan menggunakan penambahan 8 bit, hasilnya adalah 80H(-128). Hal ini akan membuat bit O menjadi 1
-
SEGMENT REGISTERRegister segment menghasilkan alamat segmen memori ketika dikombinasikan dengan register lainnya. Sebuah segment bisa berukuran 64 KByte (8086 sampai 80286) atau 4 GByte (80386 keatas) Code Segment CS
Code Segment adalah suatu bagian dari memori yang Code Segment adalah suatu bagian dari memori yang memuat kode (program dan prosedur) yang digunakan oleh mikroprosesor. Register CS mendefinisikan alamat awal dari bagian kode pemuatan memori.
Data Segment DSSegment data adalah bagian dari memori yang berisi sebagian besar data yang digunakan oleh program.
-
3. Extra Segment ESSegment ekstra adalah suatu penambahan segment data yang digunakan oleh beberapa instruksi string untuk menyimpan data tujuan.
4. Stack Segment SSStsck Segment mendefinisikan area memori yang Stsck Segment mendefinisikan area memori yang digunakan untuk stack.
5. FS dan GSFS dan GS adalah register segment tambahan yang tersedia pada mikroprosesor 80386 keatas.
-
PENGALAMATAN MEMORI MODE REAL
Mikroprosesor 80286 keatas beroperasi baik dalam mode real maupun mode terlindung (protected) Operasi mode real mengijinkan penempatan ruang memorihanya pada 1 MByte pertama. Sehingga memori I MBytepertama sering disebut dengan memori real atau memorikonvensional.konvensional.Sistem Operasi DOS menghendaki mikroprosesor beroperasi pada mode real. Pada semua kasus, mikroprosesor mengawali operasinya pada mode real saat pertama power diaktifkan atau mikroprosesor direset.
-
Segment64 KByte
Memori Mode RealFFFFFH
Gambar 4-3. Skema Peng-alamatan Memori ModeReal dengan Segment-Offset.
Register segmentBerisi 1000H
Register OffsetBerisi F000H
00000H
10000H
1F000H
1FFFFH
-
SEGMENT DAN OFFSET
Kombinasi dari suatu alamat segmen dan alamat offset mengakses lokasi memori pada mode real.Alamat segment berada dalam suatu segment register, menetapkan alamat awal dari segment memori 64 KByte.Alamat offset (displacement) memilih sembarang lokasi Alamat offset (displacement) memilih sembarang lokasi relatif pada sebuah segment yang alamat awalnya telah ditentukan pada segment register.Misalnya, jika register segment berisi 1000H, maka alamat awal segment adalah 10000H. Jika register offset berisi F000H berarti alamat yang dimaksud adalah 10000H + F000H = 1F000H. Sedangkan akhir dari segment adalah 10000H + FFFFH = 1FFFFH.(Gambar 4-3)
-
Sebagai latihan, lengkapilah tabel berikut ini
2000H
Alamat Akhir
Alamatawal
RegisterSegment
1FFFH
2C01H
B231FH
53A10H
-
Sekarang tentukanlah alamat yang dimaksud, jika :
2000H1000H
Alamat yang dimaksud
RegisterOffset
RegisterSegment
0FFFH
1A07H
1A00H
1FF0H2299H
B2310H
1B236H
4E12FH
-
The EndThe End
-
Pertemuan 5M O D E L P E N G A L A M A T A N
-
Pada pembahasan kali ini, digunakan instruksi MOV untuk menjelaskan mode pengalamatan data.Format penulisannya adalah :
MODE PENGALAMATAN DATA
MOV Reg2,Reg1
MOV disebut sebagai opcedeReg1 dan Reg2 disebut sebagai operandReg1 adalah register atau memori sumberReg2 adalah register atau memori tujuan
-
Digunakan untuk memindahkan salinan data dari register sumber ke register tujuan.Syarat :1. Register sumber dan tujuan harus berukuran sama.
registe 8 bit = AH, AL, BH, BL, CH, CL, DH dan DL.
1. PENGALAMATAN REGISTER
registe 8 bit = AH, AL, BH, BL, CH, CL, DH dan DL.register 16 bit = AX, BX, CX, DX, SP, BP, SI dan DI.register 32 bit = EAX, EBX, ECX, EDX, ESP, EBP, ESI
dan EDI2. Pemindahan data dari register segment ke register segment
tidak diijinkan.3. Register segment tidak boleh menjadi register tujuan.
-
Gambar 5-1. Contoh instruksi pengalamatan register MOV BX,CX
AF762234EBXEAX
Array Register
341211ACECX
CatatanIsi CX=1234 akan dipindahkan ke BXSehingga isi BX akan berubah menjadi 1234
-
Coba anda jelaskan apa yang terjadi pada instruksi berikut ini ?
MOV ECX,EBX
MOV CH,CL
Operasi yang dilakukanInstruksi
MOV CS,AX
MOV BL,DX
MOV ES,DS
MOV SP,BP
-
2. PENGALAMATAN SEGERA (IMMEDIATE) Digunakan untuk memindahkan data konstan ke register tujuan. Data konstan yang dimaksud dapat berukuran byte atau word. Untuk 80386 keatas dapat berupa data double-word.Coba ingat lagi : byte, word dan double-word, masing-masing berisi berapa bit !masing berisi berapa bit !Sekarang jelaskan apa yang tersimpan di register tujuan, jika instruksi berikut ini dieksekusi : MOV BL,44 MOV AL,A MOV CL,11001010B
-
3. PENGALAMATAN DATA LANGSUNGPengalamatan langsung dengan instruksi MOV, akan memindahkan data antara lokasi memori (yang ditempatkan dalam segment data) dan akumulator (AL, AH, AX atau EAX).Misalnya : MOV AL,[1234H]Instruksi tersebut akan memindahkan salinan data yang ada Instruksi tersebut akan memindahkan salinan data yang ada di memori dengan alamat offset=1234H. Alamat segment secara default akan diambil dari register segment data DS. Jika DS berisi 1000H, maka alamat memori yang dimaksud adalah 10000H+1234H=11234H.Jelaskan :1. Mengapa alamat segment-nya menjadi 10000H ?2. Mengapa register DS digunakan untuk menentukan
alamat segmen ?
-
Gambar 5-2. Ilustrasi untuk instruksi MOV AL,[1234H]
2AEAXArray Register
8AH11233H11234H11235H
8AH
Memori
0010EDS11233H
10H*
10000H + 1234HCatatan :Isi AL akan berubah menjadi 8AH
-
4. PENGALAMATAN TIDAK LANGSUNG
Pengalamatan register tidak langsung memungkinkan data dialamatkan pada lokasi memori melalui alamat offset yang ditunjukkan oleh setiap register berikut ini : BP, BX, DI dan SI.jika register BX berisi 1000H dan instruksi MOV AX,[BX]jika register BX berisi 1000H dan instruksi MOV AX,[BX]dilakukan, maka isi dari segment data yang berukuran word pada alamat offset 1000H akan disalin ke rigister AX.Jika register DS berisi 0100H, maka alamat memori yang sebenarnya adalah 01000H+1000H=02000H.Isi memori pada lokasi 02000H disalin ke dalam AL dan isi pada lokasi 02001H disalin ke AH.
-
Gambar 5-2. Ilustrasi untuk instruksi MOV AL,[BX]
2AEAXArray Register
8AH11233H11234H11235H
8AH
Memori
EBX 12 340010EDS
11233H10H
*
10000H + 1234HCatatan :Isi AL akan berubah menjadi 8AH
EBX 12 34
-
PENGALAMATAN MEMORI PROGRAMMode pengalamatan memori program yang digun akan dengan instruksi JMP dan CALL, terdiri dari tiga bentuk yang berbeda, yaitu : langsung, relatif dan tidak langsung.
1. Pengalamatan Memori Program LangsungMode pengalamatan ini digunakan untuk semua loncatan dan panggilannya. dan panggilannya. Instruksi untuk mode pengalamatan ini, menyimpan alamat dengan opcode.Contoh :
1. JMP [10000H]2. JMP Label3. CALL Label
-
2. Pengalamatan Memori Program Relatif Istilah relatif disini maksudnya adalah relatif terhadap instruction pointer IP.Misalnya : JMP [2]Jika CS berisi 1000H dan IP berisi 0000H, maka penunjuk instruksi akan melompat dua byte berikutnya. Sehingga instruksi berikutnya yang akan dieksekusi berada pada instruksi berikutnya yang akan dieksekusi berada pada alamat 10004H
10000 EB JUMP [2]10001 02100021000310004
-
3. Pengalamatan Memori Program Tidak LangsungMikroprosesor memungkinkan beberapa pengalamatan memori tidak langsung untuk instruksi JMP dan CALL.Misalnya : JMP BX.Jika BX berisi 1000H dan isntruksi JMP BX di eksekusi, maka mikroprosesor meloncat ke alamat offset 1000H dalam segment kode saat ini.dalam segment kode saat ini.
-
Coba anda jelaskan apa yang terjadi jika instruksi berikut ini di eksekusi ?
JMP CX
JMP AX
Operasi yang dilakukanInstruksi
JMP ECX
JMP TABLE[BX]
JMP NEAR PTR[DI+2]
JMP NEAR PTR[BX]
-
MODE PENGALAMATAN MEMORI STACK
Memori stack adalah memori LIFO yang menggambarkan cara data disimpan dan dihapus dari stack.Data ditempatkan pada stack dengan instruksi PUSH dan dihapus dengan instruksi POP.Instruksi CALL selalu menggunakan stack untuk menyimpan alamat kembali prosedur dan instruksi RET menyimpan alamat kembali prosedur dan instruksi RET untuk menghapus alamat kembali dari stack.Memori stack didefisikan oleh register Stack Segment SS atau ESS dan register Stack Pointer SP atau ESP.
-
The endThe endThe endThe endThe endThe endThe endThe end
-
Pertemuan 6SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088SPESIFIKASI PERANGKAT KERAS 8086/8088
-
Gambar 6-1. Pin-Out dan Fungsi Pin Intel 8088
VccA15A16/S3A17/S4A18/S5A19/S6#SS0 (HIGH)MN/#MX#RDHOLD (#RQ/#GT0)
GNDA14A13A12A11A10A9A8AD7AD6
CPU 8088
1 40 2 393 384 375 366 357 348 339 32 10 31
Modemaks
HOLD (#RQ/#GT0)HLDA (#RQ/#GT1)#WR (#LOCK)#IO/M (#S2)DT/#R (#S1)#DEN (#S0)ALE (QS0)#INTA (QS1)#TESTREADYRESET
AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
808810 3111 3012 29 13 2814 2715 26 16 2517 2418 2319 2220 21
-
VccAD15A16/S3A17/S4A18/S5A19/S6#BHE (S7)MN/#MX#RD#RQ/#GT0 (HOLD)
1 40 2 393 384 375 366 357 348 339 32 10 31
GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6 CPU
Gambar 6-2. Pin-Out dan Fungsi Pin Intel 8086
Modemin
#RQ/#GT0 (HOLD)#RQ/#GT1 (HLDA)#LOCK (# WR)#S2 (M/#IO)#S1 (DT/#R)#S0 (#DEN)QS0 (ALE)QS1 (#INTA)#TEST READYRESET
10 3111 3012 29 13 2814 2715 26 16 2517 2418 2319 2220 21
AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND
CPU 8086
-
A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3
LatchA19/S6A18/S5A17/S4A16/S3
A15A14A13A12A11A10A9A8
Intel 8088 A3A2A1A0
D7D6D5D4D3D2D1D0
Latch
Intel 8088
ALE
AD7AD6AD5AD4AD3AD2AD1AD0
-
BHEA19A18A17A16
A15 - A8
A7 - A0
BHE/S7A19/S6A18/S5A17/S4A16/S3
Intel 8086
ALE G G
Latch
G
D15 D8
D7 D0
ALE
AD15 AD8
AD7 - AD0
G
Latch
G
Latch
-
Persamaan 8088 dengan 8086 adalah :- Terkemas dalam dual in line Package (DIP) 40 - Merupakan mikroprosesor 16 bit- Memiliki 20 bit pada bus alamatnya
Perbedaan utamanya adalah :Perbedaan utamanya adalah :- 8086 memiliki bus data 16 bit, sedangkan 8088 hanya 8
bit- 8086 tidak membutuhkan generator clock, sedangkan
8088 membutuhkan.
-
Pin yang tidak terpengaruh oleh perubahan mode (maksimum atau minimum)1. AD7-AD0 : Jalur bus alamat/data.
Pada 8088 merupakan bus data alamat yang dimultipleks dan berisi delapan bit paling kanan dari alamat memori atau nomor port jika ALE berlogika 1 atau data ketika ALE berlogika 0
2. A15-A8 : BUS ALAMAT.2. A15-A8 : BUS ALAMAT.8088 menyediakan bit-bit alamat memori paruh atas yang ada selama siklus bus.
3. AD15-AD8 : jalur bus alamat/data8086 terdiri dari bus alamat/data bagian atas. Jalur-jalur ini berisi bit-bit alamat A15-A8 jika ALE berlogika 1 dan hubungan bus data D15-D8 jika ALE berlogika 0.
-
4. A19/S6-A16/S3 : bus alamat/status.Bit status S6 selalu tetap berlogika 0Bit S5 menunjukkan kondisi bit-bit flag IFBit S4 dan S3 menunjukkan segmen memori yangdiakses selama siklus bus pada saat itu (Tabel 6-1)
.
Tabel 6-1. Fungsi bit statusS4 S3 Fungsi
0 0 Segmen ekstra0 1 Segmen stack1 0 Kode atau tanpa segmen1 1 Segmen data
-
5. #RD : sinyal baca.Jika sinyal baca berlogika 0, bus data bisa menerima data dari luar (memori atau I/O)
6. READYInput ini dikendalikan untuk menyisipkan status tunggu ke timing mikroprosesor. Jika pin ini berlogika 0, mikroprosesor memasuki status tunggu dan tetap idle. Jika pin ini berlogika 1, tidak ada efek apapun.mikroprosesor memasuki status tunggu dan tetap idle. Jika pin ini berlogika 1, tidak ada efek apapun.
7. INTR : Interrupt RequestDigunakan untuk meminta interupsi perangkat keras.
-
8. #TESTPin ini merupakan input yang ditest oleh instruksi wait. Jika #TEST berlogika 0, instruksi wait berfungsi sebagai NOP. Jika #TEST berlogika 0, instruksi wait menunggu sampai #TEST berlogika 1. Biasanya pin ini dihubungkan dengan koprosesor numerik.
9. NMI : Non Maskable InterruptInput NMI sama dengan INTR kecuali interupsi NMI Input NMI sama dengan INTR kecuali interupsi NMI tidak memeriksa apakan bit flag IF berlogika 1.
10. RESETinput RESET menyebabkan mikroprosesor mereset dirinya sendiri.
11. CLK : ClockPin ini menyediakan sinyal waktu (timing) dasar ke mikroprosesor.
-
12. Vcc : input catu daya13. GND : Ground
Pin ini merupakan jalur kembali catu daya.14. MN/#MX : mode minimum/mode maksimum.
Operasi mode minimum didapat dengan menghubungkan pin MN/#MX langsung ke +5,0 V. Sedangkan operasi mode maksimum didapat dengan menghubungkan pin ke MN/#MX groundmenghubungkan pin ke MN/#MX ground
15. #BHE/S7 : bus high enablePin ini digunakan pada 8086 untuk enabel bit bus data yang paling signifikan selama operasi baca/tulis.
-
P I N P I N M O D E M I N I M U MOperasi mode minimum 8086/8088 didapat denganmenghubungkan pin MN/MX langsung ke +5.0 volt1. IO/#M (8088) atau M/#IO (8086)
Pin ini digunakan untuk memilih memori atau IO2. #WR
Pin ini merupakan strobe yang emenunjukkan bahwa8086/8088 sedang mengeluarkan data ke memori atau8086/8088 sedang mengeluarkan data ke memori ataualat I/O. Selama pin ini berlogika 0, bus data berisi datayang valid untuk memori atau I/O
3. #INTAsinyal interrupt ackowledge merupakan tanggapanterhadap pin input INTR. Pin #INTA biasanyadigunakan untuk memasukkan nomor vector interruptke bus data sebagai jawaban atas permintaan interupsi.
-
4. ALEAddress latch enable menunjukkan bahwa busalamat/data berisi informasi alamat. Alamat ini bisaalamat memori atau nomor port.
5. DT/#RData transmitter/receiver menunjukan bahwa bus datamikroprosesor sedang mengirim atau menerima data .
6. DENData bus enable mengaktifkan buffer bus data eksternalData bus enable mengaktifkan buffer bus data eksternal
7. HOLDJika input HOLD berlogika 1, meminta layanan DMA.
6. HLDAHold ackowledge menunjukkan tanggapan terhadappermintaan DMA
9. #SS0Pin ini ekivalen dengan S0 pada operasi mikroprosesormode maksimum. Sinyal ini digabungkan dengan IO/#Mdan DT/#R untuk mengkode fungsi siklus bus saat itu.
-
CLK
Address Bus
Satu siklus bus
Alamat Valid
AD0 AD7
#WR
Alamat Data ditulis ke Memori atau I/O
-
CLK
Address Bus
Satu siklus bus
Alamat Valid
AD0 AD7
#RD
Alamat Data dibaca
-
P I N P I N M O D E M A K S I M U MUntuk mencapai mode maksimum, yaitu untuk penggunaandengan koprosesor eksternal, pin MN/#MX dihubungkan keground.1. #S2, #S1, dan #S0
Bit-bit status ini menunjukkan fungsi siklus bus saat itu.Sinyal-sinyal ini akan didekode oleh bus controller 8288
2. #RO/#GT1 dan #RO/#GT2Pin-pin request/grant ini meminta layanan DMA selamaPin-pin request/grant ini meminta layanan DMA selamaoperasi mode maksimum
3. #LOCKOutput lock digunakan untuk mengunci periferal darisistem. Pin ini diaktifkan dengan menggunakan awalanLOCK pada semua instruksi.
4. QS1 dan QS2Pin-pin queue status menunjukkan status antrianinstruksi internal . pin-pin ini disediakan untuk akses olehkoprosesor numerik.
-
Coba diskusikan .
Pin-pin mana saja yang merupakan bus data, alamat dan kendali ?
Apa yang dimaksud dengan pin-pin dimultipleks ?Apa yang dimaksud dengan pin-pin dimultipleks ?Kenapa pin-pin tersebut dimultipleks ?
Nama sebuah pin pada umumnya sesuai dengan fungsinya, coba anda jelaskan fungsi sebuah pin dari
namanya !
-
The endThe end