Anda di halaman 1dari 13

LAPORAN PRAKTIKUM

BAHASA RAKITAN

Disusun Oleh :

Nama :

NIM :

Jurusan : Sistem Komputer

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

LABORATORIUM ROBOTIKA DAN SISTEM KENDALI


FAKULTAS ILMU KOMPUTER
UNIVERSITAS SRIWIJAYA
INDRALAYA 2018

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

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

1
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.
 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.

2
Gambar Perintah Jump yang mengikuti CMP

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
3
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

F. OUTPUT PROGRAM
// Bilangan A tetap

// Bilangan A diganti 68

4
// Bilangan A diganti 69

G. ALGORITMA PROGRAM

H. FLOWCHART PROGRAM

5
I. ANALISIS PRAKTIKUM

J. KESIMPULAN

6
PRAKTIKUM VIII
MASUKAN DARI KEYBOARD

A. TUJUAN
 Dapat mengenal port input dan output
 Dapat menerapkannya untuk aplikasi sederhana
 Mampu menganalisa setiap data yang dihasilkan

B. PERALATAN YANG DIGUNAKAN


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

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

D. DASAR TEORI

KODE SCAN DAN ASCII

7
Prosesor pada keyboard mendeteksi setiap penekanan maupun
pelepasan tombol pada keyboard. Prosesor ini menterjemahkan setiap
sinyal yang terjadi berdasarkan posisi tertentu menjadi apa yang
dinamakan kode Scan. Dengan demikian tombol "A" dan "B" akan
mempunyai kode Scan yang berbeda karena posisinya memang berbeda.
Lain halnya untuk tombol "A"<A besar> dan "a"<a kecil> yang
terdapat pada posisi yang sama, akan mempunyai kode Scan yang sama.
Kode Scan ini biasanya tidak berguna bagi kita. Kita biasanya hanya
menggunakan kode ASCII dan Extended yang merupakan hasil
terjemahan dari kode scan oleh keyboard handler.
Kode ASCII adalah kode yang melambangkan suatu karakter baik
berupa huruf,angka, maupun simbol-simbol grafik. Misalkan angka "1"
akan dilambangkan dengan kode ASCII 49. Untuk kode ASCII ini bisa
anda lihat pada lampiran.

APA ITU KODE EXTENDED ?


Kode ASCII telah menyediakan sebanyak 256 karakter dengan
beberapa karakter kontrol, misalnya #10 untuk pindah baris dan #13 untuk
Enter yang akan menggerakkan kursor kesamping kiri. Tetapi fungsi yang
telah disediakan ini tidak mampu untuk menampilkan ataupun mendeteksi
tombol fungsi misalnya F1, F2, F3 dan Home. Tombol kombisasi juga
tidak dapat dideteksi oleh karakter ASCII , misalnya penekan tombol shif
disertai tombol F1, penekanan Ctrl disertai tombol Home, dan lain-lain.
Penekanan terhadap tombol-tombol fungsi dan tombol kombinasi
akan menghasilkan kode ASCII 0<nil>. Karena alasan diatas maka
diciptakanlah suatu kode yang dinamakan sebagai kode EXTENDED.
Kode Extended ini dapat mendeteksi penekanan terhadap tombol-tombol
fungsi maupun tombol kombinasi.
MASUKAN SATU KARAKTER
Interupsi dari BIOS, yaitu interupsi 16h servis 0 dapat digunakan
untuk mendapatkan masukan satu karakter dari keyboard.
Hasil dari pembacaan karakter fungsi ini akan diletakkan pada register
AX. Bila terjadi penekanan pada tombol biasa maka byte rendah dari
AX<AL>, akan menunjukkan kode ASCII dari tombol tersebut dan byte
tnggi dari AX<AH> akan berisi kode Scan dari tombol tersebut.
8
Bila yang ditekan adalah tombol khusus(extended) yang akan
menghasilkan kode ASCII 0 maka byte rendah dari register AX<AL> akan
menghasilkan kode ASCII 0 dan byte tinggi dari AX<AH> akan akan
berisi kode extended dari tombol tersebut.

Program Menunggu masukan satu karakter dari Keyboard

Bila anda menekan tombol extended, seperti penekanan tombol anak


panah, F1, F2 dan sebagainya maka pada layar akan ditampilkan :

Ini adalah tombol Extended


Bila anda ingin mengetahui lebih lanjut mengenai tombol apa yang
ditekan maka kode extendednya bisa dilihat pada register AH. Sedangkan
bila yang ditekan adalah tombol biasa, seperti huruf 'S' maka pada layar
akan ditampilkan:
Ini adalah tombol ASCII : S
Program akan selesai jika anda menekan tombol "q" atau "Q".
9
MENDETEKSI PENEKANAN SEMBARANG TOMBOL
Dengan fungsi 11h dari interupsi 16h, kita bisa mendeteksi
terhadap penekanan tombol,sama halnya seperti yang dilakukan oleh
fungsi keypressed pada bahasa pascal. Fungsi ini akan mendeteksi
keyboard buffer, bila pada keyboard buffer terdapat suatu tombol maka ia
akan membuat zerro flags menjadi nol<0> dan register AL berisi kode
ASCII dari karakter tersebut sedangkan register AH akan berisi
kode Scan dari tombol tersebut. Sebaliknya jika pada keyboard buffer
tidak ada karakter maka zerro flags akan bernilai satu <1>.
Keyboard buffer adalah suatu penampung yang digunakan untuk
menampung setiap penekanan tombol pada keybaord. Daya tampung
normal dari keyboard buffer adalah 15 karakter. Jika keyboard buffer telah
penuh, speaker akan mengeluarkan tanda berupa suara beep.
Bila program 15.2. dijalankan, maka pada layar akan ditampilkan tulisan:
Tekan sembarang tombol untuk berhenti !
Tulisan ini akan ditampilkan terus sampai anda menekan sembarang
tombol.

E. PROGRAM
code_seg segment
assume cs : code_seg
ORG 100h
Start : JMP Mulai
kata1 db 'Selamat Anda bisa mneggunakan komputer ini',13,10,'$'
kata2 db 'Silakan masukkan kata kunci sekarang !',13,10,'$'
Mulai : mov ah,09h
mov dx,offset kata2
int 21h
Masuk : mov ah,07h
int 21h
cmp al,'t'
je Lewat1
cmp al,'T'
10
jne Masuk
Lewat1 : mov ah,07h
int 21h
cmp al,'a'
je Lewat1
cmp al,'A'
jne Masuk
Lewat2 : mov ah,07h
int 21h
cmp al,'s'
je Lewat1
cmp al,'S'
jne Masuk
Lewat3 : mov ah,07h
int 21h
cmp al,'m'
je Lewat1
cmp al,'M'
jne Masuk
Lewat4 : mov ah,07h
int 21h
cmp al,'i'
je Lewat1
cmp al,'I'
jne Masuk
Lewat5 : mov ah,09h
mov dx,offset kata1
int 21h
int 20h

code_seg ends
End Start

F. OUTPUT PROGRAM
11
G. ALGORITMA PROGRAM

H. FLOWCHART PROGRAM

I. ANALISIS PRAKTIKUM

J. KESIMPULAN

DAFTAR PUSTAKA

Zarkasi, Ahmad, S.T. 2009-2010. Modul Praktikum Bahasa Rakitan Sistem


Komputer. Palembang : UNSRI
Stallings, William. Edisi Keenam. Organisasi dan Arsitektur Komputer.
Bandung : Informatika
Sto. 2001. Pemrograman Bahasa Assembly. Jakarta : Elex Media Komputindo
Yudho Suprapto, Bhakti, M.T. 2009. Slide “Pengantar Bahasa Rakitan dan
Konversi Bilangan”. Palembang : UNSRI
Yudho Suprapto, Bhakti, M.T. 2009. Slide “Manipulasi Bit dan Logika”.
Palembang : UNSRI
Irvine, Klip. 2008. Bab 9 “Kumpulan Instruksi”. Bandung : Informatika

12

Anda mungkin juga menyukai