Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
PERANGKAT LUNAK PEMBELAJARAN OPERASI ARITMATIKA PADA MIKROPROSESOR INTEL 8088/8086 DENGAN METODE CBT (Computer Based Training)
Oleh SITI MUSTAWA Dosen Prodi Manajemen Informatika, AMIK Labuhanbatu Rantauprapat, Medan;
[email protected]
ABSTRAK Dewasa ini kecerdasan buatan berkembang pesat melaju bersama kecepatan perkembangan teknologi computer yang dari hari ke hari semakin berkembang. Manusia selalu berupaya untuk memudahkan dalam memecahan setiap permasalahan yang di hadapi. Salah satu aplikasi untuk memecahkan setiap masalah adalah perunak lunak pembelajaran mede pengalamatan dan operasi aritmatika pada mikroprosesor intel 8086/8088, prosesor Intel 8088/8086 merupakan mikroprosesor yang menjadi mesin bagi mikrokomputer IBM PC/XT dan paling banyak digunakan pada saat ini. Prosesor ini sering disebut dengan singkat sebagai “8088” atau “8086”. Walaupun perangkat keras 8088 sedikit berbeda dengan 8086, tetapi keduanya dapat dipandang sama dari sisi pemrograman Intel 8088/8086 adalah prosesor 16 bit, artinya lintasan data dan register-nya berukuran 16 bit. 8086 merupakan mikroprosesor 16-bit dengan bus data 16-bit dan 8088 merupakan mikroprosesor 16-bit dengan bus data 8-bit. Mode pengalamatan dan operasi aritmatika pada bahasa Assembly ini dapat mengamati perubahan isi register yang terjadi dalam pembelajaaran proses instruksinya. Perangkat Lunak ini dapat digunakan untuk memahami mode pengalamatan register dan pengalamatan segera serta beberapa operasi aritmatika pada mikroprosesor intel 8088/8086. Perangkat Lunak dijadikan sebagai media pendukung dalam proses pembelajaran mikroprosesor dasar. Keyword: osdata, xs4all, googlesyndication, Comcast. modus pengalamatan (addressing mode). Modus pengalamatan terbagi atas beberapa macam antara lain, pengalamatan register, pengalamatan segera, pengalamatan langsung dan pengalamatan tak langsung. Dalam mempelajari bahasa Assembly, kita harus menghafalkan semua register dan mengerti kegunaannya masing–masing. Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan data dengan ketentuan bahwa data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan menampung register tersebut. Register dapat dibagi dalam lima golongan yaitu general purpose register (AX, BX, CX dan DX),
A. PENDAHULUAN Prosesor Intel 8088/8086 merupakan mikroprosesor yang menjadi mesin bagi mikrokomputer IBM PC/XT dan kompatibelnya. Prosesor ini sering disebut dengan singkat sebagai “8088” atau “8086”. Walaupun perangkat keras 8088 sedikit berbeda dengan 8086, tetapi keduanya dapat dipandang sama dari sisi pemrograman Intel 8088/8086 adalah prosesor 16 bit, artinya lintasan data dan register-nya berukuran 16 bit. Kebanyakan instruksi dalam program bahasa Assembly membutuhkan operand yaitu data yang akan diolah. Cara menentukan atau memperoleh harga operand ini disebut sebagai 20
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
segment register (CS, DS, SS dan ES), pointer register (IP, SP dan BP), index register (SI dan DI) dan flag register.
Penulis tertarik untuk mempelajari tentang operasi aritmatika pada bahasa Assembly dan mengamati perubahan isi register yang terjadi. Jenis pemakaian ini disebut dengan Computer Managed Instruction (CMI), dimana komputer digunakan untuk mengatur kemajuan peserta pelatihan dan alat-alat yang dipakai. CMI biasanya digunakan untuk meningkatkan pengawasan dan efisiensi dalam sistem pelatihan. 3. Instruksi. Sering disebut dengan Computer Assisted Instruction (CAI). Jenis ini menganggap komputer sebagai media penyimpanan instruksi sama seperti slide, tape, video atau buku-buku. Menurut sudut pandang CAI, masalah utamanya adalah bagaimana menyusun bahan-bahan instruksi yang akan ditampilkan oleh komputer dengan cara yang paling efektif. Ada tiga jenis CAI yaitu : a. Drill and Practice Merupakan cara yang paling mudah, terdiri dari tahap-tahap penampilan permasalahan, penerimaan respon pengguna, pemberian hasil analisis, umpan balik, dan pemberian pertanyaan lain. Secara umum jenis ini tidak menampilkan informasi baru tapi memberikan latihan dari konsep yang sudah ada. b. Tutorial Jenis ini berisi konsep atau prosedur yang disertai dengan pertanyaan atau latihan pada akhir dari pelatihan. Selama pelatihan, komputer mengajarkan informasiinformasi yang baru kepada siswa seperti layaknya seorang guru pembimbing. Setelah itu, pemahaman siswa diukur melalui serangkaian tes dan komputer melanjutkan pengajaran berdasarkan hasil pengukuran tadi. c. Socratic Berisi komunikasi antara pengguna dan komputer dalam natural language. Jenis ini sebenarnya berasal dari penelitian dalam
B. PEMBAHASAN Percobaan penggunaan komputer untuk proses belajar dimulai di Amerika Serikat pada akhir tahun 1950-an dan awal tahun 1960-an. Kemudian penelitian selanjutnya dilakukan oleh Harvard University bekerja sama dengan IBM pada tahun 1965. Setelah munculnya komputer mikro, sistem pengajaran dengan komputer menjadi semakin meluas pada pengembangan perangkat lunak pembelajaran yang dikenal dengan istilah perangkat lunak pembelajaran. Perangkat lunak pembelajaran dengan komputer muncul dari sejumlah disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu komputer dan matematika muncul program-program yang membuat semua perhitungan dan fungsi lebih mudah dan bermanfaat. Sedangkan dari ilmu psikologi muncul pengetahuan mengenai teori belajar, teknik belajar, serta motivasi yang baik. Tujuan utama dari perangkat lunak pembelajaran adalah : 1. Peningkatan pengawasan. 2. Penggunaan sumber daya. 3. Individualisasi. 4. Ketepatan waktu dan tingkat ketersediaan. 5. Pengurangan waktu latihan. 6. Perbaikan hasil kerja. 7. Alat yang nyaman dipakai. 8. Pengganti cara belajar. 9. Peningkatan kepuasan belajar. 10. Pengurangan waktu pengembangan. Jenis pemakaian komputer untuk perangkat lunak pembelajaran digolongkan menjadi tiga bagian, yaitu : 1. Pengujian. Dalam jenis ini, komputer digunakan untuk memberikan penilaian dan analisis tes, membuat soal tes, membuat nilai acak, tes interaksi, dan tes adaptasi. Jenis ini sering disebut dengan Computer Assisted Testing (CAT). 2. Manajemen.
21
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
bidang intelijensia semu (artificial intelligence). Socratic mampu melakukan interaksi dalam natural language dan bisa memahami apa yang ditanyakan pengguna. Mode Pengalamatan Data Instruksi pengalamatan data yang sering dipakai adalah instruksi MOV. Instruksi MOV merupakan instruksi yang umum dan fleksibel. Instruksi ini akan meng-copy data dari sumber ke tujuan sehingga sumber tidak pernah berubah tetapi tujuan hampir selalu berubah. Instruksi ini tidak mempengaruhi register flag Sumber dan tujuan sering disebut sebagai operand. Mode pengalamatan data yang digunakan dengan instruksi ini mencakup : 1. Pengalamatan register (register addressing). Pengalamatan ini digunakan untuk memindahkan salinan dari byte atau word dari register atau lokasi memori sumber ke dalam register atau lokasi memori tujuan. Contoh : MOV CX, DX akan menyalin isi dari register DX ke dalam register CX. 2. Pengalamatan segera (immediate addressing). Pengalamatan ini digunakan untuk memindahkan data yang berukuran byte atau word langsung ke dalam register tujuan. Contoh : instruksi MOV AL, 22H menyalin bilangan 22H ke dalam register AL. 3. Pengalamatan langsung (direct addressing). Pengalamatan ini memindahkan byte atau word antara lokasi memori dan register. Kumpulan instruksi tidak menyediakan pemindahan data antara memori ke memori kecuali pada instruksi MOVS. Contoh : instruksi MOV CX, LIST menyalin isi dari lokasi memori LIST ke dalam register CX. 4. Pengalamatan register tidak langsung (indirect addressing). Pengalamatan ini memindahkan byte atau word antara register dan lokasi memori yang alamatnya ditunjuk oleh suatu register indeks atau register basis. Register indeks dan basis adalah BP, BX,
DI, dan SI. Contoh : MOV AX, [BX] menyalin data 16-bit dari alamat offset segmen data yang alamatnya ditunjuk oleh register BX ke dalam register AX. 5. Pengalamatan base-plus-index. Pengalamatan ini memindahkan data yang berukuran byte atau word antara register dan lokasi memori yang ditunjuk leh register basis (BP atau BX) ditambah dengan isi register indeks (DI atau SI). Contoh : instruksi MOV [BX+DI], CL menyalin isi register CL yang berukuran byte ke dalam lokasi memori segmen data yang ditunjuk oleh BX ditambah DI. 6. Pengalamatan register relatif (relative register addressing). Pengalamatan ini memindahkan data yang berukuran byte atau word antara register dan lokasi memori yang ditunjuk oleh suatu register indeks atau basis ditambah displacement. Contoh : MOV AX, [BX+4]. Instruksi ini mengisi AX dengan data yang alamat segmen datanya dibentuk oleh BX ditambah 4. 7. Pengalamatan base relatif-plus-index Pengalamatan ini memindahkan data yang berukuran byte atau word antara register dan lokasi memori yang ditunjuk oleh suatu register basis dan register indeks ditambah displacement. Contoh : MOV AX, ARRAY[BX+DI]. Instruksi ini menggunakan sebuah alamat yang dibentuk oleh penambahan ARRAY, BX dan DI. Karena mode pengalamatan yang diambil hanya berupa pengalamatan register dan segera maka pembahasan kali ini hanya dibatasi pada pengalamatan register dan segera. 1. Pengalamatan Addressing)
Register
(Register
Pengalamatan register merupakan bentuk pengalamatan data yang paling dikenal dan lebih mudah untuk dipakai. Register 8 bit yang dipakai yaitu : AH, AL, BH, BL, CH, CL, DH, dan DL. Sedangkan register 16 bit yang dipakai yaitu : AX, BX, CX, DX, SP, BP, SI, dan DI. Pengalamatan antara register 8 bit dan 16 bit
22
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
tidak diijinkan dan akan mengeluarkan pesan kesalahan pada saat dilakukan perakitan.
Beberapa contoh instruksi pengalamatan register : Tabel. Contoh instruksi pengalamatan register Bahasa Assembly Ukuran Operasi MOV AL, BL 8 bit Menyalin isi register BL ke register AL MOV CH, CL 8 bit Menyalin isi register CL ke register CH MOV AX, CX 16 bit Menyalin isi register CX ke register AX MOV SP, BP 16 bit Menyalin isi register BP ke register SP MOV DS, AX 16 bit Menyalin isi register AX ke register DS MOV SI, DI 16 bit Menyalin isi register DI ke register SI MOV BX, ES 16 bit Menyalin isi register ES ke register BX MOV ES, DS – Tidak diijinkan (segmen ke segmen) MOV BL, DX – Tidak diijinkan (ukuran berbeda) MOV CS, AX – Tidak diijinkan (register segmen tidak boleh merupakan register tujuan) Sumber: (Barry B. Brey, Mikroprosesor Intel 8086/8088/80186/80188/80286/ 80386/80486 : Arsitektur Pemrograman Antarmuka, Edisi 5, Jilid 2, Penerbit Erlangga, 2003) 2. Pengalamatan Segera (Immediate Addressing) Mode pengalamatan data lainnya adalah Assembler simbolis memperlihatkan pengalamatan segera. Istilah segera data segera dalam banyak cara. Huruf H menyatakan bahwa data segera mengikuti kode ditambahkan kepada data heksadesimal. Jika operasi heksadesimal dalam memori. Data data heksadesimal mulai dengan suatu huruf, segera merupakan data konstan, sedangkan data assembler memerlukan data yang dimulai yang dipindahkan dari register adalah data dengan 0. Sebagai contoh, untuk berubah. Pengalamatan segera bekerja merepresentasikan heksadesimal F2, digunakan berdasarkan data yang berukuran byte atau 0F2H dalam bahasa rakitan. Beberapa contoh word. instruksi pengalamatan segera: Tabel. Contoh instruksi pengalamatan segera Bahasa Assembly Ukuran Operasi MOV BL, 44 8 bit Menyalin 44 desimal (2CH) ke dalam BL MOV AX, 44H 16 bit Menyalin 0044H ke dalam AX MOV SI, 0 16 bit Menyalin 0000H ke dalam SI MOV CH, 100 8 bit Menyalin 100 desimal (64H) ke dalam CH MOV AL, ‘A’ 8 bit Menyalin ASCII A ke dalam AL MOV AX, ‘AB’ 16 bit Menyalin ASCII BA ke dalam AX. Ini bukan kesalahan. Karakter ASCII disimpan sebagai BA, sehingga perlu dilatih ketelitian saat memilih pasangan karakter ASCII ukuran word MOV CL, 11001110B 8 bit Menyalin 11001110 biner ke dalam CL
23
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
Sumber: (Barry B. Brey, Mikroprosesor Intel 8086/8088/80186/80188/80286/ 80386/80486, 2003) ADD AL, BL akan menghasilkan AL = AL + BL. ADC AL, BL akan menghasilkan AL = AL + BL + Carry. 2. Penjumlahan segera (immediate addition). Penjumlahan ini digunakan untuk menjumlahkan isi register dengan nilai konstan. Contoh : ADD AL, 05H akan menghasilkan AL = AL + 05H ADC AL, 05H akan menghasilkan AL = AL + 05H + Carry 2. Pengurangan Ada banyak bentuk pengurangan yang ditampilkan dalam kumpulan instruksi. Formatformat ini menggunakan mode pengalamatan data 8 bit dan 16 bit. Format khusus dari pengurangan DEC yaitu dekremen, digunakan untuk mengurangkan dengan 1. Seperti halnya instruksi penjumlahan, pengurangan juga memiliki nilai borrow, sehingga instruksi pengurangan terdiri dari 3 macam yaitu: 1. SUB, yaitu instruksi pengurangan yang tidak menyertakan nilai borrow dalam perhitungan. Format : SUB Source, Destination. Contoh : SUB AL, BL akan menghasilkan AL = AL – BL. 2. SBB, yaitu instruksi pengurangan yang menyertakan nilai borrow dalam perhitungan. Format : SBB Source, Destination. Contoh : SBB AL, BL akan menghasilkan AL = AL – BL – Borrow. 3. DEC, yaitu instruksi pengurangan yang mengurangkan dengan 1. Format : DEC Destination. Contoh : DEC AL akan menghasilkan AL = AL – 1. Berdasarkan mode pengalamatan yang dipakai, maka instruksi pengurangan dapat dibagi menjadi : 1. Pengurangan register (register substraction). Pengurangan ini digunakan untuk mengurangkan isi dari beberapa register. Contoh :
Operasi Aritmatika Operasi aritmatika dalam bahasa Assembly terdapat banyak variasinya, namun karena instruksi aritmatika yang diambil hanya berupa instruksi penjumlahan, pengurangan, perkalian, pembagian, Increment (INC) dan Decrement (DEC) maka pembahasan kali ini hanya dibatasi pada beberapa instruksi sebagai berikut: 1.
Penjumlahan Perintah penjumlahan tampil dalam berbagai format penulisan dalam beberapa jenis mikroprosesor. Instruksi penjumlahan dapat berupa ADD, ADC dan INC. ADD merupakan instruksi penjumlahan dimana carry tidak dimasukkan dalam perhitungan. Sedangkan ADC merupakan instruksi penjumlahan yang memasukkan carry dalam perhitungan. Inkremen (INC) adalah format khusus dari penjumlahan yaitu menambahkan suatu bilangan dengan satu. Instruksi penjumlahan terdiri dari 3 macam yaitu : 1. ADD, yaitu instruksi penjumlahan yang tidak menyertakan nilai carry dalam perhitungan. Format : SUB Source, Destination. Contoh : ADD AL, BL akan menghasilkan AL = AL + BL. 2. ADC, yaitu instruksi penjumlahan yang menyertakan nilai carry dalam perhitungan. Format : SBB Source, Destination. Contoh : ADC AL, BL akan menghasilkan AL = AL + BL + Carry. 3. INC, yaitu instruksi penjumlahan yang menambahkan dengan 1. Format : INC Destination. Contoh : INC AL akan menghasilkan AL = AL + 1. Berdasarkan mode pengalamatan yang dipakai, maka instruksi penjumlahan dapat dibagi menjadi : 1. Penjumlahan register (register addition). Penjumlahan ini digunakan untuk menjumlahkan isi dari beberapa register. Contoh :
24
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
SUB AL, BL akan menghasilkan AL = AL – BL. SBB AL, BL akan menghasilkan AL = AL – BL – Borrow. 2. Pengurangan segera (immediate substraction). 3. Pengurangan ini digunakan untuk mengurangkan isi register dengan nilai konstan. Contoh : SUB AL, 05H akan menghasilkan AL = AL – 05H SBB AL, 05H akan menghasilkan AL = AL – 05H – Borrow
Kapasitas Bilangan Kapasitas bilangan bertanda dan tidak bertanda ditentukan oleh register Sign Flag dengan komposisi sebagai berikut : 1. Bila Sign Flag menunjukkan 0, maka komposisi bit untuk angka paling besar adalah : 1111 1111 1111 1111 atau desimalnya 65535. Jadi dapat disimpulkan bahwa bila bilangan itu bilangan tak bertanda, maka bilangan itu akan berkomposisi bit antara 0000 0000 0000 0000 hingga 1111 1111 1111 1111 atau 0000 hexa hingga FFFF hexa. 2. Bila Sign Flag menunjukkan 1 maka bilangan tersebut merupakan bilangan bertanda. Bilangan bertanda mempunyai cara perhitungan yang lain dengan bilangan bertanda. Untuk bilangan bertanda, bit terakhir atau bit ke–16 (bit paling kiri) tidak dimasukkan dalam hitungan melainkan merupakan petunjuk apakah bilangan itu positif atau negatif. Oleh karena kemampuan tersebut, maka kapasitas bilangan bertanda menjadi berkurang sebagian, yaitu untuk bilangan positif dari 0 sampai 32767 dan untuk bilangan negatif–1 sampai dengan– 32767.
3.
Perkalian Perkalian dilakukan dalam format byte dan word dan dapat juga bilangan bulat bertanda (IMUL) atau bilangan bulat tak bertanda (MUL). Beberapa bit flag seperti O dan C berubah saat proses perkalian dijalankan dan memberikan hasil yang dapat diramalkan sebelumnya. Flag yang lain juga berubah, tetapi hasilnya tidak bisa diramalkan. Namun pembahasan kali ini hanya dibatasi pada bilangan bulat tak bertanda yaitu operasi MUL yang memiliki format sebagai berikut : MUL Source. Contoh : MUL 05H akan menghasilkan AX = AX * 05H.
Penulisan Bit Bilangan Negatif Pada bilangan bertanda, cara menulis bit negatif tidak sama dengan bit positif. Cara menulis bit bilangan negatif untuk -1 adalah 1111 1111 1111 1111 dan -2 adalah 1111 1111 1111 1110. Jadi dapat disimpulkan bahwa cara penulisan bilangan negatif dimulai dengan bilangan terbesar dalam komposisi 16 bit yaitu FFFF hexa dan diakhiri bilangan 1000 0000 0000 0000 (8000 hexa) sebagai bilangan negatif terbesar – 32768.
4.
Pembagian Seperti halnya perkalian, pembagian terjadi pada bilangan 8 bit atau 16 bit. Bilangan ini adalah bilangan bulat bertanda (IDIV) atau tak bertanda (DIV). Hasil pembagian selalu dua kali lebarnya dari bilangan yang dibagi. Artinya pembagian 8 bit membagi bilangan 16 bit dengan bilangan 8 bit. Namun pembahasan kali ini hanya dibatasi pada bilangan bulat tak bertanda yaitu operasi DIV yang memiliki format sebagai berikut : DIV Source. Contoh : DIV 05H akan menghasilkan AX = AX / 05H. Bilangan Bertanda dan Bilangan Tidak Bertanda Yang dimaksud dengan bilangan bertanda adalah bilangan yang mengandung arti plus (+), ataupun min (–), sedangkan bilangan tidak bertanda mengandung arti semua positif.
Mencari Bilangan Negatif Untuk mempermudah pencarian bilangan negatif dari heksadesimal dapat dilakukan langkah–langkah sebagai berikut : 1. Ubah bilangan desimal negatif ke bilangan biner positif. 2. Ubah setiap angka 0 menjadi 1 dan angka 1 menjadi 0.
25
Siti Mustawa
3.
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
Tambahan bilangan 1 pada bilangan yang telah diubah dan konversi ke heksadesimal akan didapat hasil yang diinginkan. Sebagai contoh : Nilai heksadesimal dari – 20 adalah sebagai berikut : Nilai 20 diubah menjadi biner 0000 0000 0001 0100
Balikkan angka biner diatas menjadi 1111 1111 1110 1011 Tambahkan dengan 1 dan didapat 1111 1111 1110 1100 atau FFEC heksa.
Perangkat Keras Mikroprosesor 8088/8086 Pin-Out MODE MAKS.
{ MODE } MIN.
MODE MIN.
MODE { MAKS. }
GND
1
40
VCC
GND
1
40
VCC
AD14
2
39
AD15
AD14
2
39
AD15
AD13
3
38
A16/S3
AD13
3
38
A16/S3
AD12
4
37
A17/S4
AD12
4
37
A17/S4
AD11
5
36
A18/S5
AD11
5
36
A18/S5
AD10
6
35
A19/S6
AD10
6
35
A19/S6
AD9
7
34
BHE/S7
AD9
7
34
SSO
AD8
8
33
MN/MX
AD8
8
33
MN/MX
AD7
9
32
RD
AD7
9
32
RD
31
HOLD
(HOLD)
HLDA
(HLDA)
CPU 8086
CPU 8088
31
RQ/GT0 (HOLD)
AD6
10
RQ/GT1 (HLDA)
AD5
11
30 29
(HIGH)
AD6
10
AD5
11
30
AD4
12
29
LOCK
(WR)
AD4
12
WR
(LOCK)
AD3
13
28
S2
(M/IO)
AD3
13
28
IO/M
(S2)
AD2
14
27
S1
(DT/R)
AD2
14
27
DT/R
(S1)
AD1
15
26
S0
(DEN)
AD1
15
26
DEN
(S0)
AD0
16
25
QS0
(ALE)
AD0
16
25
ALE
(QS0) (QS1)
NMI
17
24
QS1
INTR
18
23
TEST
CLK
19
22
READY
GND
20
21
RESET
(INTA)
(a)
NMI
17
24
INTA
INTR
18
23
TEST
CLK
19
22
READY
GND
20
21
RESET
(b)
Gambar (a) Pin-out mikroprosesor 8086; (b) pin-out mikroprosesor 8088 Sumber: (Barry B. Brey, Mikroprosesor Intel 8086/8088/80186/80188/80286/ 80386/80486 : Arsitektur Pemrograman Antarmuka, Edisi 5, Jilid 2, Penerbit Erlangga, 2003)
Gambar di atas mengilustrasikan pinout mikroprosesor 8086 dan 8088. Sebagaimana terlihat jika dibandingkan dengan teliti, secara virtual sebenarnya tidak ada perbedaan antara kedua mikroprosesor ini, keduanya terkemas dalam dual in-line package (DIP) 40-pin.
8086 merupakan mikroprosesor 16-bit dengan bus data 16-bit dan 8088 merupakan mikroprosesor 16-bit dengan bus data 8-bit. Sebagaimana ditunjukkan oleh pin-out, 8086 memiliki koneksi pin AD0-AD15, dan 8088 memiliki koneksi pin AD0-AD7. Lebar bus data dengan demikian merupakan satu-satunya
26
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
perbedaan utama antara kedua mikroprosesor ini. Tetapi, ada satu perbedaan kecil pada salah satu sinyal kontrol. 8086 mempunyai pin M/IO, dan 8088 mempunayi pin M/IO. Perbedaan perangkat keras lainnya terdapat pada pin 34 dari kedua chip: pada 8088, terdapat pin SSO, sementara pada 8086, pin tersebut merupakan BHE/S7.
f.
Fungsi Pin Pin-pin yang terdapat dalam mikroprosesor 8088/8086 : a. AD7-AD0 : Jalur bus alamat/data 8088 terdiri dari bus data alamat yang dimultipleks pada 8088 dan berisi delapan bit paling kanan dari alamat memori atau nomor port I/O jika ALE aktif (logika 1) atau data ketika ALE aktif (logika 0). Pin-pin ini berada pada status impedansi tinggi selama hold acknowledge. b. A15-A8 : Bus alamat 8088 menyediakan bit-bit alamat memori paruh atas yang ada selama siklus bus. Hubungan alamat ini menuju ke status impedansi tingginya selama acknowledge hold. c. AD15-AD8 : Jalur bus alamat/data 8086 terdiri dari bus alamat/data bagian atau pada 8086. Jalur-jalur ini berisi bit-bit alamat A15-A8 jika ALE pada logika 1, dan hubungan bus data D15-D8. Pin-pin ini memasuki status impedansi tinggi jika terjadi hold acknowledge. d. A19/S6-A16/S3: Bit-bit bus alamat/status di-multipleks untuk memberikan sinyal alamat A19-A16 dan juga bit-bit status S6-S3. Pin-pin ini juga mempertahankan status impedansi tinggi selama hold acknowledge. Bit status S6 selalu tetap merupakan logika 0, bit S5 menunjukkan kondisi bit-bit flag IF, dan S4 dan S3 menunjukkan segmen mana yang diakses selama siklus bus pada saat itu. e. RD : Jika sinyal baca berupa logika 0, bus data bisa menerima data dari memori atau alat I/O yang dihubungkan ke sistem. Pin ini naik ke status
g.
h.
i.
j.
k.
l. m.
27
impedansi tingginya 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 tetap idle (tidak bekerja). Jika pin READY diletakkan pada level logika 1, tidak memiliki efek pada operasi mikroprosesor. INTR : Interrupt request digunakan untuk meminta interrupt perangkat keras. Jika INTR dijaga tetap high ketika IF = 1, 8088/8086 memasuki siklus interrupt acknowledge (INTA menjadi aktif) setelah instruksi pada saat itu telah dijalankan sepenuhnya. TEST : Pin test merupakan input yang dites oleh instruksi WAIT. Jika TEST berupa logika 0, instruksi WAIT berfungsi sebagai NOP. Jika TEST berupa logika 1, instruksi WAIT menunggu sampai TEST menjadi logika 0. Pin ini biasanya dihubungkan dengan koprosesor numerik 8087. NMI : Input non-maskable interrupt sama dengan INTR kecuali interrupt NMI tidak memeriksa apakah bit flag IF merupakan logika 1. Jika NMI diaktifkan, input interrupt ini menggunakan vektor interrupt 2. RESET : Input reset menyebabkan mikroprosesor mereset dirinya sendiri jika pin ini tetap high selama minimum empat periode clock. Jika 8086 atua 8088 direset, akan mulai mengeksekusi instruksi pada lokasi memori FFFF0H dan mendisabel interrupt berikutnya dengan meng-clearkan bit flag IF. CLK : Pin clock menyediakan sinyal waktu (timing) dasar ke mikroprosesor. Sinyal clock harus memiliki siklus kerja 33 persen untuk memberikan timing internal yang sesuai untuk 8088/8086. Vcc : Input catu daya ini menyediakan sinyal +5,0 V, ± 10 % ke mikroprosesor. GND : Hubungan ground merupakan jalur kembali catu daya.
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
n. MN/MX : Pin mode minimum/maksimum memilih operasi mode minimum atau maksimum untuk mikroprosesor. o. BHE/S7 : Pin bus high enable digunakan pada 8086 untuk enable bit bus data yang paling signifikan selama operasi baca atau tulis. p. IO/M atau M/IO : Pin IO/M (8088) atau pin M/IO (8086) memilih memori atau I/O. q. WR : Jalur write merupakan strobe yang menunjukkan bahwa 8088/8086 sedang mengeluarkan data ke memori atau alat I/O. r. INTA : Sinyal intterupt acknowledge merupakan tanggapan terhadap pin input INTR. s. ALE : Address latch enable menunjukkan bahwa bus alamat/data 8088/8086 berisi informasi alamat. t. DT/R : Sinyal data transmit/receive menunjukkan bahwa bus data mikroprosesor sedang mengirim data atau menerima data. u. DEN : Data bus enable mengaktifkan buffer bus data eksternal. v. HOLD : Input hold meminta direct memory access (DMA). w. HLDA : Hold acknowledge menunjukkan bahwa 8088/8086 memasuki status hold. x. SS0 : Jalur status SS0 ekivalen dengan pin S0 pada operasi mikroprosesor mode maksimum. y. S2, S1 dan S0 : Bit-bit status ini menunjukkan fungsi siklus bus saat itu. z. RO/GT1 dan RO/GT0 : Pin-pin request/grant ini meminta direct memory access (DMA) selama operasi mode maksimum. aa. LOCK : Output lock digunakan untuk mengunci periferal dari sistem.
1. General Purpose Register Register yang termasuk dalam kelompok ini adalah register AX, BX, CX, DX, yang masing–masing terdiri atas 16 bit. Register–register ini mempunyai satu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masing–masing bagian terdiri atas 8 bit, seperti register AX dapat dipecah menjadi register AH, dan AL. Akhir H menunjukkan High dan akhiran L menunjukkan Low. Secara umum register-register dalam kelompok ini dapat digunakan untuk berbagai keperluan, walaupun demikian ada pula penggunaan khusus dari masing-masing register ini, yaitu : 1. Register AX, secara khusus digunakan pada operasi aritmatika terutama dalam operasi pembagian dan pengurangan. 2. Register BX, biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen. 3. Register CX, digunakan secara khusus pada operasi looping dimana register ini menentukan berapa banyaknya looping yang akan terjadi. 4. Register DX, digunakan untuk menampung sisa hasil pembagian 16 bit. 2. Segment Register Register yang termasuk dalam kelompok ini terdiri atas register CS, DS, ES, dan SS yang masing–masing merupakan register 16 bit. Register–register dalam kelompok ini secara umum digunakan untuk menunjukkan alamat dari suatu segmen memori. Register CS (Code Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif, sedangkan register SS (Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack. Register DS (Data Segment) biasanya digunakan untuk menunjukkan tempat segmen dimana data–data pada program disimpan. Umumnya isi register ini tidak perlu diubah kecuali pada program residen (program) yang menetap di memori walaupun eksekusi program telah berakhir. Register ES (Extra Segment) sesuai dengan namanya adalah suatu
QS1 dan QS0 : Bit queue status menunjukkan status antrian instruksi internal.
Register dapat dibagi dalam lima golongan, yaitu :
28
Siti Mustawa
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
register tambahan yang tidak mempunyai tugas khusus. Register ES biasanya digunakan untuk menunjukkan suatu alamat di memori, misalkan alamat memori video.
Adapun flag yang terdapat pada mikroprosesor 8088 ke atas adalah sebagai berikut : 1. OF (Overflow Flag), jika terjadi overflow pada operasi aritmatika bit ini akan bernilai 1. 2. DF (Direction Flag), digunakan pada operasi untai untuk menunjukkan arah proses. 3. IF (Interrupt enable Flag), mikroprosesor akan mengabaikan interupsi yang terjadi jika bit ini 0. 4. TF (Trap Flag), digunakan untuk proses pelacakan langkah demi langkah. 5. SF (Sign Flag), jika digunakan bilangan bertanda bit ini akan bernilai 1. 6. ZF (Zero Flag), jika hasil operasi menghasilkan nol, maka bit ini akan bernilai 1. 7. AF (Auxiliary Flag), digunakan oleh operasi BCD, seperti pada perintah AAA. 8. PF (Parity Flag), digunakan untuk menunjukkan paritas bilangan, bit ini akan bernilai 1 bila bilangan yang dihasilkan merupakan bilangan genap. 9. CF (Carry Flag), jika terjadi peminjaman (borrow) pada operasi pengurangan atau bawaan (carry) pada penjumlahan, maka bit ini akan bernilai 1.
3. Pointer dan Index Register Register IP (Instruction Pointer) berpasangan dengan CS (CS:IP) menunjukkan alamat memori tempat dari instruksi selanjutnya yang akan dieksekusi. Register IP juga merupakan register 16 bit. Register SP (Stack Pointer) yang berpasangan dengan register SS (SS:SP) digunakan untuk menunjukkan alamat dari stack, sedangkan register BP (Base Pointer) yang berpasangan dengan register SS (SS:BP) mencatat suatu alamat di memori tempat data berada. Register SI (Source Index) dan register DI (Destination Index) biasanya digunakan pada operasi untai dengan mengakses secara langsung pada alamat memori yang ditunjuk kedua register ini. 4. Flag Register Flags register merupakan suatu komposisi register 16 bit dimana komposisi bitnya dapat mengecek apakah sesuatu proses itu berfungsi atau tidak. Sebagai contoh, Sign Flag menunjukkan apakah suatu bilangan bertanda atau tidak.
Tabel 2.5. Susunan Flag Register 8088 Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Flag OF DF IF TF SF ZF AF PF CF Sumber: (Barry B. Brey, , Mikroprosesor Intel 8086/8088/80186/80188/80286/ 80386/80486, 2003)
aritmatika pada mikroprosesor intel 8088/8086. 2. Perangkat Lunak dijadikan sebagai media pendukung dalam proses pembelajaran mikroprosesor dasar dan system operasi. D. Saran Penulis ingin memberikan beberapa saran yang mungkin dapat membantu dalam pengembangan perancangan perangkat lunak pembelajaran penerapan
C. Kesimpulan Setelah menyelesaikan perancangan perangkat lunak pembelajaran penerapan operasi aritmatika pada mikroprosesor intel 8088/8086 ini, penulis menarik kesimpulan sebagai berikut : 1. Perangkat Lunak ini dapat digunakan untuk memahami modus pengalamatan register dan segera serta beberapa operasi
29
Siti Mustawa
1.
2.
3. 4.
J. Informatika AMIK-LB Vol.1 No.2 /Mei/2013
operasi aritmatika pada mikroprosesor intel 8088/8086 yaitu : Modus pengalamatan yang dibahas dapat diperbanyak seperti menambahkan mode pengalamatan langsung, tidak langsung, base-plus-index, register relatif dan indeks berskala. Operasi yang dibahas dalam aplikasi dapat diperbanyak seperti menambahkan operasi aritmatika lainnya, operasi perbandingan, dan sebagainya. Mikroprosesor yang digunakan dapat lebih dari 16-bit. Bagi yang ingin menggunakan system pembelajaran ini dapat dikembangkan bahasa Assembly, sistem operasi, dan pemprosesannya.
:Arsitektur, Pemrograman, dan Interfacing, Penerbit Gunadarma, Jakarta 1995.
DAFTAR PUSTAKA Albert Paul Malvino, Elektronika Komputer Digital : Pengantar Mikrokomputer, Edisi Kedua, Penerbit Erlangga, 1994. Ario Suryokusumo, Microsoft Visual Basic 6.0, PT. Elex Media Komputindo, 2001. Barry B. Brey, Mikroprosesor Intel 8086/8088/80186/80188/80286/ 80386/80486 : Arsitektur Pemrograman Antarmuka, Edisi 5, Jilid 2, Penerbit Erlangga, 2003. Hadi, Rahadian, Pemrograman Microsoft Visual Basic dengan menggunakan Windows API, PT. Elex Media Komputindo, Jakarta, 2001. Muchlas, Rangkaian Digital, Penerbit Gava Media, Yokyakarta, Januari 2005. Soepono Soeparlan, Mikroprosesor 8088/8086, 80186, 80286, 80386, dan 80486
34