• Tidak ada hasil yang ditemukan

DEPARTEMEN PENDIDI KAN NASIONAL POLITEKNI

N/A
N/A
Protected

Academic year: 2018

Membagikan "DEPARTEMEN PENDIDI KAN NASIONAL POLITEKNI"

Copied!
14
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM

OPERASI PORT

DISUSUN OLEH

Nama : Muhammad Iqbal

NIM : 1557301091

Kelas : TI 1.1

Jurusan/Prodi : Teknologi Informasi & Komputer / T. Informatika

Dosen Pembimbing : Azhar, S.T, M.T

DEPARTEMEN PENDIDIKAN NASIONAL

POLITEKNIK NEGERI LHOKSEUMAWE

(2)

TUJUAN

1. Mahasiswa memahami dan mengerti tentang berbagai operasi pengambil keputusan dalam bahasa mesin

DASAR TEORI

Sama seperti pada pemrograman level tinggi, maka pemrograman bahasa mesin juga mengenal perintah-perintah untuk penentuan keputusan. Fungsi ini dilakukan menggunakan instruksi jump (JMP) dan compare (CMP). Jump (JMP) merupakan perintah untuk mengarahkan eksekusi suatu program ke suatu alamat tertentu. Instruksi ini bisa membutuhkan suatu syarat maupun tidak tergantung dari kebutuhan programnya. Sintaknya sebagai berikut :

JMP Tujuan

Perintah JMP yang menggunakan syarat pada umumnya menggunakan instruksi bit dan logika maupun instruksi pembandingan sebagai awal dari lompatannya. Contohnya TEST atau CMP yang diikuti dengan JNZ, JNE, ataupun instruksi lompat bersyarat lainnya.

Perintah perbandingan dengan CMP akan membandingkan 2 buah operan dengan sintak sebagai berikut :

CMP Operan1, Operan2

Operasinya yaitu operasi pengurangan antara Operan1 dan Operan2. Sama seperti TEST, maka instruksi ini hanya akan mengubah flag regsteer saja, bukan operan-operannya. Adapun flag yang bisa berubah antara lain :

Flag Kondisi

OF = 1 Operan1 < Operan2 untuk operasi bilangan bertanda SF = 1 Operan1 < Operan2 untuk operasi bilangan bertanda ZF = 1 Operan1 = Operan2

CF = 1 Operan1 < Operan2 untuk operasi bilangan tak bertanda

Instruksi CMP biasanya akan diikuti dengan instruksi lompat bersyarat dengan kondisi berbeda-beda sesuai tabel berikut ini:

Instruksi Kondisi

JA ( Jump If Above ) Operan1 > Operan2 ( bilangan tak bertanda ) JG ( Jump If Greater ) Operan1 > Operan2 ( bilangan bertanda ) JE ( Jump If Equal ) Operan1 = Operan2

JNE ( Jump If Not Equal ) Operan1 <> Operan2

JB ( Jump if below ) Operan1 < Operan2 ( bilangan tak bertanda ) JL ( Jump if less ) Operan1 < Operan2 ( bilangan bertanda ) JBE ( Jump if below or equal ) Operan1 <= Operan2 ( bilangan tak

bertanda )

JLE ( Jump if less or equal ) Operan1 <= Operan2 ( bilangan bertanda ) JAE ( Jump if above or equal ) Operan1 >= Operan2 ( bilangan tak

bertanda )

(3)

Sedangkan untuk instruksi yang termasuk dalam lompat bersyarat di mana jarak tujuan harus dalam jangkauan -128 sampai dengan +127 byte dari tempat melompatnya, selain instruksi pada tabel sebelumnya, juga terdapat instruksi lainnya seperti dapat dilihat pada tabel berikut :

Instruksi Kondisi

Operan1 < Operan2 dengan CX =1

JNB ( Jump if not below ) Operan1 > Operan2 dengan CF = 0 JNBE ( Jump if not below nor

equal )

Operan1 > Operan2 dengan CF atau ZF = 0

JNC ( Jump if no carry ) CF = 0

JNG ( Jump if not greater ) Operan1 < Operan2 dengan ZF = 1 atau SF <> OF

JNGE ( Jump if not greater nor equal )

Operan1 <= Operan2 dengan SF <> OF

JNL ( Jump if not less ) Operan1 >= Operan2 dengan SF = OF JNLE ( Jump if not equal nor

less )

Operan1 > Operan2 dengan ZF = 0 dan SF = OF

JNO ( Jump if no overfow ) OF = 0

JNP ( Jump if not parity ) Hasil operasi ganjil JNS ( Jump if no sign ) SF = 0

JNZ ( Jump if not zero ) Hasil operasi <> 0 JO ( Jump on overfow ) OF = 1

JP ( Jump on parity ) Hasil operasi genap JPE ( Jump on parity even ) PF = 1

JPO ( Jump if parity odd ) PF = 0 JS ( Jump on sign ) SF = 1

JZ ( Jump on zero ) Hasil operasi = 0

Stack merupakan bagian dari memori yang dipergunakan untuk penyimpanan data sementara. Instruksinya meliputi PUSH, POP, PUSF, POPF. Pada program satu segmen maka akan digunakan pasangan register SS:SP sebagai penunjuk lokasi stack. Stack akan melakukan penyimpanan suatu data dan pengeluaran kembali datanya dengan sistem LIFO (Last In First Out). Untuk memasukkan data ke stack maka dipergunakan PUSH, dan untuk mengeluarkan lagi datanya dipergunakan POP. Urutan PUSH dan POP harus mengikuti sistem LIFO. PUSHF dan

(4)

PROSEDUR PERCOBAAN

(5)

Lompat bersyarat

1. Tuliskan program attembly berikut menggunakan TASM , lalu lsngksng menjadi COM :

Kal db ' Lucky Luck menembak ',13,10 db 'Lebih cepat dari bayangannya !! ',7,7,'*' Proses:

2. Jalankan programnya dan amati yang terjadi. Ubah JE Exit dengan instruksi lompat lain yang dapat menghasilkan output yang sama.

(6)

Kal db 'LANG LING LUNG $'

3. Jalankan programnya dan amati yang terjadi. Mengapa program ini disebut menggunakan stack software?

(7)

LANGKAH DAN HASIL PERCOBAAN

1. Jalankan notepad, ketikkan program percobaan pertama pada aplikasi notepad seperti pada gambar dibawah ini :

2. Simpan fle dengan format name : (nama fle).asm , save type as : all fles, contoh : tugas.asm

3. Jalankan Dosbox, ketikkan “mount d: d:\tasm2 (enter)”, lalu ketikkan “d: (enter)” 4. Ketikkan “tasm tugas.asm(enter)” pada Dosbox untuk mendapatkan fle .obj, cek

(8)

5. Linking fle dengan mengetikkan “tlink/t tugas.obj(enter)” pada Dosbox untuk mendapatkan fle “tugas.com”

6. Jalankan program dengan mengetikkan perintah “tugas.com (enter)” pada Dosbox.

(9)

8. Ubahlah nilai BilA sama dengan BilB. Ikuti kembali langkah – langkah diatas dan jalankan program kembali dengan perintah “tugas.com(enter)” seperti gambar di bawah ini:

ANALISA TData:

JMP Proses BilA db 67 BilB db 66

( masukkan nilai 67 dalam BilA dan nilai 66 dalam BilB )

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

(10)

CMP AL,BilB

( lakukan perbandingan isi dari Register AL dengan ofset BilB )

JB AKecil

( jika isi Register AL lebih kecil dari isi nilai ofset BilB, maka program akan langsung menuju ke label Akecil )

JE Sama

(jika isi Register AL sama dengan isi nilai ofset BilB, maka program akan langsung menuju ke label Sama )

JA ABesar

(jika isi Register AL lebih besar dari isi nilai ofset BilB, maka program akan langsung menuju ke label ABesar )

Akecil:

LEA DX,Kal0 JMP Cetak

( ambil isi ofset kal0 dan salin ke register DX, lalu langsung menuju ke label Cetak )

Sama:

LEA DX,Kal1 JMP Cetak

( ambil isi ofset kal1 dan salin ke register DX, lalu langsung menuju ke label Cetak )

ABesar:

LEA DX,Kal2

(ambil isi ofset kal2 dan salin ke register DX )

Cetak:

MOV AH,09 INT 21h

( interup 21h dan servis AH, 09 adalah interup untuk mencetak kalimat )

EXIT:

INT 20h End Tdata

(11)

Untuk membuat program melakukan lompatan ke label sama, maka saat melakukan perbandingan nilai ofset BilA dan BilB haruslah sama besarnya.

Untuk membuat program melakukan lompatan ke label AKecil, maka maka saat melakukan perbandingan nilai ofset BilA harus lebih kecil dari nilai ofset BilB.

Jalankan notepad, ketikkan program percobaan kedua pada aplikasi notepad seperti pada gambar dibawah ini :

Simpan fle dengan format name : (nama fle).asm , save type as : all fles, contoh : tugas.asm

Jalankan Dosbox, ketikkan “mount d: d:\tasm2 (enter)”, lalu ketikkan “d: (enter)”

(12)

Linking fle dengan mengetikkan “tlink/t tugas.obj(enter)” pada Dosbox untuk

mendapatkan fle “tugas.com”

Jalankan program dengan mengetikkan perintah “tugas.com (enter)” pada Dosbox.

ANALISA :

(13)

Simpan fle dengan format name : (nama fle).asm , save type as : all fles, contoh : tugas.asm

Jalankan Dosbox, ketikkan “mount d: d:\tasm2 (enter)”, lalu ketikkan “d: (enter)”

Ketikkan “tasm tugas.asm(enter)” pada Dosbox untuk mendapatkan fle .obj, cek pada keluaran program, jika tidak terdapat error dan warning maka hasil tasm akan memunculkan fle “tugas.obj”

(14)

Referensi

Dokumen terkait

(3) Ketua dan Sekretaris Program Pendidikan Vokasi diangkat dan diberhentikan oleh Rektor untuk masa jabatan 4 (empat) tahun dengan ketentuan tidak boleh lebih dari 2

 Instruksi memerlukan data yang di simpan dalam register  Register lebih cepat dari memory, tetapi jumlahnya terbatas  Komputer menggunakan clock untuk mensinkronkan

Output harus terdiri dari tepat T baris, di mana tiap baris berisi satu angka, yaitu bilangan bulat s terbesar yang menghasilkan luas kaca berwarna tidak lebih

Kamu telah mempelajari faktor prima dari suatu bilangan di kelas V. Apakah kamu masih ingat? Misalnya, kita akan mencari faktor prima dari 78. Kita akan mencoba menyelesaikannya

I bilangan cacah 0 sampai dengan 20 kata kunci peta konsep ™ bilangan loncat ™ lebih sedikit ™ sama banyak bilangan cacah 0 sampai dengan 20 penyebutan banyak benda 1 sampai

Sekarang cobalah untuk mengisi titik-titik di bawah ini dengan bilangan loncat yang tepat.. Latihan Terbimbing

Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan

Pada saat sebuah bintang masif meledak menjadi sebuah supernova, maka bintang tersebut akan bertambah terang dalam waktu yang singkat dengan luminositasnya 40 milyar kali lebih