Anda di halaman 1dari 11

LAPORAN

PRAKTIKUM
BAHASA RAKITAN

Disusun Oleh :

Nama : Rianti Agustina

NIM : 09011181924150

Jurusan : Sistem Komputer

Dosen : Aditya P. P. Prasetyo, S. Kom., M.T.

LABORATORIUM ROBOTIKA DAN SISTEM


KENDALI FAKULTAS ILMU KOMPUTER
UNIVERSITAS
SRIWIJAYA
INDRALAYA 2021
PRAKTIKUM VII
INSTRUKSI BANDING DAN LOMPAT

A. TUJUAN
 Memahami instruksi percabangan
 Memahami teknik merancang program percabanagn
 Mampu menganalisa setiap data yang dihasilkan

B. PERALATAN YANG DIGUNAKAN


 Seperangkat PC
 Software Turbo Assembly
 Modul Praktikum Bahasa Rakitan

C. PROSEDURE PRAKTIKUM
 Salinlah program
 Gantilah nilai variable db
 Amatilah output yang ditampilkan
 Buat Algoritma program
 Buat Flowchart program
 Buat Analisis program
 Buat Kesimpulan

1
D. DASAR TEORI

LOMPAT TANPA SYARAT


Perintah JMP(Jump), sudah pernah kita gunakan, dimana perintah
ini digunakan untuk melompati daerah data program. Perintah JMP
digunakan dengan syntax:
JMP Tujuan
Perintah JMP ini dikategorikan sebagai Unconditional Jump,
karena perintah ini tidak menyeleksi keadaan apapun untuk melakukan
suatu lompatan. Setiap ditemui perintah ini maka lompatan pasti
dilakukan.
Selain dari perintah jump tanpa syarat, masih banyak perintah
Jump yang menyeleksi suatu keadaan tertentu sebelum dilakukan
lompatan. Perintah jump dengan penyeleksian kondisi terlebih dahulu
biasanya diikuti dengan perintah untuk melihat kondisi, seperti
membandingkan dengan perintah "CMP"(Compare).

MEMBANDINGKAN DENGAN CMP


Perintah CMP(Compare) digunakan untuk membandingkan 2 buah
operand, dengan syntax:
CMP Operand1,Operand2
CMP akan membandingkan operand1 dengan operand2 dengan
cara mengurangkan operand1 dengan operand2. CMP tidak mempengaruhi
nilai Operand1 dan Operand2, perintah CMP hanya akan mempengaruhi
flags register sebagai hasil perbandingan. Adapun flag-flag yang
terpengaruh oleh perintah CMP ini adalah:
 OF akan 1, jika operand1 lebih kecil dari operand2 pada operasi
bilangan bertanda.
 SF akan 1, bila operand1 lebih kecil dari operand2, pada operasi
bilangan bertanda.
 ZF akan 1, jika operand1 nilainya sama dengan operand2.

2
 CF akan 1, jika operand1 lebih kecil dari operand2 pada operasi
bilangan tidak bertanda.

Perlu anda ingat bahwa CMP tidak dapat membandingkan antar 2 lokasi
memory.

LOMPAT YANG MENGIKUTI CMP


Perintah CMP yang hanya mempengaruhi flag register, biasanya
diikuti dengan perintah lompat yang melihat keadaan pada flags register
ini. Jenis perintah lompat yang biasanya mengikuti perintah CMP, terdapat
12 buah seperti pada gambar 13.1.

Gambar Perintah Jump yang mengikuti CMP

3
E. PROGRAM

.MODEL SMALL
.CODE
ORG 100H

TData : JMP Proses


BilA db 67
BilB db 68
Kal0 db 'Bilangan A lebih kecil dari bilangan B $'
Kal1 db 'Bilangan A sama dengan bilangan B $'
Kal2 db 'Bilangan A lebih besar dari bilangan B $'
Proses : MOV AL,BilA
CMP AL,BilB
JB AKecil
JE Sama
JA ABesar
AKecil : LEA DX,Kal0
JMP Cetak
Sama : LEA DX,Kal1
JMP Cetak
ABesar : LEA DX,Kal2
Cetak : MOV AH,09
INT 21h
EXIT : INT 20h

END TData

4
F. OUTPUT PROGRAM
// Bilangan A tetap

DOSBox 0.74-3, Cpu speed: 3000 cycles, Frameskip 0, Program: DOSBOX

5
// Bilangan A diganti 68

6
// Bilangan A diganti 69

7
G. ALGORITMA PROGRAM
 Pertama ketik .MODEL SMALL yang merupakan keterangan program yang
berfungsi untuk mode dari program yang sudah ada.
 Lalu ketik .code org 100h ini merupakan keterangan yang digunakan untuk
menentukan alamat offset terhadap program yang hendak digunakan. Khusus
program com selalu akan diawali dengan offset 100h.
 Pada TData digunakan fungsi JMP atau JUMP untuk melewati proses
 Kemudian digunakan db(define byte) untuk memberkan nilai tertentu pada
memori program yaitu dengan nilai 67, 68, dan juga 69
 Kal0, Kal1, Kal2 pada TData digunakan untuk mencetak kondisi dimana bila bil A
lebih kecil dari bil B untuk Kal0. Begitu juga dengan Kal1, mencetak kondisi
dimana bila bilA sama dengan bil B serta Kal2 untuk mencetak bila bil A lebih
besar dari bil B
 Karakter dari $ digunakan untuk menjadi tanda akhir tulisan
 Pada proses digunakan fungsi MOV untuk memasukkan nilai BilA pada AL
 Kemudian digunakan fungsi CMP untuk membandingkan nilai dari AL dengan Bil
B
 Kemudian digunakan fungsi lompat JB jika operan1 lebih kecil dari operand 2, JE
jika operand1 = operand2, dan JA jika operand1 lebih kecil dari operand2
 Pada saat Akecil digunakan fungsi LEA untuk mendapatkan alamat dari sebuah
varibel, yaitu DX akan berisi offset Kal0 lalu diikuti dengan JMP untuk melompati
cetak
 Pada saat sama digunakan fungsi LEA untuk mendapatkan alamat dari sebuah
varibel, yaitu DX akan berisi offset Kal1 lalu diikuti dengan JMP untuk melompati
cetak
 Pada saat Abesar digunakan fungsi LEA untuk mendapatkan alamat dari sebuah
varibel, yaitu DX akan berisi offset Kal2 1 1
 Kemudian pada cetak digunakan fungsi MOV untuk memberi nilai 09 pada AH
 Tahapan berikutnya yaitu INT 21h. INT 21h adalah salah satu operasi dari
8
interrupt yang berfungsi untuk memanggil atau mencetak karakter
 Kemudian pada Exit digunakan INT20h. INT 20h yang juga merupakan salah satu
dari DOS interrupt juga. INT 20h ini bertugas untuk memberhentikan proses
komputer terhadap suatu program COM.
 Terakhir gunakan END TData untuk memberhentikan program.

H. FLOWCHART PROGRAM

START

BIL A = 67
BIL B = 68

AL = BIL A (67)

AL : BIL B

KAL 0: Bil KAL 1 : Bil KAL 2 : Bil


967) A > Bil B A = Bil B A < Bil B

JB : A kecil (LEA DX, Kal0)


JE : Sama (LEA DX, Kal1)
JA : Abesar (LEA DX, Kal2)

AH = 09

INT 21h

INT 20h

STOP

9
I. ANALISIS PRAKTIKUM
Percobaan yang telah dilakukan ini menggunakan aplikasi dosbox untuk mencari
hasil dari beberapa operand atau perintah yang sudah diberikan. Yang dimana
menggunakan instruksi banding dan lompat, instruksi banding yang digunakan
adalah CMP yang bertujuan untuk membandingkan nilai AL dengan BilB dan
menggunakan instruksi lompat yaitu JB, JE dan JA dimana JB digunakan apabila
operand1 lebih kecil dari operand2. Dan INT 21h adalah salah satu operasi dari
interrupt yang berfungsi untuk memanggil atau mencetak karakter atau singkatnya
memanggil DL. Sedangkan INT 20h yang juga merupakan salah satu dari DOS
interrupt juga. INT 20h ini bertugas untuk memberhentikan proses komputer
terhadap suatu program COM. Terakhir digunakan END yang bertujuan untuk
memberhentikan program.

J. KESIMPULAN
Dapat disimpulkan bahwa pada percobaan ini menghasilkan program Turbo
Assembler atau Tasm, dimana terdapat dua program untuk mencetak kalimat yang
berisi hasil dari perbandingan antara dua buah variable db A dan B dimana
hasilnya hanya akan menampilkan angka lebih kecil, angka sama dan angka lebih
besar

1
0

Anda mungkin juga menyukai