Anda di halaman 1dari 14

40

BAB III
PEMBAHASAN DAN PERANCANGAN
3.1 Pembahasan
Instruksi - instruksi mikroprosesor INTEL 8088/8086 yang didukung di dalam
perangkat lunak ini adalah modus pengalamatan (MOV), penjumlahan (ADD),
penjumlahan dengan satu (INC), penjumlahan dengan carry (ADC), pengurangan
(SUB), pengurangan dengan satu (DEC), pengurangan dengan pinjaman (SBB),
perkalian (MUL) dan pembagian (DIV). Sedangkan register register yang didukung
adalah general purpose register, yaitu AX, BX, CX, DX, dan register flag, yaitu Z
(Zero), C (Carry), A (Half-Carry), S (Sign), P (Parity) dan O (Overflow).
Penulis merancang penerapan modus pengalamatan dan instruksi aritmatika
pada sebuah perangkat lunak. User dapat meng-input instruksi instruksi op-code
yang didukung dan perangkat lunak akan mengeksekusi instruksi baris per baris dan
menunjukkan perubahan isi register akibat dari instruksi yang dieksekusi.
Sebagai contoh, ekspresi aritmatika = FFFFh ((30h + 43h + 1A0h) * 2h)
dapat dituliskan dalam bentuk op-code sebagai berikut :
1. MOV AX, 0030
2. MOV BX, 0043
3. MOV CX, 01A0
4. ADD AX, BX
5. ADD AX, CX

41

6. MOV BX, 0002


7. MUL BX
8. MOV BX, AX
9. MOV AX, FFFF
10. SUB AX, BX
Eksekusi dari setiap baris op-code beserta register flag yang berubah adalah sebagai
berikut :
===============================
1. MOV AX, 0030
===============================
Instruksi MOV akan menyalin bilangan 0030H ke register AX.
Isi register AX sekarang = 0030H = 0000000000110000.
===============================
2. MOV BX, 0043
===============================
Instruksi MOV akan menyalin bilangan 0043H ke register BX.
Isi register BX sekarang = 0043H = 0000000001000011.
===============================
3. MOV CX, 01A0
===============================
Instruksi MOV akan menyalin bilangan 01A0H ke register CX.
Isi register CX sekarang = 01A0H = 0000000110100000.

42

===============================
4. ADD AX, BX
===============================
Instruksi ADD menjumlahkan isi dari register AX dan BX. Hasil penjumlahan
dikembalikan ke register AX.
Isi dari register AX ditambah dengan isi register BX = 0000000000110000 +
0000000001000011 = 0000000001110011
0000000000110000
0000000001000011
----------------------------------- +
0000000001110011
Isi dari register AX berubah menjadi 0000000001110011
Flag Z = 0 -> Hasil penjumlahan tidak nol.
Flag C = 0 -> bit carry dari operasi.
Flag A = 0 -> bit half carry dari operasi.
Flag S = 0 -> Hasil penjumlahan positif.
Flag P = 0 -> Jumlah Bit bernilai '1' = 5 (ganjil).
Flag O = 0 -> Hasil operasi tidak overflow.
===============================
5. ADD AX, CX
===============================
Instruksi ADD menjumlahkan isi dari register AX dan CX. Hasil penjumlahan
dikembalikan ke register AX.
Isi dari register AX ditambah dengan isi register CX = 0000000001110011 +
0000000110100000 = 0000001000010011

43

0000000001110011
0000000110100000
----------------------------- +
0000001000010011
Isi dari register AX berubah menjadi 0000001000010011
Flag Z = 0 -> Hasil penjumlahan tidak nol.
Flag C = 0 -> bit carry dari operasi.
Flag A = 1 -> bit half carry dari operasi.
Flag S = 0 -> Hasil penjumlahan positif.
Flag P = 1 -> Jumlah Bit bernilai '1' = 4 (genap).
Flag O = 0 -> Hasil operasi tidak overflow.
===============================
6. MOV BX, 0002
===============================
Instruksi MOV akan menyalin bilangan 0002H ke register BX.
Isi register BX sekarang = 0002H = 0000000000000010.
===============================
7. MUL BX
===============================
Instruksi MUL melakukan operasi perkalian isi dari register BX dengan AX. Hasil
perkalian disimpan ke register DX-AX.
Isi dari register BX dikali isi register AX = 0000000000000010 *
0000001000010011 = 00000000000000000000010000100110

44

0000000000000010
0000001000010011
--------------------------------- *
0000000000000010
0000000000000010
0000000000000010
0000000000000010
-------------------------------------------- +
0000000000000010000100110
Isi dari register DX berubah menjadi 0000000000000000.
Isi dari register AX berubah menjadi 0000010000100110.
Flag Z = 0 -> Hasil perkalian tidak nol.
Flag C = 0 -> MSB 16 bit = 0
Flag S = 0 -> Hasil perkalian positif.
Flag P = 1 -> Jumlah Bit bernilai '1' = 4 (genap).
Flag O = 0 -> Hasil operasi tidak overflow.
===============================
8. MOV BX, AX
===============================
Instruksi MOV memindahkan data dari register AX ke BX.
Isi register BX sekarang = isi dari register AX = 0000010000100110 = 0426H.
===============================
9. MOV AX, FFFF
===============================
Instruksi MOV akan menyalin bilangan FFFFH ke register AX.
Isi register AX sekarang = FFFFH = 1111111111111111.

45

===============================
10. SUB AX, BX
===============================
Instruksi SUB mengurangkan isi dari register AX dan BX. Hasil pengurangan
dikembalikan ke register AX.
Isi dari register AX dikurang dengan isi register BX = 1111111111111111 0000010000100110 = 1111101111011001
1111111111111111
0000010000100110
----------------------------------- 1111101111011001
Isi dari register AX berubah menjadi 1111101111011001
Flag Z = 0 -> Hasil pengurangan tidak nol.
Flag C = 0 -> bit carry dari operasi.
Flag A = 0 -> bit half carry dari operasi.
Flag S = 0 -> Hasil pengurangan positif.
Flag P = 1 -> Jumlah Bit bernilai '1' = 12 (genap).
Flag O = 0 -> Hasil operasi tidak overflow.
Hasil operasi disimpan pada register AX, yaitu 1111101111011001 atau
FBD9(heksa) atau 64473 (desimal).

3.2 Perancangan
Perangkat lunak pembelajaran ini dirancang dengan menggunakan bahasa
pemrograman Microsoft Visual Basic 6.0 dengan beberapa komponen standar seperti
TextBox, Microsoft Flex Grid, PictureBox, Image, Shape, Label, dan sebagainya.

46

Perangkat lunak pembelajaran ini memiliki beberapa form, seperti :


1. Form Splash Screen.
2. Form Input Instruksi.
3. Form Tambah Instruksi.
4. Form Proses Instruksi.
5. Form About.

3.2.1

Form Splash Screen


Form Splash Screen berfungsi sebagai form awal (pembuka) pada perangkat

lunak. Klik pada form atau ketik tombol <ENTER> untuk melanjutkan.

Gambar 3.1 Rancangan Form Splash Screen


Keterangan :
1 : data penyusun skripsi.
2 : nama perangkat lunak.
3 : gambar icon perangkat lunak.
4 : data program studi dan kampus.

47

3.2.2

Form Input Instruksi


Form Input Instruksi merupakan form yang berfungsi untuk memasukkan

instruksi op-code pada perangkat lunak, untuk selanjutnya diproses pada form Proses
Instruksi.

Gambar 3.2 Rancangan Form Input Instruksi


Keterangan :
1 : title bar, berisikan tulisan Input Instruksi.
2 : tombol Close, berfungsi untuk menutup form dan keluar dari program.
3 : tombol About, untuk memunculkan form About.
4 : tombol Load, untuk membuka data op-code yang sebelumnya telah disimpan.
5 : tombol Save, untuk menyimpan data op-code yang telah di-input.
6 : tabel Instruksi, merupakan tempat ditampilkannya barisan instruksi op-code.

48

7 : tombol Tambah Instruksi, untuk menambah instruksi berikutnya.


8 : tombol Sisipkan Instruksi, untuk menyisipkan instruksi di antara instruksi yang
telah dimasukkan.
9 : tombol Ubah Instruksi, untuk mengubah instruksi yang telah dimasukkan.
10 : tombol Hapus Instruksi, untuk menghapus instruksi yang telah dimasukkan.
11 : tombol Jalankan Instruksi, untuk memproses instruksi yang telah dimasukkan
dengan menampilkan form Proses Instruksi.
12 : tombol Keluar, untuk keluar dari form.

49

3.2.3

Form Tambah Instruksi


Form

Tambah

Instruksi

merupakan

form

yang

berfungsi

untuk

menambahkan instruksi op-code pada perangkat lunak. Form ini tampil apabila
tombol Tambahkan Instruksi, Sisipkan Instruksi, Ubah Instruksi ditekan pada
form Input Instruksi. Form ini juga menampilkan informasi dan fungsionalitas dari
masing masing instruksi yang dipilih.

Gambar 3.3 Rancangan Form Tambah Instruksi


Keterangan :
1 : title bar, berisikan tulisan Tambah Instruksi.
2 : tombol Close, berfungsi untuk menutup form.
3 : combo box, untuk memilih instruksi yang akan digunakan.
4 : combo box, untuk memilih register-1 yang akan digunakan.

50

5 : combo box, untuk memilih register-2 yang akan digunakan.


6 : option button, untuk memilih pengalamatan atau penjumlahan register.
7 : option button, untuk memilih pengalamatan atau penjumlahan segera.
8 : daerah tampilan informasi instruksi yang dipilih.
9 : tombol OK, berfungsi untuk memasukkan instruksi yang telah dipilih.
10 : tombol Batal, berfungsi untuk membatalkan instruksi yang telah dipilih.

51

3.2.4

Form Proses Instruksi


Form Proses Instruksi merupakan inti dari perangkat lunak. Form ini

berfungsi untuk mengeksekusi setiap instruksi op-code yang dimasukkan pada form
Input Instruksi. Form ini juga menunjukkan semua perubahan dari isi register
akibat eksekusi instruksi. Hasil eksekusi dapat disimpan dan dibuka pada aplikasi
notepad pada sistem operasi windows.

Gambar 3.4 Rancangan Form Proses Instruksi


Keterangan :
1 : title bar, berisikan tulisan Proses Op-Code pada Mikroprosesor INTEL
8088/8086.

52

2 : tombol Close, berfungsi untuk menutup form.


3 : tabel instruksi, untuk menampilkan barisan instruksi op-code yang akan diproses.
4 : tabel General Purpose Register, untuk menampilkan isi dari register AX (AH
& AL), BX (BH & BL), CX (CH & CL), dan DX (DH & DL).
5 : tabel Register Flag, untuk menampilkan isi dari register flag : Z (Zero), C
(Carry), A (Half Carry), S (Sign), P (Parity) dan O (Overflow).
6 : textbox, untuk menampilkan hasil eksekusi dari instruksi.
7 : tombol Simpan Eksekusi, untuk menampilkan kotak dialog simpan.
8 : combobox, untuk memilih kecepatan eksekusi instruksi.
9 : tombol Proses, untuk memulai proses eksekusi instruksi.
10 : tombol Pause, untuk menghentikan proses eksekusi instruksi secara sementara.
11 : tombol Keluar, untuk keluar dari form.

53

3.2.5

Form About
Form About merupakan form untuk menampilkan data penyusun skripsi.

Gambar 3.5 Rancangan Form About


Keterangan :
1 : title bar, berisikan tulisan About.
2 : tombol Close, berfungsi untuk menutup form.
3 : nama perangkat lunak.
4 : data penyusun skripsi.
5 : gambar icon dari perangkat lunak.
6 : data kampus.
7 : tombol OK untuk menutup form About.

Anda mungkin juga menyukai