Sejarah dan Pengertian Mikroprosesor
Mikroprosesor adalah sebuah IC (Integrated Circuit) yang digunakan sebagai otak/pengolah utama dalam sebuah sistem komputer.
Mikroprosesor merupakan hasil dari pertumbuhan semikonduktor. Prosesor adalah chip yang sering disebut “Microprosessor” yang sekarang ukurannya sudah mencapai gigahertz. Ukuran tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasatan adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel.
Pertama kali Mikroprosesor dikenalkan pada tahun 1971 oleh Intel Corp, yaitu Mikroprosesor Intel 4004 yang mempunyai arsitektur 4 bit. Dengan penambahan beberapa peripheral (memori, piranti I/O, dsb) Mikroprosesor 4004 di ubah menjadi komputer kecil oleh intel. Kemudian mikroprosesor ini di kembangkan lagi menjadi 8080 (berasitektur 8bit), 8085, dan kemudian 8086 (berasitektur 16bit).
Microprocessor 4004
Intel meluncurkan mikroprosesor pertama di dunia, 4-bit 4004, yang didesain oleh Federico Faggin. Microprocessor 4004.Processor di awali pada tahun 1971 dimana intel mengeluarkan processor pertamanya yang di pakai pada mesin penghitung buscom. Ini adalah penemuan yang memulai memasukan system cerdas kedalam mesin.
Mikroprosesor 4004 mempunyai 2.250 transistor PMOS, menangani data 4 bit, dan dapat mengeksekusi 60 ribu operasi per detik. Mikroprosesor 4004 ini adalah salah satu dari seri IC untuk komponen kalkulator tersebut: 4001: memori ROM 2.048 bit; 4002: memori RAM
MIKROPROSESOR 8008
Pada tahun 1972 intel mengeluarkan microprocessor 8008 yang berkecepatan hitung 2 kali lipat dari MP sebelumnya. MP ini adalah Mikroprosesor 8 bit pertama. Mp ini juga di desain untuk mengerjakan satu pekerjaan saja. Bill Gates muda dan Paul Allen coba mengembangkan bahasa pemograman untuk chip tersebut, namun saat itu masih kurang kuat.
MIKROPROSESOR 8080
Pada tahun 1974 intel kembali mengeluarkan Mikroprosesor terbaru dengan seri 8080, dengan 4.500 transistor yang memiliki kinerja 10 kali pendahulunya. Pada seri ini intel melakukan perubahan dari Mikroprosesor multivoltage menjadi triple voltage, teknologi yang di pakai NMOS, lebih cepat dari seri sebelumnya yang memakai teknologi PMOS. Mikroprosesor ini adalah otak pertama bagi komputer yang bernama altair. Pada saat ini pengalamatan memory sudah sampai 64 kilobyte. Kecepatanya sampai 10X mp sebelumnya.
Gambar Pinnya:Mikroprosesor merupakan hasil dari pertumbuhan semikonduktor. Prosesor adalah chip yang sering disebut “Microprosessor” yang sekarang ukurannya sudah mencapai gigahertz. Ukuran tersebut adalah hitungan kecepatan prosesor dalam mengolah data atau informasi. Merk prosesor yang banyak beredar dipasatan adalah AMD, Apple, Cyrix VIA, IBM, IDT, dan Intel.
Pertama kali Mikroprosesor dikenalkan pada tahun 1971 oleh Intel Corp, yaitu Mikroprosesor Intel 4004 yang mempunyai arsitektur 4 bit. Dengan penambahan beberapa peripheral (memori, piranti I/O, dsb) Mikroprosesor 4004 di ubah menjadi komputer kecil oleh intel. Kemudian mikroprosesor ini di kembangkan lagi menjadi 8080 (berasitektur 8bit), 8085, dan kemudian 8086 (berasitektur 16bit).
Microprocessor 4004
Intel meluncurkan mikroprosesor pertama di dunia, 4-bit 4004, yang didesain oleh Federico Faggin. Microprocessor 4004.Processor di awali pada tahun 1971 dimana intel mengeluarkan processor pertamanya yang di pakai pada mesin penghitung buscom. Ini adalah penemuan yang memulai memasukan system cerdas kedalam mesin.
Mikroprosesor 4004 mempunyai 2.250 transistor PMOS, menangani data 4 bit, dan dapat mengeksekusi 60 ribu operasi per detik. Mikroprosesor 4004 ini adalah salah satu dari seri IC untuk komponen kalkulator tersebut: 4001: memori ROM 2.048 bit; 4002: memori RAM
MIKROPROSESOR 8008
Pada tahun 1972 intel mengeluarkan microprocessor 8008 yang berkecepatan hitung 2 kali lipat dari MP sebelumnya. MP ini adalah Mikroprosesor 8 bit pertama. Mp ini juga di desain untuk mengerjakan satu pekerjaan saja. Bill Gates muda dan Paul Allen coba mengembangkan bahasa pemograman untuk chip tersebut, namun saat itu masih kurang kuat.
MIKROPROSESOR 8080
Pada tahun 1974 intel kembali mengeluarkan Mikroprosesor terbaru dengan seri 8080, dengan 4.500 transistor yang memiliki kinerja 10 kali pendahulunya. Pada seri ini intel melakukan perubahan dari Mikroprosesor multivoltage menjadi triple voltage, teknologi yang di pakai NMOS, lebih cepat dari seri sebelumnya yang memakai teknologi PMOS. Mikroprosesor ini adalah otak pertama bagi komputer yang bernama altair. Pada saat ini pengalamatan memory sudah sampai 64 kilobyte. Kecepatanya sampai 10X mp sebelumnya.
Fungsi PIN pada Microprosessor 8080/8086
1. AD0-AD7
Pin
ini (Pin 9-16) digunakan untuk transmisi memori dan alamat I/O pada
tiap siklus bus. Pin-pin ini dimultipleks, dimana di awal siklus bus,
pin-pin ini berfungsi sebagai bita alamat A0-A7, dan pada siklus
berikutnya digunakan oleh prosesor sebagai bus data D0-D7, dan informasi
alamat A0-A7 dilatch.
2. AD8-AD15
Pin
ini (pin 2-8, 39) digunakan untuk memori output dan bit alamat A8-A15.
Pin ini tidak dimultipleks dan tetap stabil di siklus bus. Dalam desain
PC, pin ini dilatch dan direpower menjadi bit alamat A8-A15 dalam siklus
bus.
3. A16/S3-A19/S6
Pada
permulaan tiap siklus memori, pin ini (pin 35-38) memberikan bit alamat
A16-A19, Pada siklus sisanya, menyediakan bit status internal 8088.
Jika S6 diset low, S5 memberikan status flag interrupt enable. S3 dan S4
dikodekan untuk memberikan segmen register yang digunakan untuk siklus
bus.
S4
|
S3
|
Segmen
|
0
0
1
1
|
0
1
0
1
|
Segmen Alternatif
Segmen Stack
Segmen Kode
Segmen Data
|
Desain PC tidak menggunakan informasi status ini. Jika pin ini dilatch dan direpower , mak akan menjadi bit alamat A16-A19
4. CLK
Pin
(Pin 19) ini merupakan jalur masukan yang menyediakan informasi timing
(pewkatuan) untuk mikroprosesor 8088. Dalam desainnya, masukan pin ini
diambilkan IC clok 8284A dengan frekuensi 4.77 MHz dengan siklus kerja
½.
5. RQ/GT0
Pin
ini merupakan jalur bidirectional yang digunakan oleh lokal bus untuk
penggunaan bus lokal. Soket ini kompatibel dengan prosesor numerik 8087
produksi Intel. Sinyal ini akan mengijinkan prosesor untuk masuk ke
dalam sistem untuk membentuk fungsinya.
6. RQ/GT1
Pin ini (pin 30) sama fungsinya dengan RQ//GT0, tetapi dengan prioritas rendah. Dalam desain PC jalur ini tidak digunakan.
7. LOCK
Pin
ini (pin 29) diaktifkan oleh instruksi lock dan tetap aktif sampai
akhir dari instruksi berikutnya. Jika desain PC bukan merupakan desain
dengan bus multi- master, maka pin ini tidak digunakan.
8. NMI
Pin
ini (pin 17) digunakan untuk memberikan nonmaskable interrupt
(Interrupt yang tidak bisa dihalangi) mikroprosesor 8088. Dalam desain
PC, NMI ini dihalangi keluar dari prosesor dengan suatu bit programamble
port. Dalam aplikasi desain PC permintaan NMI digunakan untuk menandai
paritas error dalam memori sistem, menerima permintaan interrupt dari
soket prosesor dan menerima permintaan interrupt dari piranti pada
sistem bus.
9. INTR
Sinyal
masukan (pin 18) adalah masukan interrupt yang dapat dihalangi
(maskable interrupt) prosesor 8088. Dalam desain PC, pin ini dihubungkan
dengan IC kontroler interrupt 8259A yang memperluas masukan interrupt
menjadi 8 masukan interrupt.
1 0. READY
Pin
22 ini digunakan untuk memasukkan kondisi “wait” dalam siklus bus
prosesor 8088, sehingga siklus memperpanjang siklus.sinyal ini digunakan
untuk memperlambat prosesor 8088 saat mengakses portI/O atau memori
yang jauh lebih lambat dari siklus bus 8088. Dalam desain PC, jalur ini
diambilkan dari IC clock 8284A yang menyinkronkan dengan clock sistem.PC
menggunakan fungsi Ready untuk memasukkan 1 kondisi wait dalam semua
akses port, memasukkan 1 kondisi wait dalam siklus DMA, dan memberikan
kondisi wait sistem bus.
1 1. RESET
Sinyal
pin 21 ini digunakan untuk menahan. Dalam desain PC sinyal ini
diambilkan dari IC clock 8284A yang menerima masukan dari sistem catu
daya.
1 2. QS0 dan QS1
Jalur 2 keluaran ini (pin 24 dan 25) memberikan status queue instruksi internal 8088.
1 3. TEST
Pin
masukan (pin 23) dites oleh instruksi “wait for test”. Jika tes low,
eksekusi dilanjutkan, jika tes high, 8088 menunggu dalam kondisi idle
sampai kondisi pin menjadi low. Dalam desain PC masukan tes dihubungkan
dengan pin busy 8087.
1 4. S0, S1, dan S2
Pin
keluaran (pin 26-28) memberikan informasi status untuk siklus bus.
Status ini valid pada tiap awal siklus bus. Dalam desain PC, pin ini
dihubungkan dengan bus kontroler 8288 yang dikodekan. Keluaran dekode
8088 menjadi pengontrol jalur dalam sistem bus. Berikut sinyal yang
dihasilkan dari status jalur oleh 8288 dan diberikan pada sistem bus :
IOR, IOW, MEMR, MEMW, dan ALE.Karakteristik Input
Karakteristik input mikroprosesor-mikroprosesor ini kompatibel dengan semua komponen logika standar yang tersedia saat ini. Berikut ini merupakan table level tegangan input dan persyaratan arus input untuk semua pin input pada kedua mikroprosesor. Level arus input sangat kecil karena input merupakan koneksi gerbang MOSFET dan hanya mempresentasikan arus bocor.
Level Logika
|
Tegangan
|
Arus
|
0
|
0.8V maksimum
|
±10 μA maksimum
|
1
|
2.0V maksimum
|
±10 μA maksimum
|
Tabel 1. Karakteristik Input Mikroprosesor 8086 dan 8088
b. Karakterisrik outputLevel tegangan logika 1 pada 8086/8088 kompatibel dengan sebagian besar keluarga logika standar tetapi logika 0 tidak. Rangkaian standar logika memiliki tegangan maksimum logika 0 sebesar 0.4V dan 8086/8088 memiliki maksimum 0.45V. dengan demikian ada perbedaan 0.05V.
Perbedaan ini memperkecil kekebalan terhadap noise dari level standar sebesar 400mV (0.V-0.45V) menjadi 350 mV. Kekebalan terhadap noise adalah perbedaaan antara level tegangan output logika 0 dan level tegangan output logika 1.
Level Logika
|
Tegangan
|
Arus
|
0
|
0.45V maksimum
|
2.0 μA maksimum
|
1
|
2.4V mksimum
|
-400 μA maksimum
|
Tabel 2. Karakteristik Output Mikroprosesor 8086 dan 8088
- 6. Register dan instruksi
Karena pengkodean kompak terinspirasi oleh 8-bit prosesor, instruksi sebagian besar satu-alamat atau dua-address operasi yang berarti bahwa hasil itu disimpan di salah satu operan. Paling banyak satu dari operan bisa berada di memori, tetapi ini operan memori juga bisa menjadi tujuan, sedangkan operan lain, sumber, bisa berupa register atau langsung. Sebuah lokasi memori tunggal juga bisa sering digunakan baik sebagai sumberdan tujuan yang, antara faktor-faktor lainnya, lanjut berkontribusi pada kepadatan kode sebanding dengan (dan sering lebih baik daripada) mesin bit yang paling delapan.
Meskipun tingkat umum dari register sebagian besar jauh lebih besar daripada di 8080 atau 8085, itu masih cukup rendah dibandingkan dengan kontemporer khas komputer mini , dan register juga kadang-kadang digunakan secara implisit oleh petunjuk. Sementara sempurna masuk akal bagi programmer assembly, ini alokasi yang rumit untuk compiler dibandingkan dengan lebih teratur 16 – dan 32-bit prosesor seperti PDP-11 , VAX , 68000 , dll, di sisi lain, dibandingkan dengan semi-kontemporer sederhana (tapi populer dan di mana-mana) 8-bit mikroprosesor seperti6502 , 6809 , atau 8085 , itu secara signifikan lebih mudah untuk menghasilkan kode untuk desain 8086.
The 8086 juga menampilkan 64 KB dari 8-bit (atau alternatif 32 K-kata 16-bit) I / O space. A 64 KB (satu segmen) tumpukan berkembang menuju alamat yang lebih rendah didukung dalam hardware , 2-byte kata didorong ke stack dan bagian atas stack ditunjuk oleh SS: SP. Ada 256 potong , yang dapat dipanggil oleh kedua hardware dan software. Menyela dapat kaskade, menggunakan stack untuk menyimpan alamat kembali .
Prosesor memiliki beberapa instruksi baru (tidak hadir di 8080 dan 8085) ke tumpukan dukungan yang lebih baik berdasarkan bahasa pemrograman tingkat tinggi seperti Pascal dan PL / M , beberapa yang lebih berguna yang mendorong mem-op, dan ukuran ret,mendukung “pascal konvensi pemanggilan ”secara langsung. (Beberapa orang lain, seperti mendorong immed dan masukkan, akan ditambahkan dalam 80.186 berikutnya, 80286, dan 80386 desain.) Ini juga memiliki mekanisme tumpukan-penanda. Ada tiga bendera kontrol IF (Interrupt Flag) TF (Trap Flag) DF (flag Arah).
- 7. Fungsi Pin Out IC Mikroprosesor 8086
A19/S6-A16/S3 Bit-bit bus alamat/status dimultipleks untuk memberikan sinyal alamat A19-A16 dan juga bit status S6-S3. Pin-pin ini juga mempertahankan status impedansi tinggi selama hold acknowledge. Bit status S6 selalu merupakan logika 0, bit S5 menunjukkan kondisi bit-bit flag 1F. S4 dan S3 menunjukkan segmen mana yang diakses selama siklus bus pada saat itu. Berikut ini fungsi status bit S3 dan S4 :
S4
|
S3
|
Fungsi
|
0
|
0
|
Segmen ekstra
|
0
|
1
|
Segmen stack
|
1
|
0
|
Kode atau tanpa segmen
|
1
|
1
|
Segmen data
|
Tabel 3.Fungsi Status Bit S3 dan S4
RD Jika sinyal baca berupa logika 0. Bus data bisa menerima data dari
memori atau alat I/O yang dihubungkan ke system. Pin ini naik ke status
impedansi tinggi selama acknowledge hold.READY Input ini dikendalikan untuk menyisipkan status tunggu ke timing mikroprosesor. Jika pin ready diletakkan pada level logika 0 mikroprosesor memasuki status tunggu dan tidak bekerja. Jika pin ready diletakkan pada level logika 1 tidak memiliki efek pada operasi mikroprosesor.
INTR Intrrupt request digunakan untuk meminta interrupt perangkat keras. Jika INTR dijaga tetap high ketika IF=1. Mikroprosesor memasuki siklus interrupt acknowledge setelah instruksi pada saat itu dijalankan sepenuhnya.
TEST Pin test merupakan input yang dites oleh instruksi wait. Jika berlogika 0 maka instruksi wait berfungsi sebagai NOP. Jika berlogika 1 maka instruksi wait menunggu sampai TEST berlogika 0.
NMI Input non-maskable interrupt sama dengan INTR kecuali interrupt NMI tidak memeriksa apakah bit flah 1F merupakan logika 1. Jika NMI diaktifkan, input interrupt ini menggunakan vector interrupt 2.
RESET Input reset menyebabkan mikroprosesor mereset dirinya sendiri jika pin ini tetap high selama minimum empat periode clock.
CLK Pin clock menyediakan sinyal waktu/timming dasar ke mikroprosesor. Sinyal clock harus memiliki siklus kerja 33% untuk memberikan timing internal yang sesuai.
Vcc Input catu daya.
GND Hubungan ground merupakan jalur kembali catu daya.
MN/MX Pin mode minimum/maksimum memilih operasi mode minimum atau maksimum untuk mikroprosesor. Jika dipilih mode minimum pin ini harus dihubungkan langsung ke +5.0V.
BHE/S7 Pin bus high enable digunakan untuk enable bus data yang paling signifikan (D15-D8) selama operasi baca atau tulis. Status S7 selalu merupakan logika 1.S2, S1, dan S0 Bit-bit status ini menunjukkan fungsi siklus bus saat itu. Sinyal-sinyal ini biasanya didekode oleh bus controller 8288.RO/GT1 dan Pin-pin request/grant ini meminta direct memory access (DMA). RO/GT0 selama operasi mode maksimum. Jalur-jalur ini bidireksional, digunakan untuk meminta dan member hak operasi DMA. LOCK Output lock digunakan untuk mengunci peripheral dari system. Pin ini diaktifkan dengan menggunakan awalan LOCK untuk semua instruksi.. QS1 dan QS0 Bit queue status menunjukkan status antrian instruksi internal. Pin-pin ini disediakan untuk akses oleh koprosesor numeric (8087). Berikut ini able status bit antrian :
QS1
|
QS0
|
Fungsi
|
0
|
0
|
Antrian tidak aktif
|
0
|
1
|
Byte pertama opcode
|
1
|
0
|
Antrian kosong
|
1
|
1
|
Byte opcode berurutan
|
Tabel 4. Status Bit Antrian
- 8. Persamaan dan Perbedaan Mikroprosesor 8086 dengan Mikroprosesor 8088
Mikroprosesor 8086 dan 8088 sama-sama terkemas dalam dual in-line package (DIP) 40-pin.Mikroprosesor 8086 dan 8088 sama-sama membutuhkan tegangan catu sebesar +5.0V dengan toleransi tegangan catu ± 10%. Mikroprosesor 8086 dan 8088 beroperasi pada temperature lingkungan antara 32o F dan sekitar 180o F.
Mikroprosesor 8086 dan 8088 mempunyai karakteristik input dan karakteristik output yang sama.
b. Perbedaan
Perbedaan
|
|
8086
|
8088
|
Lebar bus data 16-bit
|
Lebar bus data 8-bit
|
Panjang antrian instruksi 6-byte
|
Panjang antrian instruksi 4-byte
|
Mempunyai pin M/IŌ
|
Mempunyai pin IO/M
|
Pin 34 BHE/S7
|
Pin 34 SSO
|
Arus catu maksimum 360 mA
|
Arus catu maksimum 340 mA
|
Tabel 5. Perbedaan Antara Mikroprosesor 8086 dan 8088
8086 merupakan mikroprosesor 16-bit, artinya bagian ALU,
register internalnya, dan sebagian besar instruksi-instruksinya
dirancang untuk bekerja pada data 16-bit.
8086 memiliki bus data 16-bit, jadi ia dapat membaca
data dari atau menyimpan data ke memori dan port-port yang ada dalam
format 16-bit atau 8-bit .
8086 memiliki bus alamat 20-bit, sehingga ia dapat
mengalamati 220 atau 1.048.576 lokasi memori atau 1 MB memori, sedangkan
register PC atau IP (instruction pointer) yang dimilikinya panjangnya
16-bit. Hal inilahyang merupakan keunggulan dari 8086.
Prosesor lain yang sejenis dengan 8086 adalah 8088. 8088
memiliki ALU, register, dan set instruksi yang sama dengan 8086. 8088
juga memiliki bus alamat 20-bit, jadi ia juga bisa mengalamati memori 1
MB.
Perbedaan 8088 dan 8086, 8088 memiliki bus data 8-bit,
sedangkan 8086 lebar bus datanya 16-bit. 8088 hanya dapat membaca dari
atau menulisi data ke memori dan port-port dengan panjang 8-bit. Untuk
membaca word 16-bit dari dua lokasi memori, 8088 selalu mengerjakan
dengan dua operasi baca. 8088 pada awalnya digunakan sebagai CPU pada
The Original IBM Personal Computer.
Prosesor 8086 terbagi menjadi 2 bagian fungsional yang independen, yakni BIU (bus interface unit) dan EU (execution unit).
BIU bertugas mengirim kode-kode alamat keluar, mengambil
instruksi dari memori, dan membaca data dari port dan memori. BIU
menangani semua trnasfer data dan alamat pada bus untuk membantu EU.
EU meminta BIU untuk mengambilkan instruksi dan data dari memori, mendekode dan melaksanakan instruksi
Arsitektur pada uP 8086,8088, dan beberapa versi diatasnya hingga pentium pro sangat mirip. Pemahaman tentang arsitektur ini penting untuk mengetahui cara programming processor. Dalam pemprograman uP tidak terpisahkan dari register, yakni sebuah memori sementara milik uP. Terdapat register yang memang visible, yakni dapat dialamati oleh uP. Namun terdapat juga yang unvisible, terutama pada versi 80286 dan setelahnya, untuk melakukan operasi pada protected mode. Adapun susunan dari register yang dapat dialamati adalah:
General Purpose Register
EAX, jika dalam model 32 bit adalah EAX, dalam mode 16 bit adalah AX, dan 8 bit untuk AL atau AH. Digunakan untuk menyimpan hasil aritmatika, dan lokasi alamat offset dan memory.
EBX, menyimpan lokasi alamat offset memory sistem dan memory data.
ECX, digunakan untuk melakukan penghitungan.mengalamati memory data.
EDX, menyimpan bagian dari hasil pembagian atau perkalian, mengalamati memory data.
EBP, base pointer, menunjuk lokasi memory pada saat transfer data memory.
EDI, mengalamati data string tujuan untuk instruksi yang berhubungan dengan string.
ESI, mengalamati data string sumber untuk instruksi yang berhubungan dengan string.
Special Purpose Register
EIP, menunjuk pada instruksi selanjutnya pada memory yang telah dialokasikan menjadi code segment.
ESP, mengalamati bagian memory yang digunakan sebagai stack.
EFLAGS, mengindikasikan kondisi uP dan hasil berbagai operasi.
Struktur dari FLAGS register sama untuk versi 8086 hingga pentium Pro. Adapun masing-masing fungsi dari FLAG adalah:
CF, carry flag, untuk menyimpan hasil simpanan atau pinjaman pada operasi tambah dan kurang.
Parity, mengindikasikan 0 atau 1. Pengecekan parity sekarang lebih banyak digunakan pada komunikasi data.
ACF, mengindikasikan parity namun hanya pada bit 3 dan 4.
ZF, mengindikasikan hasil aritmatika apakah 0 atau tidak. jika nilainuya 0, maka ZF=1 dan sebaliknya.
SF, sebagai tanda apakah sebuah integer bertanda atau tidak. jika signed, SF=1; dan sebaliknya.
TrapF, enable/disable fitur debugging.
IF, enable/disable pin input INTR.
DF, setting direction dari register. dapat increment atau decrement. disetting dengan bantuan instruksi STD, dan CLD.
Overflow, mengindikasikan telah terjadi overflow pada operasi tambah atau kurang. para operasi unsigned number, biasanya overfloaw tidak diperhatikan.
I/OPL, set level I/O privilege. paling tinggi adalah 00 dan terenda 11.privilege paling tinggi tidak akan halangan dalam eksekusi dan sebaliknya.
NT, diset ketika software melakukan perintah nested, yakni mengerjakan perintah lain dalam suatu perintah.
RS,control resume dari perintah setelah perintah berikutnya dikerjakan.
VM, set virtual mode yang memungkian bekerjanya beberapa DOS.
Alignment Check, tersetting apabila word atau double word tidak teralamati dengan benar.
SEGMENT REGISTER
Jika segment ini dihubungkan pada memory, maka dapat menghasilkan alamat memory tertentu. Fungsi yang sebenarnya dari sebuah segment register, berbeda pada real atau protected mode. Adapun secara general fungsi dari segment register adalah sebagai berikut:
Code Segment, code segment menyimpan program yang digunakan uP. dalam real mode alokasinya 64Kb namun pada protected mode lebih luas lagi, dan merujuk pada descriptor awal dan akhir alamat yang dalam register yang dapat digunakan.
Data Segment, letak sebagian besar data. pada 8086-80286 adalah 64K sedangkan pada 80386 sebesar4Gbytes.
Extra Segment, segment data tambahan untuk menyimpan tujuan pada instruksi string.
Stack Segment, mendefinisikan area pada memory yang dapat digunakan pada stack.
FS dan GS, adalah segment register yang hanya ada mulai 80386, 80486, pentium dan pentium pro. dapat diakses oleh program sebagai register tambahan.
REAL MODE ADDRESSING
Real mode hanya menggunakan 1Mbyte memory internal. Ini ada pada sistem 8086 dan 88. PCDOS dan MSDOS selalu bekerja pada real mode.
SEGMENT dan OFFSET
Segment + Offet digunakan untuk mengalamati memory pada RAM. Segment, mendefinisikan alamat awal dari memory. Offset address, alamat offset yang memilih antara range 64Kbytes memory segment. segment address otomatis akan ditambahkan 0h pada belakannya, kmudian ditambahkan offset address. Alamat ini menunjuk data pada RAM.
Sistem pengalamatan memory didapat dari gambar diatas. Pada 80286 alamat offset menjadi lebih panjang dengan tambahan 64K minus 16K. Biasanya digunakan sebagai pengalamatan memory tambahan.
SEGMENT DEFAULT dan OFFSET REGISTER
segment dapat dikombinasikan dengan berbagai register lain untuk melakukan suatu fungsi. Misal code segment + instruction pointer digunakan untuk merujuk pada instruksi yang selanjutnyadikerjakan. beberapa kombinasi dari segment:
Contoh kombinasi CS:IP, misal CS dimulai dengan alamat 4000H, dengan IP: 0001H. Maka kombinasinya adalah 40001H. kombinasi lain, adlah SS dan SP/BP. Alamat yang ditentukan dari kombinasi ini akan merujuk pada bagian memory yang digunakan sebagai stack.
8086-80286 memiliki 4 segment. sementara pada 80386 memiliki 6 segment. sebuah program dapat memiliki 4 segment atau lebih.
Sementara itu, stack segment disimpan dalam dalam TPA,tepatnya diatas semua driver dan program.
Insterupsi Dos & Bios pada Mikroprosesor 8088
1. Sistem DOS
DOS (Disk Operating System) adalah sistem
operasi dasar untuk komputer pribadi berbasiskan prosesor Intel. DOS
dirancang berkisar pada mikroprosesor 8088. Beberapa fungsi dasar yang
disediakan adalah fungsi-fungsi file (hard disk, disket),
perangkat/devices (printer, keyboard), dan pengaturan memori.
Kebanyakan keterbatasan sistem DOS berasal dari prosesor awal yang digunakannya. Meskipun DOS dijalankan pada prosesor 80286 atau 80386, DOS tetap dijalankan pada mode 8088.
Kebanyakan keterbatasan sistem DOS berasal dari prosesor awal yang digunakannya. Meskipun DOS dijalankan pada prosesor 80286 atau 80386, DOS tetap dijalankan pada mode 8088.
1.1 Pengaturan Memori
Sebagaimana pengalamatan memori pada 8088, DOS hanya mampu menjangkau 1 MB memori (pengalamatan 20 bit) di mana 360 KB dicadangkan untuk rutin perangkat keras dan BIOS. Secara efektif DOS hanya mampu menggunakan 640 KB memori untuk penggunaan aplikasi.
Pengalamatan pada 8088 menggunakan bentuk Segment:Offset (16:16), dengan alamat fisik yang dituju = Segment*10h + offset. Dengan bentuk pengalamatan ini maka terjadi overlapping alamat, yaitu suatu lokasi memori dapat ditempuh dengan banyak cara. Misal alamat fisik 01000h bisa dianggap beralamat 1000h:0, 0FFFh:10h, atau 0FFEh:20h.
Sebagaimana pengalamatan memori pada 8088, DOS hanya mampu menjangkau 1 MB memori (pengalamatan 20 bit) di mana 360 KB dicadangkan untuk rutin perangkat keras dan BIOS. Secara efektif DOS hanya mampu menggunakan 640 KB memori untuk penggunaan aplikasi.
Pengalamatan pada 8088 menggunakan bentuk Segment:Offset (16:16), dengan alamat fisik yang dituju = Segment*10h + offset. Dengan bentuk pengalamatan ini maka terjadi overlapping alamat, yaitu suatu lokasi memori dapat ditempuh dengan banyak cara. Misal alamat fisik 01000h bisa dianggap beralamat 1000h:0, 0FFFh:10h, atau 0FFEh:20h.
Pengaturan memori pada DOS bersifat
statik dan fisik. 8088 adalah prosesor sederhana dan tidak menyediakan
unit pengatur memori. Semua akses memori oleh program berupa
pengalamatan langsung. Alokasi memori juga bersifat tetap, sehingga
suatu program akan menempati alamat memori secara fisik hingga program
tersebut berakhir.
Pada 8088 tidak dikenal pembatasan memori, seluruh daerah alokasi memori diwujudkan dalam bentuk satu daerah sebesar 1 Mb. Tidak ada pemisahan nyata antara berbagai komponen sistem, seperti BIOS, sistem operasi maupun aplikasi. Kesalahan akses memori tidak dapat dideteksi, dan kesalahan ini hanya bisa diatasi dengan memuat ulang sistem.
Pada 8088 tidak dikenal pembatasan memori, seluruh daerah alokasi memori diwujudkan dalam bentuk satu daerah sebesar 1 Mb. Tidak ada pemisahan nyata antara berbagai komponen sistem, seperti BIOS, sistem operasi maupun aplikasi. Kesalahan akses memori tidak dapat dideteksi, dan kesalahan ini hanya bisa diatasi dengan memuat ulang sistem.
1.2. Pengaturan I/O dan Perangkat
Dalam mengelola input/output (I/O) sistem, DOS bertindak lebih sebagai konsultan dibanding pengontrol. Hal ini bukan seluruhnya kesalahan DOS. Pada mode 8088 sistem memberikan hak akses penuh I/O kepada seluruh program. Setiap aplikasi dapat secara langsung mengubah status dari perangkat keras tanpa harus melalui kendali sistem. Suatu program juga dapat mematikan sistem interrupt secara sepihak. Ketika interrupt sistem mati maka event-event eksternal (seperti pewaktu dan komunikasi data) akan hilang.
Dalam mengelola input/output (I/O) sistem, DOS bertindak lebih sebagai konsultan dibanding pengontrol. Hal ini bukan seluruhnya kesalahan DOS. Pada mode 8088 sistem memberikan hak akses penuh I/O kepada seluruh program. Setiap aplikasi dapat secara langsung mengubah status dari perangkat keras tanpa harus melalui kendali sistem. Suatu program juga dapat mematikan sistem interrupt secara sepihak. Ketika interrupt sistem mati maka event-event eksternal (seperti pewaktu dan komunikasi data) akan hilang.
Ketiadaan kontrol terhadap I/O ini dapat
memberikan dua pandangan yang berbeda. Keterbukaan dan fleksibilitas
sistem dapat memberikan banyak kemungkinan kerja bagi suatu program.
Tanpa adanya pembatasan maka suatu program dapat memaksimalkan
penggunaan perangkat-perangkat yang ada pada komputer, yakni dengan
melakukan akses langsung. Namun kebebasan ini juga memberikan pengaruh
buruk untuk sistem dengan multi program, karena tiap-tiap program dapat
menggunakan sumber daya sistem tanpa adanya koordinasi.
Dalam kerjanya DOS mendukung dua jenis
perangkat, block devices, seperti hard disk dan disket, dan character
devices, seperti keyboard, printer dan perangkat serial. DOS memelihara
struktur data bernama device chain yang memetakan nama logika perangkat
menurut driver perangkat yang bersangkutan. Perangkat blok ditentukan
menurut huruf alfabet diikuti oleh titik dua, A:, B:, hingga Z:.
Perangkat karakter ditentukan oleh nama (hingga 8 huruf) seperti PRN,
LPT: dan COM1.
Device DOS dapat diperluas dengan menambah device driver suatu perangkat kepada sistem. Device driver ini akan diinstalasi oleh DOS ketika sistem dimulai. Device driver mengelola perangkat yang bersangkutan dengan menggunakan rutin ROM BIOS atau mengakses langsung perangkat keras. Rutin ROM BIOS diakses menggunakan mekanisme interupsi software.
Device DOS dapat diperluas dengan menambah device driver suatu perangkat kepada sistem. Device driver ini akan diinstalasi oleh DOS ketika sistem dimulai. Device driver mengelola perangkat yang bersangkutan dengan menggunakan rutin ROM BIOS atau mengakses langsung perangkat keras. Rutin ROM BIOS diakses menggunakan mekanisme interupsi software.
1.3. Pemrograman DOS
Pemrograman pada DOS didasarkan pada interupsi software. Interupsi software adalah transfer kontrol antara dua program yang dibimbing oleh CPU. Sekumpulan fungsi (API, Application Programming Interface) dibuat untuk mengakses DOS. API DOS berisi fungsi-fungsi untuk pengaturan memori, file, operasi input/output, dan akses untuk tiap-tiap device.
Pemrograman pada DOS didasarkan pada interupsi software. Interupsi software adalah transfer kontrol antara dua program yang dibimbing oleh CPU. Sekumpulan fungsi (API, Application Programming Interface) dibuat untuk mengakses DOS. API DOS berisi fungsi-fungsi untuk pengaturan memori, file, operasi input/output, dan akses untuk tiap-tiap device.
Yang tak kurang pentingnya fasilitas untuk memuat dan mengakhiri program.
Tidak semua fungsi-fungsi disediakan DOS sehingga program DOS biasanya menggunakan kombinasi dari rutin ROM BIOS dan akses langsung perangkat keras.
Daftar interrupt BIOS dan DOS dari 10h hingga 2Fh:
10 BIOS video
11 BIOS equipment determination
12 BIOS memory size
13 BIOS disk I/O service
14 BIOS serial communications
15 BIOS system services, cassette
16 BIOS keyboard services
17 BIOS parallel printer
18 BIOS ROM BASIC loader
19 BIOS bootstrap loader
1A BIOS time of day
1B BIOS user defined ctrl-break handler
1C BIOS user defined clock tick handler
1D BIOS 6845 video parameter pointer
1E BIOS diskette parameter pointer
1F BIOS graphics character table
20 DOS general program termination
21 DOS function request services
22 DOS terminate address
23 DOS control break termination address
24 DOS critical error handler
25 DOS absolute disk read
26 DOS absolute disk write
27 DOS terminate and stay resident
28 DOS idle loop, issued by DOS when idle
29 DOS fast TTY console I/O
2A DOS critical section and NETBIOS
2B DOS internal, simple IRET in DOS 2.0-7.0
2C DOS internal, simple IRET in DOS 2.0-7.0
2D DOS internal, simple IRET in DOS 2.0-7.0
2E DOS exec command from base level command interpreter
2F DOS multiplexer
Aturan pemanggilan (calling convention) untuk fungsi-fungsi DOS membutuhkan masukan parameter melalui register-register, termasuk parameter khusus berupa nomor fungsi
Tidak semua fungsi-fungsi disediakan DOS sehingga program DOS biasanya menggunakan kombinasi dari rutin ROM BIOS dan akses langsung perangkat keras.
Daftar interrupt BIOS dan DOS dari 10h hingga 2Fh:
10 BIOS video
11 BIOS equipment determination
12 BIOS memory size
13 BIOS disk I/O service
14 BIOS serial communications
15 BIOS system services, cassette
16 BIOS keyboard services
17 BIOS parallel printer
18 BIOS ROM BASIC loader
19 BIOS bootstrap loader
1A BIOS time of day
1B BIOS user defined ctrl-break handler
1C BIOS user defined clock tick handler
1D BIOS 6845 video parameter pointer
1E BIOS diskette parameter pointer
1F BIOS graphics character table
20 DOS general program termination
21 DOS function request services
22 DOS terminate address
23 DOS control break termination address
24 DOS critical error handler
25 DOS absolute disk read
26 DOS absolute disk write
27 DOS terminate and stay resident
28 DOS idle loop, issued by DOS when idle
29 DOS fast TTY console I/O
2A DOS critical section and NETBIOS
2B DOS internal, simple IRET in DOS 2.0-7.0
2C DOS internal, simple IRET in DOS 2.0-7.0
2D DOS internal, simple IRET in DOS 2.0-7.0
2E DOS exec command from base level command interpreter
2F DOS multiplexer
Aturan pemanggilan (calling convention) untuk fungsi-fungsi DOS membutuhkan masukan parameter melalui register-register, termasuk parameter khusus berupa nomor fungsi
yang menentukan fungsi yang diinginkan.
Program lalu melakukan interupsi software yang menyebabkan eksekusi
program beralih ke kernel DOS. Kernel DOS menyalurkan panggilan tersebut
dengan melihat nomor fungsi pada parameter dan memanggil rutin fungsi
yang bersangkutan. Setelah fungsi selesai kontrol dikembalikan pada
program pemanggil dengan parameter hasil pada register.
Karena antar muka DOS dan BIOS bekerja
dengan mekanisme interrupt, maka untuk perluasan sistem suatu program
dapat menggantikan interrupt DOS atau BIOS dengan rutinnya sendiri.
Untuk hal ini biasa dikenal istilah program TSR (Terminate and Stay
Resident) yang merupakan suatu program menetap di memori yang fungsinya
terutama untuk mencegat/memodifikasi pemanggilan sistem DOS/BIOS untuk
pemrosesan lebih lanjut.
1.4. Program-program DOS
Sebuah program DOS adalah kumpulan dari segment kode dan data yang diletakkan dalam sebuah file eksekusi (EXE) pada media penyimpan sekunder2. Ketika program dijalankan, kode-kode dan obyek data dimuat dalam memori oleh bagian pemuat (loader) dari sistem operasi, dan alamat dari rutin awal program diset dan dijalankan. Kebanyakan program termasuk dengan stack, yaitu sebuah last-in-first-out (LIFO) obyek data yang digunakan untuk memori penyimpan sementara. Karena arsitektur dari prosesor 8088, obyek memori DOS adalah segment.
Dalam fisiknya, program-program DOS terdiri dari 2 jenis, yakni berformat COM atau EXE. Program COM hanya berupa image kode-kode mesin dengan besar maksimal 1 segment (64K), sedangkan program EXE berupa image kode-kode mesin dengan besar dapat melebihi 1 segment. Karena melebihi 1 segment, maka program EXE mempunyai header yang mengatur tabel relokasi alamat, besar memori yang dibutuhkan, besar stack, dan inisial pointer stack & instruksi.
Bersambung...
Sebuah program DOS adalah kumpulan dari segment kode dan data yang diletakkan dalam sebuah file eksekusi (EXE) pada media penyimpan sekunder2. Ketika program dijalankan, kode-kode dan obyek data dimuat dalam memori oleh bagian pemuat (loader) dari sistem operasi, dan alamat dari rutin awal program diset dan dijalankan. Kebanyakan program termasuk dengan stack, yaitu sebuah last-in-first-out (LIFO) obyek data yang digunakan untuk memori penyimpan sementara. Karena arsitektur dari prosesor 8088, obyek memori DOS adalah segment.
Dalam fisiknya, program-program DOS terdiri dari 2 jenis, yakni berformat COM atau EXE. Program COM hanya berupa image kode-kode mesin dengan besar maksimal 1 segment (64K), sedangkan program EXE berupa image kode-kode mesin dengan besar dapat melebihi 1 segment. Karena melebihi 1 segment, maka program EXE mempunyai header yang mengatur tabel relokasi alamat, besar memori yang dibutuhkan, besar stack, dan inisial pointer stack & instruksi.
Bersambung...