Anda di halaman 1dari 14

LAPORAN PRAKTIKUM

MIKROPROSESOR DAN INTERFACE

Disusun oleh :
Firdaus Surya Pratama
201344013

Tanggal Praktikum : Sabtu, 5 Maret 2022


Tanggal Pengumpulan : Kamis, 10 Maret 2022

Instruktur :
Ferry Satria, BSEE, M.T.
Rahmawati Hasanah S.ST.,M.T.

PROGRAM STUDI D4-TEKNIK TELEKOMUNIKASI


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI BANDUNG
2021
I. Judul Praktikum
• PENJUMLAHAN DATA HEKSADESIMAL BERTANDA PADA BAHASA
PEMROGRAMAN ASSEMBLY
II. Tujuan Praktikum
• Mahasiswa mampu melakukan instalasi dan menggunakan software emu8086 untuk
simulasi mikroprosesor

• Mahasiswa mampu memahami konsep Bahasa Pemrograman Assembly

• Mahasiswa mampu memahami konsep program penjumlahan data heksadesimal


bertanda pada Bahasa Assembly
III. Landasan Teori
Bahasa Assembly merupakan jenis bahasa pemrograman yang ada pada generasi
kedua. Bahasa Assembly ini juga dinamakan sebagai bahasa rakitan yang merupakan
bahasa digunakan untuk komputer, namun bahasa ini masuk ke dalam kategori sebagai
bahasa tingkat rendah atau low level language. Bahasa ini merupakan notasi untuk mesin
sehingga nanti bisa dibaca oleh manusia.

Bahasa assembly mempunyai hubungan 1-1 dengan berdasarkan instruksi mesin.


Contohnya, untuk setiap julukan atau mnemonic yang nanti akan ditulis dengan
menggunakan bahasa assembly, maka nanti juga akan langsung diterjemahkan dengan
tepat satu kode operasi sehingga bisa langsung dimengerti oleh komputer. Untuk
memahami cara kerja bahasa Assembly, Berikut ini merupakan tahapan-tahapan
bagaimana sebuah huruf “A” bisa tampil di layar monitor menggunakan bahasa
Assembly:

1. Microprocessor mengisi register di internal mikroprosesor dengan kode ASCII “A”,


yaitu 41h.

2. Microprocessor mengirim sinyal interupt 21h. Akibatnya interupsi 21h dijalankan, yaitu
mengirimkan “A” ke monitor.

3. Microprocessor mengirimkan sinyal interupt 20h tanda sudah selesai.

Pada sebuah mikroprosesor terdapat register, yaitu alat penyimpanan kecil yang
mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan
atau instruksi yang sedang diproses. Memori ini bersifat sementara dan biasanya
digunakan untuk menyimpan data selama pemrosesan atau data untuk diproses lebih
lanjut. Register memiliki jenis-jenis sebagai berikut:
1. Register Umum (General Purpose Register)

a) Register AX (AH+AL) / Accumulator Register

b) Register BX (BH+BL) / Base Register

c) Register CX (CH+CL) / Counter Register

d) Register DX (DH+DL) / Data Register

2. Register Segments

a) Code Segment (Register CS) yang berfungsi untuk menunjukkan alamat dari
instruksi selanjutnya pada mikroprosessor.

b) Data Segment (Register DS) yang memiliki fungsi untuk menunjukkan alamat data
pada pengiriman/transfer register.

c) Stack Segment (Register SS) yang memiliki fungsi pemanggilan (CALL) dan
pengarahan ke program utama (RET) pada operasi stack.

d) Extra Segment (Register ES) sebagai memori tambahan untuk operasi string pada
CX di register umum.

3. Pointer dan Index Register

a) Register IP (Instruction Pointer), yang menunjukkan alamat instruksi atau baris


perintah dalam program.

b) Register SP (Stack Pointer), yang menunjukkan byte terakhir pada operasi stack.

c) Register BP (Base Pointer), yang memiliki fungsi yang lebih kurang sama dengan
register BX yaitu membaca dan menulis data secara langsung dari atau ke memori.

d) Index Register

4. Flag Register Flag Register berfungsi sebagai penanda yang menunjukkan status atau
keadaan dari suatu mikroprosessor. Bit-bit data pada flag yang berfungsi sebagai penanda
status, akan mengalami perubahan tergantung kepada proses yang sedang berlangsung.
IV. Alat dan Bahan
• Laptop/Komputer
• Software emu8086
V. Langkah-Langkah Praktikum
1. Buat program untuk menjumlahkan data Heksadesimal: 45H dan 93H, analisa hasilnya
jika:
a. Data merupakan Bilangan Tak Bertanda.
b. Data merupakan Bilangan Bertanda.
2. Buat program untuk menjumlahkan data Heksadesimal: 6645H dan 0A493H, analisa
hasilnya jika:
a. Data merupakan Bilangan Tak Bertanda.
b. Data merupakan Bilangan Bertanda.
3. Buat program untuk menjumlahkan data Heksadesimal: 45H,77H, 56, 0AAH,80H dan
93H, analisa hasilnya jika:
a. Data merupakan Bilangan Tak Bertanda.
b. Data merupakan Bilangan Bertanda.
4. Buat program untuk menjumlahkan data Heksadesimal: 9988H,5678H,8294H, 6645H
dan 0A493H, analisa hasilnya jika:
a. Data merupakan Bilangan Tak Bertanda.
b. Data merupakan Bilangan Bertanda.

VI. Hasil dan Analisis Praktikum


6.1 Soal 1
1. Program untuk menjumlahkan data Heksadesimal: 45H dan 93H.
- Program

Gambar 6.1 Program Penjumlahan 2 data heksa


- Hasil Program

Gambar 6.2 Hasil Program Penjumlahan 2 data heksa

a. Bilangan tidak bertanda (Unsigned number)

Gambar 6.3 Hasil program bilangan tidak bertanda

Analisa dari hasil bilangan tidak bertanda diatas adalah


45H = 0100 0101 = 69
93H = 1001 0011 = 147
Maka akan didapatkan hasil nya kedua bilangan langsung ditambah yaitu 69 + 147
= 216
b. Bilangan bertanda

Gambar 6.4 Hasil program bilangan bertanda

Rentang bilangan bertanda adalah 80h – 7fH


Analisa dari hasil bilangan bertanda diatas adalah
45H (diluar dari range bilangan bertanda) maka 0100 0101 = 69
93H (berada di dalam range bilangan bertanda) maka :
1001 0101
1
K2 -> 1001 0100

K1 -> 1001 0100


2SM -> 1110 1011 = -109
Maka akan didapatkan hasilnya dengan kedua bilangan ditambah yaitu 69 + -109 =
- 40

6.2 Soal 2
Program untuk menjumlahkan data Heksadesimal : 6645H dan 0A493H.
- Program

Gambar 6.5 Program Penjumlahan 2 data 16 bit


- Hasil Program

Gambar 6.6 Hasil Program Penjumlahan 2 data 16 bit


a. Bilangan tidak bertanda (Unsigned number)

Gambar 6.7 Hasil program bilangan tidak bertanda

Analisa dari hasil bilangan tidak bertanda diatas adalah


6645H = 0110 0110 0100 0101 = 26181
A493H = 1010 0100 1001 0011 = 42131
Maka akan didapatkan hasil nya kedua bilangan langsung ditambah yaitu 26181 +
42131 = 68312
b. Bilangan bertanda

Gambar 6.8 Hasil program bilangan bertanda

Analisa dari hasil bilangan bertanda diatas adalah


6645H (diluar dari range bilangan bertanda) maka 0110 0110 0100 0101 = 26181
A493H (berada di dalam range bilangan bertanda) maka :
1010 0100 1001 0011
K2 -> 1010 0100 1001 00101 −

K1 -> 1010 0100 1001 0010


2SM -> 1101 1011 0110 1101 = -23405
Maka akan didapatkan hasilnya dengan kedua bilangan ditambah yaitu 26181 + -
23405 = - 2776
6.3 Soal 3
Program untuk menjumlahkan data Heksadesimal: 45H,77H, 56H, 0AAH,80H dan 93H.
- Program

Gambar 6.9 Program Penjumlahan 6 data heksadesimal


- Hasil Program

Gambar 6.10 Hasil Program Penjumlahan 6 data heksadesimal


a. Bilangan tidak bertanda (Unsigned number)
Gambar 6.11 Hasil program bilangan tidak bertanda

Analisa dari hasil bilangan tidak bertanda diatas adalah


45H = 0100 0101 = 69
77H = 0111 0111 = 119
56H = 0101 0110 = 86
AAH = 1010 1010 = 170
80H = 1000 0000 = 128
93H = 1001 0011 = 147
Maka akan didapatkan hasil nya kedua bilangan langsung ditambah yaitu 69 + 119
+ 86 + 170 +128 +147 = 719
b. Bilangan bertanda

Gambar 6.12 Hasil program bilangan bertanda

Rentang bilangan bertanda adalah 80h – 7fH


Analisa dari hasil bilangan bertanda diatas adalah
45H (bilangan diluar rentang) = 0100 0101 = 69
77H (bilangan diluar rentang) = 0111 0111 = 119
56H (bilangan diluar rentang) = 0101 0110 = 86
3 Data lagi didalam rentang bilangan bertanda maka :
1. AAH
1010 1010
1
K2 -> −
1010 1001

K1 -> 1010 1001


2SM -> 1101 0110 = - 86

2. 80H
1000 0000
1
K2 -> 111 1111

K1 -> 1111 1111


2SM -> 1000 0000 = - 128

3. 93H
1001 0101
1
K2 -> −
1001 0100

K1 -> 1001 0100


2SM -> 1110 1011 = -109

Maka akan didapatkan hasilnya dengan kedua bilangan ditambah yaitu 69 + 119 +
86 + -86 + -128 + - 109 = -49

6.4 Soal 4
Program untuk menjumlahkan data Heksadesimal: 9988H,5678H,8294H, 6645H dan 0A493H.
- Program

Gambar 6.13 Program Penjumlahan 5 data heksadesimal


- Hasil Program

Gambar 6.14 Hasil Program Penjumlahan 5 data heksadesimal.


c. Bilangan tidak bertanda (Unsigned number)

Gambar 6.15 Hasil program bilangan tidak bertanda

Analisa dari hasil bilangan tidak bertanda diatas adalah


9988H = 1001 1001 1000 1000 = 39304
5678H = 0101 0110 0111 1000 = 22136
8294H = 1000 0010 1001 0100 = 33428
6645H = 0110 0110 0100 0101 = 26181
0A493H = 1010 0100 1001 0011 = 42131
Maka akan didapatkan hasil nya kedua bilangan langsung ditambah yaitu 39304 +
22136 + 33428 + 26181 + 42131 = 162910
d. Bilangan bertanda

Gambar 6.16 Hasil program bilangan bertanda


Analisa dari hasil bilangan bertanda diatas adalah
5678H (diluar rentang bilangan bertanda) = 0101 0110 0111 1000 = 22136.
6645H (diluar dari range bilangan bertanda) maka 0110 0110 0100 0101 = 26181.
3 Data lagi didalam rentang bilangan bertanda maka :
1. 9988H
1001 1001 1000 1000
1
K2 -> 1001 1001 1000 0111

K1 -> 1001 1001 1000 0111


2SM -> 1110 0110 0111 1000 = - 26232

2. 8294H
1000 0010 1001 0100
1
K2 -> −
1000 0010 1001 0011

K1 -> 1000 0010 1001 0011


2SM -> 1111 1101 0110 1100 = - 32108

3. A493H
1010 0100 1001 0011
K2 -> 1010 0100 1001 00101 −

K1 -> 1010 0100 1001 0010


2SM -> 1101 1011 0110 1101 = -23405

Maka akan didapatkan hasilnya dengan kedua bilangan ditambah yaitu -26232 + 22136 + -32108 + 26181 +
-23405 = -33428

ANALISIS:
Dalam praktikum praktikan dapat menganalisa beberapa hal yaitu:
1. Emu 8086 tidak support beberapa hasil penjumlahan yang nilainya lebih dari dword.
2. Bilangan bertanda dan bilangan tidak bertanda ada beberapa perbedaan yaitu jika bertanda semua
bilangan positif tetapi bilangan tidak bertanda ada positif dan negatif, kemudian bilangan bertanda
terdapat beberapa metode sistem bilangan untuk mendapatkan nilainya.
3. Hasil dari bilangan bertanda dan bilangan tidak bertanda tinggal dijumlahkan saja.
4. Penggunaan Kembali intruksi-intruksi terdahulu, data area, dan penggunaan jumlah bit data pada data
areanya seperti DB untuk 8 bit dan DW untuk 16 bit.
Kesimpulan

Berdasarkan praktikum kali ini praktikan dapat menyimpulkan bahwa bilangan bertanda
dan bilangan tidak bertanda terdapat perbedaan dimana Ketika suatu data sudah berada dalam
range sebuah bilangan bertanda maka bilangan tersebut sudah termasuk kedalam bilangan negatif
yang di dalam komputer bilangan tersebut ditandakan sebagai kode biner 0 dan 1 untuk
membedakan antara bilangan/data positif atau negatif, kemudian pada praktikum kali ini
dilakukan penjumlahan data heksadesimal, Ketika kasusnya adalah bilangan tidak bertanda maka
hasilnya dikonversi terlebih dahulu ke desimal baru kemudian dijumlahkan datanya. Lalu Ketika
kasusnya adalah bilangan bertanda maka data tersebut akan terlihat apakah masuk kedalam range
bilangan bertanda atau tidak, jika iya maka bilangan/data tersebut termasuk kedalam bilangan
negative, kemudian baru dijumlahkan
DAFTAR PUSTAKA

[1] Catur, “Pengertian Register dan Jenis-Jenis Register” garudacyber.co.id, 2018.


http://garudacyber.co.id/artikel/1486-pengertian-register-dan-jenis-jenis-register. (accessed
Feb. 8, 2022).
[2] Rahmawati Hasanah, “Mikroprosesor dan Interface” . Bandung: Politeknik Negeri Bandung,
2019.

Anda mungkin juga menyukai