• Tidak ada hasil yang ditemukan

LAPORAN PRAKTIKUM ASSEMBLY Membuat Karak

N/A
N/A
Protected

Academic year: 2018

Membagikan "LAPORAN PRAKTIKUM ASSEMBLY Membuat Karak"

Copied!
24
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM ASSEMBLY

“Membuat Karakter Game“

Disusun oleh : Meyla Yan Sari

3.34.13.1.10 IK-2B

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRO

(2)

JOBSHEET 1

Membuat Kaarakter Game

I. Tujuan Intruksional Khusus

Mahasiswa mengerti dan memahami konsep dasar arsitektur sistem komputer dan mampu melakukan pemrograman dalam bahasa assembly.

II. Dasar Teori A. Pengertian

Bahasa Assembly adalah bahasa yang memudahkan pemahaman bagian computer yang paling rendah, mendekati mesin. Bahasa assembly sebaiknya dipelajari secara kontektual sehingga interaksi perangkat keras dan perangkat lunak computer mungkin lebih mudah dipahami. Bahasa assembly adalah bahasa pemrograman dengan korespondensi satu-satu antara perintah-perintah/pertanyaannya dan bahasa mesin computer. Bahasa assembly tidak satu jenis sebagaimana CPU computer yang bermacam-macam. Setiap bahasa assembly secara langsung dipengaruhi oleh set intruksi mesin computer dan arsitektur perangkat keras.

Misalnya, bahasa assembly IBM-PC adalah bahasa assembly yang mengacu pada instruksi-instruksi yang dikenali oleh keluarga mikroprosesor intel 8086-80486.

Assembler adalah program yang mengonversi kode program sumber ke dalam bahasa mesin. Terdapat dua assembler yang dikenal baik untuk IBM-PC , yaitu MASM (Microsoft Assembler) dan TASM (Turbo Assembler). Bahasa assembly disebut bahasa level-bawah karena dalam struktur dan fungsi dekat dengan bahasa mesin. Sebaliknya, bahasa tingkat tinggi seperti Pascal, Basic, Fortran, dan Cobol mempunyai perintah-perintah yang andal yang diterjemahkan ke dalam berbagai instruksi mesin oleh compiler.

B. Kelebihan

 Hasil program memiliki tingkat kecepatan yang tinggi

 Ukuran dari program lebih kecil

(3)

C. Pengertian segment dan offset

Segment dan offset merupakan angka 16 bit (dipresentasikan dalam bahasa hexa) yang menunjukan suatu alamat tertentu di memory komputer. Pasangan segment : offset ini disebut juga alamat relatif. Selain alamat relatif, terdapat juga alamat mutlak berupa angka 20 bit (juga dipresentasikan dalam bil hexa). Alamat mutlak ini dapat dihitung dengan mengalihkan segment dengan 10 hexa dan ditambahkan dengan offset.

D. Interrupt

Interrupt merupakan permintaan kepada microprocessor untuk melakukan suatu perintah. Ketika terjadi permintaan interupsi, microprocessor akan mengeksekusi interrupt handler, yaitu suatu program yang melayani interupsi. Setiap interrupt handler itu memiliki alamat masing-masing yang disimpan dalam bentuk array yang masing-masing terdiri dari 4 byte. Array ini disebut vektor interupsi.

E. Bagian – bagian dari rogram assembler yaitu:

1. Label

Label merupakan suatu simbol yang didefinisikan sendiri oleh pembuat program untuk menandai lokasi memori pada area program. Simbol dan label adalah dua hal yang berbeda. Simbol tidak menggunakan titik dua, sedangkan label harus diakhiri dengan titik dua.

Contoh :

PAR EQU 500 ; “PAR” Menunjukan suatu symbol ; dari nilai 500

MULAI :

MOV A, #0FFh ; pada label; “Mulai” nilai 0FFh ; dipindahkan ke Akumulator

Dalam satu baris hanya ada satu label, pada umumnya Assembler membatasi jumlah karakter yang bisa digunakan hingga 31 karakter.

2. Mnenonik

(4)

3. Operand

Operand ditulis setelah mnemonic, bisa berupa alamat atau data yang digunakan instruksi yang bersangkutan.

Komentar harus diawali dengan titik koma. Sub rutin dari bagian besar program yang mengerjakan suatu operasi biasanya diawali dengan blok komentar yang menjelaskan fungsi sub rutin atau bagian besar program tersebut.

5. End

Petunjuk END merupakan kode perintah terakhir yang menunjukan batas akhir dari proses Assembly.Penulisan perintah:

MOV [operand A],[operand B]

Dengan ketentuan operand A merupakan register, variabel, lokasi memori dan ketentuan isi operand B berupa register, variabel, lokasi memori ataupun bilangan.

Operand B merupakan bilangan asal yang akan diisikan ke operand A, dengan kata lain operand A merupakan tujuan pengisian atau penduplikatan dari operand B.

Contoh:

MOV AH, AL

Operand A dari perintah diatas adalah register AH Operand B dari perintah diatas adalah register AL

Hal yang dilakukan dari perintah diatas adalah menduplikatkan isi register AL ke register AH

MOV AH,02

Operand A dari perintah diatas adalah register AH Operand B dari perintah diatas adalah bilangan 02

Hal yang dilakukan dari perintah diatas adalah memasukkan 02 ke register AH

III. Alat dan Bahan

(5)

2. PC Processor minimal pentium IV

IV. Langkah Kerja

1. Hidupkan komputer

2. Buka emulator 8086 yang telah dinstal pada laptop anda 3. Setelah terbuka, klik new untuk lembar kerja baru

4. Akan muncul form seperti berikut, klik COM Template > OK

(6)

6. Mulai ketikan code berikut untuk membuat karakter ‘A’ > klik emulate

(7)
(8)

9. Untuk mengetahui RAM saat proses setelah emulate, klik view > memory

10. Setelah muncul form, tuliskan B800:0000 pada text box > klik update. Sehingga muncul seperti berikut.

V. Analisis

org 100h JMP Mulai:

;add your code here mulai:

MOV AX,0B800H MOV DS,AX MOV AL,’A’ MOV AH,0FH MOV BX,0 MOV [BX],AX Ret

(9)

0B800H adalah merupakan alamat fisik, dimana karakter A itu akan ditempatkan dalam layar. Kita bisa mengaturnya sesuai yang kita inginkan.

 Jenis intruksi yang digunakan adalah MOV. Jenis intruksi ini digunakan untuk mengopy nilai atau angka menuju suatu register, variabel atau memori.

 Alamat yang digunakan adalah : a. Register AX

b. Register DS c. Register AL d. Register AH e. Register BX

 Penjelasan program

o Org 100h berfungsi sebagai pemberitahu bahwa pada saat program dijalankan diletakkan mulai pada offset ke 100h.

o MOV AX,0B800H berfungsi menampilkan karakter pada layar.

o MOV AL ,’A’ maksudnya adalah kita meletakkan karakter “A” pada regidter AL

MOV AX,0B800H

Operand A dari perintah diatas adalah register AX Operand B dari perintah diatas adalah bilangan 0B800H

Hal yang dilakukan dari perintah diatas adalah memasukkan 0B800H ke register AX

MOV DS, AX

Operand A dari perintah diatas adalah register DS Operand B dari perintah diatas adalah register AX

Hal yang dilakukan dari perintah diatas adalah menduplikatkan isi register AX ke register DS

0FH adalah warna dari karakter yang kita tampilkan, kita bisa mengubahnya sesuai yang kita inginkan.

VI. Tugas

(10)

org 100h JMP mulai: mulai:

MOV AX,0B800H MOV DS,AX MOV BX,10*80

MOV AL,017 MOV AH,02H MOV [BX],AX

MOV BX,12*80 MOV [BX],AX

MOV AX,0B800H MOV DS,AX MOV BX,10*80+4

MOV AL,016 MOV AH,02H MOV [BX],AX

MOV BX,12*80+4 MOV [BX],AX

(11)

MOV DS,AX MOV BX,8*80+2

MOV AL,030 MOV AH,02H MOV [BX],AX

MOV AX,0B800H MOV DS,AX MOV BX,10*80+2

MOV AL,095 MOV AH,02H MOV [BX],AX Ret

- MOV AH,03H merupakan nilai servis untuk mencetak karater atau dengan kata lain mengisi register AH dengan data 03.

- MOV AL,0.95 merupakan register AL yang diisi kode ASCII karakter yang akan dicetak yaitu mencetak karakter garis.

- MOV BX,10*80 merupakan kode yang digunakan untuk mengarahkan peletakan karakter segitiga.

- MOV [BX],AX menyimpan nilai AX pada tempat di memori yang ditunjuk oleh BX.

Hasil dari kode program di atas adalah sebagai berikut.

Klik emulate > run

(12)

org 100h JMP mulai:

; add your code here mulai:

MOV AX,0B800H MOV DS,AX MOV BX,0

MOV AL,177 MOV AH,03H MOV [BX],AX

MOV BX,4 MOV [BX],AX

MOV BX,4*80 MOV [BX],AX

MOV BX,4*80+4 MOV [BX],AX

(13)

MOV [BX],AX

MOV BX,2*80+4 MOV [BX],AX

MOV BX,2*80+2 MOV [BX],AX ret

- MOV AH,03H merupakan nilai servis untuk mencetak karater atau dengan kata lain mengisi register AH dengan data 03.

- MOV AL,177 merupakan register AL yang diisi kode ASCII karakter yang akan dicetak yaitu mencetak karakter kotak dengan ketebalan sedang.

- MOV BX,2*80+4 merupakan kode yang digunakan untuk mengarahkan peletakan karakter kotak.

- MOV [BX],AX menyimpan nilai AX pada tempat di memori yang ditunjuk oleh BX.

Hasil dari kode program di atas adalah sebagai berikut.

(14)

3. Karakter hantu

org 100h JMP mulai: ; add your code here mulai:

MOV AX,0B800H MOV DS,AX MOV BX,4

MOV AL,177 MOV AH,03H MOV [BX],AX

MOV BX,2*80+2 MOV [BX],AX

MOV BX,2*80+4 MOV [BX],AX

(15)
(16)
(17)
(18)

MOV [BX],AX

- MOV AH,03H merupakan nilai servis untuk mencetak karater atau dengan kata lain mengisi register AH dengan data 03.

- MOV AL,177 merupakan register AL yang diisi kode ASCII karakter yang akan dicetak yaitu mencetak karakter kotak dengan ketebalan sedang.

- MOV BX,2*80+4 merupakan kode yang digunakan untuk mengarahkan peletakan karakter kotak.

- MOV [BX],AX menyimpan nilai AX pada tempat di memori yang ditunjuk oleh BX.

(19)

Klik emulate > run

4. Karakter pacman

org 100h JMP Mulai: Mulai:

(20)
(21)

MOV BX,4*80+26 MOV [BX],AX MOV BX,2*80+28 MOV [BX],AX MOV BX,4*80+28 MOV [BX],AX Ret

- MOV AH,02H merupakan nilai servis untuk mencetak karater atau dengan kata lain mengisi register AH dengan data 02.

- MOV AL,177 merupakan register AL yang diisi kode ASCII karakter yang akan dicetak yaitu mencetak karakter kotak dengan ketebalan sedang.

- MOV BX,2*80+4 merupakan kode yang digunakan untuk mengarahkan peletakan karakter kotak.

- MOV [BX],AX menyimpan nilai AX pada tempat di memori yang ditunjuk oleh BX.

Hasil dari kode program di atas adalah sebagai berikut.

(22)

5. Assembly art

org 100h JMP Mulai:

; add your code here mulai:

(23)
(24)

- MOV AH,02H merupakan nilai servis untuk mencetak karater atau dengan kata lain mengisi register AH dengan data 02.

- MOV AL,177 merupakan register AL yang diisi kode ASCII karakter yang akan dicetak yaitu mencetak karakter kotak dengan ketebalan sedang.

- MOV BX,2*80 merupakan kode yang digunakan untuk mengarahkan peletakan karakter kotak.

- MOV [BX],AX menyimpan nilai AX pada tempat di memori yang ditunjuk oleh BX.

Hasil dari kode program di atas adalah sebagai berikut.

Klik emulate > run

VII. Kesimpulan

Bahasa Assembly adalah bahasa yang memudahkan pemahaman bagian computer yang paling rendah, mendekati mesin. Bahasa assembly sebaiknya dipelajari secara kontektual sehingga interaksi perangkat keras dan perangkat lunak computer mungkin lebih mudah dipahami.

Bahasa assembly adalah bahasa pemrograman dengan korespondensi satu-satu antara perintah-perintah/pertanyaannya dan bahasa mesin computer.

Referensi

Dokumen terkait