net/publication/357630646
CITATIONS READS
0 217
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Tugas Besar Logika Pemograman Teknik Elektro UII 2018 View project
Laporan Praktikum Sistem Kelistrikan Perumahan dan Industri Teknik Elektro UII 2018 View project
All content following this page was uploaded by Eka Putra Prasetya on 06 January 2022.
I. PENDAHULUAN
Pada zaman modern saat ini, Perkembangan teknologi
sangat cepat berkembang. Jika kita mengambil sudut pandang
orang zaman dulu maka pasti orang zaman dulu akan terheran-
heran dengan banyaknya peralatan dengan teknologi yang
canggih saat ini. Orang zaman dahulu pasti akan terkejut
dengan smartphone yang mana sebuah benda tetapi bisa
digunakan untuk berbagai macam keperluan. Sebuah
smartphone dapat melakukan berbagai hal dikarenakan ada
mikroprosesor di dalamnya yang berfungsi sebagai “otak” dari Gambar 1 Arsitektur Intel 8086
smartphone tersebut. Mikroprosesor ini terbagi menjadi 2 unit, yaitu BIU (Bus
Interface Unit), dan EU (Execution Unit). Sesuai dengan
Awal mula mikroprosesor sendiri dimulai pada tahun 1971.
namanya BIU bertugas sebagai unit antarmuka bus. BIU
Pada waktu itu Intel yang masih berupa perusahaan kecil
tersusun dari beberapa komponen, yaitu register segmen,
mencoba untuk membuat sebuah CPU (Central Processing
Instruction Pointer (IP), dan Instruction Stream Byte Queue
Unit) dengan cara menggabungkan berbagai macam transistor.
(ISBQ). EU bertugas sebagai unit eksekutor. EU juga tersusun
Kerja keras Intel membuahkan hasil dengan terciptanya sebuah
dari beberapa komponen, yaitu dekoder instruksi, sistem
CPU-Intel 4004. Kemudian 7 tahun setelahnya tepatnya pada
kontrol, Arithmetic Logic Unit (ALU), register serbaguna, dan
tahun 1978-1981, Intel melanjutkan risetnya dan terciptalah
flag register [2].
prosesor generasi pertama yaitu Intel 8086 dan 8088. Sampai
sekarang, Intel 8086 menjadi prosesor yang sering dipakai B. Register serbaguna (General purpose register)
untuk pembelajaran di universitas untuk memberi pengenalan Register serbaguna atau General purpose register
akan kinerja dari sebuah prosesor [1]. Praktikum ini bertujuan merupakan register pada EU yang berfungsi untuk menyimpan
untuk memahami register dan operasinya pada mikroprosesor data yang akan diolah atau hasil keluaran operasi oleh ALU.
Intel 8086 menggunakan software emu8086. Register ini mempunyai penyimpanan sebesar 16 bit yang
dibagi menjadi high register dan low register, yang tiap – tiap
bagiannya memiliki penyimpanan sebesar 8 bit. Register 8 bit
terdiri atas 8 buah, diantaranya AH, AL, BH, BL, CH, CL,
DH, dan DL. Register 16 bit terdiri dari 4 buah, yaitu AX, BX, baris. Klik single step lagi untuk menjalankan baris berikutnya
CX, dan DX. hingga berada pada baris terakhir, ret.
Tiap – tiap register 16 bit memiliki fungsi tersendiri. AX Setelah semua baris selesai dijalankan kemudian saatnya
(Accumulator Register, AH+AL) berfungsi untuk menyimpan mengamati general purpose register dan flag register. General
hasil dari operasi matematika. BX (Base Register, BH+BL) purpose register berada di kiri dari jendela emulator yang
berfungsi untuk menyimpan alamat offset data dalam memori. terdapat tulisan AX, BX, CX, DX. Untuk melihat flag register,
CX (Counter Register, CH+CL) berfungsi untuk menyimpan klik ikon flag pada bagian bawah jendela emulator. Jendela
jumlah lompatan pada proses perulangan. DX (Data Register, flag register akan muncul. Setelah itu kemudian hasil dari flag
DH+DL) berfungsi sebagai register data [2]. register dicatat pada lembar kerja yang disediakan. Langkah
yang sama juga dilakukan untuk percobaan ASCII dengan
C. Flag Register mengganti source code percobaan operasi pada register pada
Flag register merupakan register 16 bit yang berfungsi lembar kerja emu8086 dengan percobaan kode ASCII.
untuk menunjukkan status operasi yang dilakukan oleh
mikroprosesor. Setiap bit pada register ini berfungsi sebagai IV. HASIL DAN ANALISIS
penanda, nilai tiap bit akan berubah bergantung proses yang
A. Operasi pada register
sedang dikerjakan oleh mikroprosesor. Terdapat 9 flag dalam
flag register 8086 seperti pada Tabel 1 [3]. Tabel 2 Bilangan Hexa menjadi binner
Hexa Binner
Tabel 1 flag register dan fungsinya
23h 00100011
Flag register Fungsi
59h 01011001
Carry Flag (CF) 1, carry melebih MSB.
0, tidak ada carry melebihi MSB.
00000 0110
Parity Flag (PF) 1, parity genap
00010 0011
0, parity ganjil 00101 1001
Auxiliary Carry Flag (AF) 1, terdapat carry pada bit 3 dan 4. ………………… ……… +
0, tidak ada bawaan. 0111 1100
Zero Flag (AZ) 1, operasi menghsilkan 0. ………………… ……… ..
0, operasi tidak menghasilkan 0.
Tabel 3 Status Flag
Sign Flag (SF) 1, MSB negatif.
Flag register Nilai Alasan
0, MSB positif.
CF – Carry Flag 0 Karena tidak ada carry pada
Trap Flag (TF) 1, dapat dilakukan debugging.
bit MSB.
0, tidak bisa debugging.
PF – Parity Flag 0 Karena ganjil.
Interrupt Enable Flag (IF) 1, pin INTR enable.
AF-Auxiliary Flah Karena pada bit ke-3 tidak
0, pin INTR disable. terdapat carry.
AZ – Zero Flag 0 Karena hasil operasi tidak
Direction Flag (DF) 1, cacahan turun string.
menghasilkan 0.
0, cacahan naik string. SF – Sign Flag 0 Karena MSB posisitf.
Overflow Flag (OF) 1, terjadi overflow. TF – Trap Flag 0 Karena debugging tidak
diperlukan.
0, tidak terjadi overflow. IF – Interrupt Enable Flag 1 Karena menggunakan
interrupt.
III. METODE PRAKTIKUM DF – Direction Flag 0 Karena tidak menggunakan
string.
Pada praktikum ini dilakukan 2 percobaan yaitu operasi OF – Overflow Flag 0 Karena tidak terjadi
pada register dan kode ASCII. Percobaan ini dilakukan mandiri overflow.
di rumah. Alat dan bahan yang dibutuhkan yaitu komputer atau Pada percobaan pertama ini dihasilkan status flag seperti
laptop dan sofware emu8086. yang terlihat pada Tabel 3. CF bernilai 0 karena dapat terlihat
pada operasi penambahan binner bahwa bit ke-8 atau bit MSB
Percobaan pertama yaitu operasi pada register dimulai
tidak memiliki carry dari bit sebelumnya (angka berwarna
dengan membuka software emu886. Setelah emu8086 terbuka
klik pilihan new. Kemudian akan muncul jendela choose code merah merupakan carry atau tidak). PF bernilai 0 karena dapat
template, klik pilihan COM template dan klik OK. Pada tahap terlihat pada bilangan binner hasil penjumlahan memiliki
ini seharunya sudah muncul lembar kerja sebagai tempat logika 1 berjumlah 5 (lima merupakan bilangan ganjil). AF
source code sudah muncul. Kemudian ketikkan source code bernilai 0 karena dapat terlihat pada bit ke 3 yang angka merah
pada modul praktikum bagian operasi pada register. Setelah tercetak tebal dengan garis dibawahnya, bit 3 tidak memiliki
selesai diketik kemudian klik ikon emulate. Jendela emulator carry. AZ bernilai 0 kerena hasil operasi penambahan tidak
dan original source akan muncul. Untuk menjalankan program, menghasilkan nilai 0, dapat terlihat pada proses perhitungan
klik single step. Single step akan menjalankan program tiap diatas dihasilkan binner 01111100 atau dalam desimal sebesar
124. SF bernilai 0 karena pada MSB bernilai 0 atau bisa
dikatakan positif. TF bernilai 0 karena pada proses AF – Auxiliary Carry Flag 0 Karena pad abit ke-3 tidak
penambahan ini tidak perlu debugging. IF bernilai 1 karena terdapat carry.
mikroprosesor diperintah untuk melakukan operasi AZ – Zero Flag 0 Karena hasil operasi tidak
penambahan, jika tidak melakukan apapun maka akan bernilai menghasilkan 0.
0. DF bernilai 0 karena pada percobaan ini, operasi yang SF – Sign Flag 0 Karena MSB posisitf.
dilakukan tidak menggunakan string. OF bernilai 0 karena TF – Trap Flag 0 Karena debugging tidak
diperlukan.
tidak terjadi overflow atau bit yang melebihi jumlah maksimal
IF – Interrupt Enable Flag 1 Karena menggunakan
bit yang ditambahkan. interrupt.
DF – Direction Flag 0 Karena tidak menggunakan
string.
OF – Overflow Flag 0 Karena tidak terjadi
overflow.
Pada percobaan pertama bagian kedua ini dihasilkan status
flag seperti yang terlihat pada Tabel 5. CF bernilai 0 karena
Gambar 2 Proses menyimpan nilai ke register AX dan BX dapat terlihat pada operasi penambahan binner bahwa bit ke-8
atau bit MSB tidak memiliki carry dari bit sebelumnya (angka
berwarna merah merupakan carry atau tidak). PF bernilai 1
karena dapat terlihat pada bilangan binner hasil penjumlahan
memiliki logika 1 berjumlah 4 (empat merupakan bilangan
genap). AF bernilai 0 karena dapat terlihat pada bit ke 3 yang
angka merah tercetak tebal dengan garis dibawahnya, bit 3
Gambar 3 Proses penambahan dan penyimpanan tidak memiliki carry. AZ bernilai 0 kerena hasil operasi
Gambar 2 dan 3 menunjukkan bagaimana peran register penambahan tidak menghasilkan nilai 0, dapat terlihat pada
pada eksekusi program penjumlahan antara bilangan proses perhitungan diatas dihasilkan binner 01001011 atau
heksadesimal 23h dan 59h. Hal pertama kali yang dilakukan dalam desimal sebesar 75. SF bernilai 0 karena pada MSB
adalah menyimpan nilai heksadesimal 23h ke register AX. bernilai 0 atau bisa dikatakan positif. TF bernilai 0 karena
Dapat terlihat pada Gambar 2 pada bagian register AX terisi pada proses penambahan ini tidak perlu debugging. IF bernilai
heksadesimal 23 pada AL karena nilai binnernya tidak lebih 1 karena mikroprosesor diperintah untuk melakukan operasi
dari 8 bit. Kemudian eksekusi berikutnya menyimpan nilai penambahan, jika tidak melakukan apapun maka akan bernilai
heksadesimal 59h ke register BX. Dapat terlihat pada Gambar 0. DF bernilai 0 karena pada percobaan ini, operasi yang
2 pada bagian register BX terisi heksadesimal 59 pada BL dilakukan tidak menggunakan string. OF bernilai 0 karena
karena karena nilai binnernya juga tidak lebih dari 8 bit. tidak terjadi overflow atau bit yang melebihi jumlah maksimal
Kemudian yang terakhir adalah menambahkan nilai yang bit yang ditambahkan.
tersimpan pada AX dan BX dan hasil penjumlahannya
disimpan pada AX. Dapat terlihat pada Gambar 3 pada bagian
register AX terisi heksadesimal 7ch pada AL karena nilai
binner hasil penjumlahannya juga tidak lebih dari 8 bit. Gambar 4 Proses menyimpan nilai ke register AX dan BX
Tabel 4 Bilangan Hexa ke binner untuk NIM
Hexa Binner
12h 00010010
39h 00111001