Anda di halaman 1dari 16

I Pendahuluan

Dengan interupsi 21h service 02h memungkinkan untuk mencetak sebuah


karakter dengan bahasa assembly. Untuk bisa mencetak kalimat dengan karakter yang
panjang dapat menggunakan prinsip string. Untuk menggunakan prinsip string
digunakan interupsi 21h dengan nilai service 09h.
Pesan atau string yang dimasukan ke program disimpan pada register DX sebagai
penampung variable. Pesan yang tersimpan harus diakhiri dengan tanda $ (dollar).
Karakter $ dipakai untuk mengakhiri sebuah kalimat. Dibelakang tanda $ kalimat
tidak akan dicetak.
Karakter kontrol digunakan untuk keperluan komunikasi komputer dengan
periferalnya. Karakter kontrol yang sering digunakan adalah :

CODE NAMA FUNGSI

07 Bel Memberikan suara BEEP Ka


rakter 08 Backspace (BS) Memindahkan kursor 1 kolom ke
kontrol belakang
ASCII 09 Horizontal Tab Memindahkan kursor 8 kolom ke
secara kanan
10 Line Feed (LF) Memindahkan kurosr 1 baris ke
bawah
13 Carriage Return (CR) Memindahkan kursor menuju awal
Tabel 1 Karakter Kontrol yang sering digunakan
baris

lengkap seperti berikut:

CODE NAMA

00 Nul
01 Start of heading
02 Start of text
03 End of text
04 End of transmission
05 Enquiry
06 Acknowledge
07 Bel
08 Backspace
09 Horizontal tabulation
10 Line feed
11 Vertical tabulation
12 Form feed
13 Carriage return
14 Shift out
15 Shift in
16 Data link escape
17 Device control
18 Negative acknowledge
19 Synchronous table
Tabel 2 karakter kontrol

Jika ingin mencetak string beserta atribut bisa digunakan interupsi 10h dengan
nilai service 1300h. Nilai service diisikan ke register AX. Atribut atau warna diisikan
ke register BL dalam bentuk kode biner atau hexadecimal. String yang akan dicetak
disimpan pada register BP sebagai penampung variabel.
Jika ingin mencetak pesan dengan atribut digunakan int 10h dengan nilai
service 1300h dengan aturan:
Input
AX = 1300h
BH = nomor halaman
BL = atribut warna
DH = posisi sumbu x pesan akan dicetak
DL = posisi sumbu y pesan akan dicetak
CX = panjang kalimat (dalam karakter)

II Tujuan Percobaan
1 Membuat tabel dengan bahasa assembly

III Listing Program


1 Program Membuat Tabel
.model small
.code
org 100h

tabel:
jmp proses
kal0 db
218,'-----',194,'---------------',194,'--------',194,'-
-------',194,'-------------',194,'----------------',191
,13,10,'$'
kal db '| No. | NPM | Nama | Nilai |
Nilai UAS | Total(UTS+UAS)|',13,10,'$'
kal1 db '| | | | UTS |
| |',13,10,'$'
kal2 db
195,'-----',197,'---------------',197,'--------',197,'-
-------',197,'-------------',197,'----------------',180
,13,10,'$'
kal3 db '| 1. | J3D116 | Dimas | 90 |
60 | 150 |',13,10,'$'
kal4 db '036',13,10,'$'
kal5 db 13,10,'| 2. | J3D116 | Theo | 60
| 50 | 110 |',13,10,'$'
kal6 db '137',13,10,'$'
kal7 db 13,10,'| 3. | J3D116 | Arman | 50
| 60 | 110 |',13,10,'$'
kal8 db '016',13,10,'$'
kal9 db 13,10,'| 4. | J3D116 | Nadiah| 70
| 70 | 140 |',13,10,'$'
kal10 db '104',13,10,'$'
kal11 db 13,10,'| 5. | J3D116 | Wina | 60
| 70 | 130 |',13,10,'$'
kal12 db '144',13,10,'$'
kal13 db
13,10,192,'-----',193,'---------------',193,'--------',
193,'--------',193,'-------------',193,'---------------
-',217,13,10,'$'
proses:
mov ah,09h
lea dx,kal0
int 21h
lea dx,kal
int 21h mov ax,1300h
lea dx,kal1 mov dl,16
int 21h mov dh,6
lea dx,kal2 lea bp,kal8
int 21h int 10h
lea dx,kal3 mov ah,09h
int 21h lea dx,kal9
mov ax,1300h int 21h
mov bl,00000100b mov ax,1300h
mov bh,00h mov dl,16
mov dl,16 mov dh,7
mov dh,4 lea bp,kal10
mov cx,3 int 10h
lea bp,kal4 mov ah,09h
int 10h lea dx,kal11
mov ah,09h int 21h
lea dx,kal5 mov ax,1300h
int 21h mov dl,16
mov ax,1300h mov dh,8
mov dl,16 lea bp,kal12
mov dh,5 int 10h
lea bp,kal6 mov ah,09h
int 10h lea dx,kal13
mov ah,09h int 21h
lea dx,kal7 int 20h
int 21h end tabel

IV Analisa Program

Gambar 1 analisis program


Pada program membuat tabel, terdapat perintah JUMP. Jmp proses berarti program
akan melompati ke label proses dan menjalankan instruksi yang ada pada bagian proses.
Selain perintah jmp, pada bagian ini juga terdapat perintah DB. DB atau Define Byte
merupakan tipe data yang digunakan untuk menampung nilai string data pada variabel
yang diinginkan. Cara menggunakan tipe data DB :

Nama_var DB ,isi_string,13,10,$.

Pada program diatas. DB digunakan ke variabel kal1 sampai kal13 yang masing-
masing variabel berisi nilai string data yang berbeda-beda. Pada setiap variabel selain
kalimat juga diisi beberapa karakter garis yang berfungsi untuk membentuk tabel. Pada
variabel kal4, kal6, kal8, kal10, dan kal12 berisi data NIM tiga digit terakhir. Data tiga
digit terakhir harus berwarna merah sehingga interupsi yang digunakan berbeda dengan
yang lain. Untuk itu digunakan interupsi 10h service 1300h untuk memberi warna pada
string dan mengontrol posisi dari string tersebut dengan mengatur nilai pada register DL
dan DX. Pada baris perintah ini kita juga dapat menambahkan karakter kontrol untuk
mengontrol kursor yang ingin string yang ingin ditampilkan. Karakter kontrol yang
digunakan adalah 13 dan 10. 13 adalah karakter kontrol untuk memindahkan kursor ke
awal baris dan 10 untuk memindahkan kusor satu baris kebawah. Pada program diatas
juga terdapar karakter $ (dollar) yang berfungsi sebagai akhir sebuah string. sehingga
karakter dibelakang $ tidak akan tercetak.

Gambar 2 Bagian proses

Pada bagian proses digunakan dua jenis interupsi yaitu int 21h service 09h dan int 10h
service 1300h. Int 21h digunakan untuk mencetak kalimat tanpa atribut warna. Pada
bagian perintah lea dx,kal0 memiliki fungsi untuk mengambil alamat offset dari variabel
kal0 untuk mencetak string yang yang berada pada variabel kal0. Fungsi int 21h untuk
mencetak string yang sudah diambil dan disimpan pada register DX. Int 10h digunakan
untuk mencetak string dan mengatur atribut warna dan posisi string akan dicetak. Pada
bagian mov bl,00000100b digunakan untuk mengisi nilai register bl dengan kode biner
warna merah untuk mewarnai string NIM 3 digit terakhir. Perintah mov dl, 16
digunakan untuk mengatur posisi string yang dicetak pada sumbu x=16 dan perintah
mov dh, 16 digunakan untuk mengatur posisis string yang dicetak pada sumbu y=4.
Perintah lea bp,kal4 berfungsi untuk mengambil alamat offset dari variable kal4 lalu
disimpan di register bp.

Instruksi pada bagian proses:


1. Nilai service 09h disimpan di register AH

Gambar 3 Register AX

2. Alamat offset dari variable kal0 diambil dan disimpan di register DX.

Gambar 4 Register DX

3. Program menjalankan int 21h untuk mencetak string pada alamat offset
yang disimpan pada register DX

Gambar 5 String kal0 tercetak

4. Alamat offset dari variable kal diambil dan disimpan di register DX.

Gambar 6 Register DX

5. Program menjalankan int 21h untuk mencetak string pada alamat offset
yang disimpan pada register DX

Gambar 7 String kal tercetak


6. Alamat offset dari variable kal1 diambil dan disimpan di register DX.

Gambar 8 Register DX

7. Program menjalankan int 21h untuk mencetak string pada alamat offset
yang disimpan pada register DX

Gambar 9 String kal1 tercetak

8. Alamat offset dari variable kal2 diambil dan disimpan di register DX.

Gambar 10 Register DX

9. Program menjalankan int 21h untuk mencetak string pada alamat offset
yang disimpan pada register DX

Gambar 11 String kal2 tercetak

10. Alamat offset dari variable kal3 diambil dan disimpan di register DX.

Gambar 12 Register DX
11. Program menjalankan int 21h untuk mencetak string pada alamat offset yang
disimpan pada register DX

Gambar 13 String kal3 tercetak

12. Nilai register 1300h disimpan di register AX

Gambar 14 Register AX

13. Kode biner warna merah (04h) diisikan di register BL

Gambar 15 Pengisian kode warna

14. Nomor halaman (00h) diisikan ke register BH

Gambar 16 Pengisian nomor halaman

15. Posisi sumbu x=10h diisi ke register DL

Gambar 17 Posisi sumbu x

16. Posisi sumbu y=04h diisi ke register DH

Gambar 18 Posisi sumbu y


17. Jumlah karakter NIM 3 digit terakhir diisikan ke register CX. Fungsi register CX
disini hanya untuk mencetak keseluruhan karakter yang terdapat pada variabel
string bukan untuk proses loop

Gambar 19 Register CX

18. Alamat offset variabel kal4 diambil lalu disimpan di register BP

Gambar 20 Register BP

19. Program menjalankan int 10h untuk mencetak string beserta atribut warna dan
posisinya pada alamat offset yang disimpan pada register BP

Gambar 21 String tercetak

20. Nilai service 09h diisi ke register AH

Gambar 22 Register AH

21. Alamat offset dari variable kal5 diambil dan disimpan di register DX.

Gambar 23 Register DX
22. Program menjalankan int 21h untuk mencetak string pada alamat offset yang
disimpan pada register DX

Gambar 24 String tercetak

23. Nilai register 1300h disimpan di register AX

Gambar 25 Register AX

24. Posisi sumbu x=10h diisi ke register DL

Gambar 26 Sumbu x

25. Posisi sumbu y=05h diisi ke register DH

Gambar 27 Sumbu y

26. Alamat offset variabel kal6 diambil lalu disimpan di register BP

Gambar 28 Register BP

27. Program menjalankan int 10h untuk mencetak string beserta atribut warna dan
posisinya pada alamat offset yang disimpan pada register BP
Gambar 29 String tercetak

28. Nilai service 09h diisi ke register AH

Gambar 30 Register AH

29. Alamat offset dari variable kal7 diambil dan disimpan di register DX.

Gambar 31 Register DX

30. Program menjalankan int 21h untuk mencetak string pada alamat offset yang
disimpan pada register DX

Gambar 32 String tercetak

31. Nilai register 1300h disimpan di register AX

Gambar 33 Register AX

32. Posisi sumbu x=10h diisi ke register DL


Gambar 34 Sumbu x

33. Posisi sumbu y=06h diisi ke register DH

Gambar 35 Sumbu y

34. Alamat offset variabel kal8 diambil lalu disimpan di register BP

Gambar 36 Register BP

35. Program menjalankan int 10h untuk mencetak string beserta atribut warna dan
posisinya pada alamat offset yang disimpan pada register BP

Gambar 37 String tercetak

36. Nilai service 09h diisi ke register AH

Gambar 38 Register AH

37. Alamat offset dari variable kal9 diambil dan disimpan di register DX.

Gambar 39 Register DX
38. Program menjalankan int 21h untuk mencetak string pada alamat offset yang
disimpan pada register DX

Gambar 40 String tercetak

39. Nilai register 1300h disimpan di register AX

Gambar 41 Register AX

40. Posisi sumbu x=10h diisi ke register DL

Gambar 42 Sumbu x

41. Posisi sumbu y=07h diisi ke register DH

Gambar 43 Sumbu y

42. Alamat offset variabel kal10 diambil lalu disimpan di register BP

Gambar 44 Register BP

43. Program menjalankan int 10h untuk mencetak string beserta atribut warna dan
posisinya pada alamat offset yang disimpan pada register BP
Gambar 45 String tercetak

44. Nilai service 09h diisi ke register AH

Gambar 46 Register AH

45. Alamat offset dari variable kal11 diambil dan disimpan di register DX.

Gambar 47 Register DX

46. Program menjalankan int 21h untuk mencetak string pada alamat offset yang
disimpan pada register DX

Gambar 48 String tercetak

47. Nilai register 1300h disimpan di register AX

Gambar 49 Register AX

48. Posisi sumbu x=10h diisi ke register DL


Gambar 50 Sumbu x

49. Posisi sumbu y=08h diisi ke register DH

Gambar 51 Sumbu y

50. Alamat offset variabel kal12 diambil lalu disimpan di register BP

Gambar 52 Register BP

51. Program menjalankan int 10h untuk mencetak string beserta atribut warna dan
posisinya pada alamat offset yang disimpan pada register BP

Gambar 53 String tercetak

52. Nilai service 09h diisi ke register AH

Gambar 54 Register AH

53. Alamat offset dari variable kal13 diambil dan disimpan di register DX.
Gambar 55 Register DX

54. Program menjalankan int 21h untuk mencetak string pada alamat offset yang
disimpan pada register DX

Gambar 56 String tercetak

55. Proses int 20h untuk menghentikan program

Gambar 57 int 20h

V Kesimpulan
Dari percobaan kali ini dapat disimpulkan bahwa untuk membuat tabel dapat
digunakan interupsi 21h service 09h dan interupsi 10h service 1300h. Karakter garis
bisa disisipkan antara string yang dibuat pada variabel untuk membentuk tabel. Untuk
memberi warna pada NIM 3 digit terakhir dapat digunakan int 10h dengan memberi
kode warna pada register BL.

VI Daftar Pusaka
Novianty Inna. 2013. Modul Praktikum Arsitektur Komputer. Bogor. Program Diploma
Institut Pertanian Bogor.
Sto. 2001. Pemrograman Bahasa Assembly. Jakarta. ELEX MEDIA KOMPUTINDO.
Yudhanti Okti. 2010. Bahasa Rakitan. Jakarta. Sekolah Tinggi Manajemen Informatika
dan Komputer.
LAPORAN PRAKTIKUM
ORGANISASI KOMPUTER
MEMBUAT TABEL

Dimas Putra Pradana D


J3D116036
TEK B P2

PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA


PROGRAM DIPLOMA
INSTITUT PERTANIAN BOGOR
BOGOR
2015

Anda mungkin juga menyukai