Anda di halaman 1dari 13

LAPORAN PRAKTIKUM

ORGANISASI KOMPUTER & BAHASA ASSEMBLY


MENCETAK KARAKTER

Kelas : INF B Praktikum 1


Nama : Michael Julyus C. M.
NIM : J3C113038

PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA


DIREKTORAT PROGRAM DIPLOMA
INSTITUT PERTANIAN BOGOR
BOGOR
2014

DAFTAR ISI
I.

Tujuan ....................................................................................................................................... 3

II.

Teori Penunjang ....................................................................................................................... 3

III.

Tugas Pendahuluan.................................................................................................................. 4

IV.

Listing Program ....................................................................................................................... 4

V.

Analisa Program ...................................................................................................................... 7

VI.

Kesimpulan ............................................................................................................................... 8

VII.

Tugas ......................................................................................................................................... 8

DAFTAR PUSTAKA .......................................................................................................................... 12


LAMPIRAN......................................................................................................................................... 13

I.

Tujuan

Setelah menyelesaikan praktik ini mahasiswa dapat :


1.
Memahami dan mengetahui struktur bahasa Assembly.
2.
Mampu membuat program yang dapat mencetak karakter dengan warna atau
atribut tertentu sebagai outputnya.

II.

Teori Penunjang

Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange).
Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine
dependent. Bahasa assembly berbeda dengan bahasa mesin. Dia memiliki karakteristik yang
membedakannya dengan bahasa mesin, yaitu:
1) Dalam penggunaan numeric operation code (opcodes) bahasa assembly menggantinya
dengan mnemonic code.
2) Memberikan kemudahan penulisannya dibandingkan dengan bahasa mesin.
3) Mendukung pelacakkan kesalahan penulisan operation code.
4) Bahasa assembly memberikan kemudahan dalam memodifikasi program karena
menggunakan opperand sebagai penamaan simbol yang biasa diasosiasikan sebagai
data atau instruksi.
5) Data yang dinyatakan bahasa assembly adalah dalam notasi desimal. Hal ini
dilakukan untuk mencegah konversi secara manual dari konstanta ke dalam
representasi internal mesin.
Bahasa assembly mempunyai perintah dasar, salah satunya MOV. MOV adalah
perintah untuk mengisi, memindahkan, memperbaharui isi suatu register, variabel ataupun
suatu lokasi memori. 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.
Bahasa assembly juga mempunyai suatu layanan interrupt. Interupt merupakan sebuah
prosedur terprogram mesin yang siap dipanggil untuk dieksekusi. Interupt ini berkaitan
dengan fungsi dasar operasi komputer, misalnya menulis karakter, menset kursor, mambaca
karakter dan lain-lain. Interupt dipanggil dengan menuliskan nomor interuptnya, dan
penulisan dalam bahasa ini tidak case sensitive, sehingga penulisan huruf balok atau kecil
sama saja.
Pencetakan sebuah karakter pada bahasa assembly dilakukan berdasarkan kode ASCII).
Artinya, jika ingin mencetak sebuah huruf, maka pengkodean yang ditulis pada MOV AL
adalah kode huruf tersebut dalam kode ASCII atau dapat juga dengan menuliskan karakter
tersebut ditengah tanda kutip ( )

III.

Tugas Pendahuluan

Membuat program yang dapat mencetak karakter nama dengan atribut warna sebagai
outputnya.
Untuk dapat memberi warna atau atribut pada karakter:
MOV BL, (byte atribut)
Karena atribut atau warna menggunakan 1 byte memory yang menandakan warna tulisan dan
warna dasar dari karakter yang akan dicetak. Byte atribut ini digunakan dengan masingmasing bitnya, dimana setiap bit mencatat warnanya masing-masing.

IV.

Listing Program

Berikut ini adalah Listing Program dari program yang telah dibuat.
==================================================================
[LINE]

LOC: MACHINE CODE

SOURCE

==================================================================
[ 1]

.MODEL SMALL

[ 2]

.CODE

[ 3]

ORG 100h

[ 4]

[ 5]

0100:

Proses:

[ 6]

0100: B4 09

MOV AH, 09h

[ 7]

0102: B0 4D

MOV AL, 'M'

[ 8]

0104: B7 00

MOV BH, 00h

[ 9]

0106: B3 1C

MOV BL, 00011100b

[ 10]

0108: B9 01 00

MOV CX, 1d

[ 11]

010B: CD 10

INT 10h

[ 12]

010D: B4 09

MOV AH, 09h

[ 13]

010F: B0 69

MOV AL, 'i'

[ 14]

0111: B7 00

MOV BH, 00h

[ 15]

0113: B3 1C

MOV BL, 00011100b

[ 16]

0115: B9 01 00

MOV CX, 1d

[ 17]

0118: CD 10

INT 10h

[ 18]

011A: B4 09

MOV AH, 09h

[ 19]

011C: B0 63

MOV AL, 'c'

[ 20]

011E: B7 00

MOV BH, 00h

[ 21]

0120: B3 1C

MOV BL, 00011100b

[ 22]

0122: B9 01 00

MOV CX, 1d
4

[ 23]

0125: CD 10

INT 10h

[ 24]

0127: B4 09

MOV AH, 09h

[ 25]

0129: B0 68

MOV AL, 'h'

[ 26]

012B: B7 00

MOV BH, 00h

[ 27]

012D: B3 1C

MOV BL, 00011100b

[ 28]

012F: B9 01 00

MOV CX, 1d

[ 29]

0132: CD 10

INT 10h

[ 30]

0134: B4 09

MOV AH, 09h

[ 31]

0136: B0 61

MOV AL, 'a'

[ 32]

0138: B7 00

MOV BH, 00h

[ 33]

013A: B3 1C

MOV BL, 00011100b

[ 34]

013C: B9 01 00

MOV CX, 1d

[ 35]

013F: CD 10

INT 10h

[ 36]

0141: B4 09

MOV AH, 09h

[ 37]

0143: B0 65

MOV AL, 'e'

[ 38]

0145: B7 00

MOV BH, 00h

[ 39]

0147: B3 1C

MOV BL, 00011100b

[ 40]

0149: B9 01 00

MOV CX, 1d

[ 41]

014C: CD 10

INT 10h

[ 42]

014E: B4 09

MOV AH, 09h

[ 43]

0150: B0 6C

MOV AL, 'l'

[ 44]

0152: B7 00

MOV BH, 00h

[ 45]

0154: B3 1C

MOV BL, 00011100b

[ 46]

0156: B9 01 00

MOV CX, 1d

[ 47]

0159: CD 10

INT 10h

[ 48]

015B: B4 09

MOV AH, 09h

[ 49]

015D: B0 20

MOV AL, 20h

[ 50]

015F: B7 00

MOV BH, 00h

[ 51]

0161: B3 1C

MOV BL, 00011100b

[ 52]

0163: B9 01 00

MOV CX, 1d

[ 53]

0166: CD 10

INT 10h

[ 54]

0168: B4 09

MOV AH, 09h

[ 55]

016A: B0 4A

MOV AL, 'J'

[ 56]

016C: B7 00

MOV BH, 00h

[ 57]

016E: B3 1C

MOV BL, 00011100b


5

[ 58]

0170: B9 01 00

MOV CX, 1d

[ 59]

0173: CD 10

INT 10h

[ 60]

0175: B4 09

MOV AH, 09h

[ 61]

0177: B0 2E

MOV AL, 2Eh

[ 62]

0179: B7 00

MOV BH, 00h

[ 63]

017B: B3 1C

MOV BL, 00011100b

[ 64]

017D: B9 01 00

MOV CX, 1d

[ 65]

0180: CD 10

INT 10h

[ 66]

0182: B4 09

MOV AH, 09h

[ 67]

0184: B0 43

MOV AL, 'C'

[ 68]

0186: B7 00

MOV BH, 00h

[ 69]

0188: B3 1C

MOV BL, 00011100b

[ 70]

018A: B9 01 00

MOV CX, 1d

[ 71]

018D: CD 10

INT 10h

[ 72]

018F: B4 09

MOV AH, 09h

[ 73]

0191: B0 2E

MOV AL, 2Eh

[ 74]

0193: B7 00

MOV BH, 00h

[ 75]

0195: B3 1C

MOV BL, 00011100b

[ 76]

0197: B9 01 00

MOV CX, 1d

[ 77]

019A: CD 10

INT 10h

[ 78]

019C: CD 10

INT 10h

[ 79]

019E: B4 09

MOV AH, 09h

[ 80]

01A0: B0 4D

MOV AL, 'M'

[ 81]

01A2: B7 00

MOV BH, 00h

[ 82]

01A4: B3 1C

MOV BL, 00011100b

[ 83]

01A6: B9 01 00

MOV CX, 1d

[ 84]

01A9: CD 10

INT 10h

[ 85]

01AB: B0 2E

MOV AL, 2Eh

[ 86]

01AD: B7 00

MOV BH, 00h

[ 87]

01AF: B3 1C

MOV BL, 00011100b

[ 88]

01B1: B9 01 00

MOV CX, 1d

[ 89]

01B4: CD 10

INT 10h

[ 90]

01B6: CD 20

INT 20h

[ 91]

END

Proses

V.

Analisa Program

Keterangan syntax:

.MODEL SMALL = Bagian ini digunakan untuk memberitahukan kepada komputer


tentang memory yang akan digunakan oleh program kita.
.CODE = Bagian ini digunakan untuk memberitahukan kepada komputer bahwa pada
bagian ini kita meletakan code segmentnya yang berisi program dan nantinya akan
dijalankan.
ORG 100h = Bagian ini akan digunakan sebagai pemberitahuan agar program saat
dijalankan atau diload ke dalam memory ditaruh mulai offset ke 100h (256) byte
Proses : = Bagian ini menjadi identitas dari kumpulan perintah inti.
INT 20h = Bagian ini digunakan untuk menghentikan program, kembali ke DOS.
END = Proses selesai.

1. Menampilkan huruf M
Untuk menampilkan huruf M, dapat mengetikkan script berikut.
MOV
MOV
MOV
MOV
MOV
INT

AH,
AL,
BH,
BL,
CX,
10h

09h
'M'
00h
00011100b
1d

MOV AH, 09h merupakan nilai servis untuk mencetak karakter dan atribut pada posisi
kursor, atau dengan kata lain mengisi register AH dengan data 09.
MOV AL, M merupakan register AL yang diisi karakter yang akan dicetak, yaitu mencetak
huruf "M".
MOV BH, 00h merupakan nomor halaman layar
MOV BL, 00011100b untuk memberikan warna merah dan warna dasar putih pada karakter.
MOV CX, 1d merupakan register CX yang diisi angka sebagai banyaknya karakter yang
akan dicetak. Huruf h di sini menandakan desimal.
INT 10h merupakan perintah untuk mencetak karakter pada register AL, yaitu huruf M.
2. Menampilkan spasi
MOV
MOV
MOV
MOV
MOV
INT

AH,
AL,
BH,
BL,
CX,
10h

09h
20h
00h
00011100b
1d

MOV AH, 09h merupakan nilai servis untuk mencetak karakter dan atribut pada posisi
kursor, atau dengan kata lain mengisi register AH dengan data 09.
MOV AL, 20h merupakan register AL yang diisi kode ASCII karakter yang akan dicetak,
yaitu mencetak karakter spasi. Sehingga kode ASCIInya bernilai 20. Huruf h di sini
menandakan heksa.
MOV BH, 00h merupakan nomor halaman layar.
MOV BL, 00011100b dilakukan untuk memberikan warna merah dan warna dasar putih
pada karakter. Karena atribut atau warna menggunakan 1 byte memory yang menandakan
7

warna tulisan dan warna dasar dari karakter yang akan dicetak. Byte atribut ini digunakan
dengan masing-masing bitnya, dimana setiap bit mencatat warnanya masing-masing.
MOV CX, 1d merupakan register CX yang diisi angka sebagai banyaknya karakter yang
akan dicetak. Huruf h di sini menandakan desimal.
INT 10h merupakan perintah untuk mencetak karakter pada register AL, yaitu spasi.
3. Menampilkan karakter titik (.)
MOV
MOV
MOV
MOV
MOV
INT

AH,
AL,
BH,
BL,
CX,
10h

09h
2Eh
00h
00011100b
1d

MOV AH, 09h merupakan nilai servis untuk mencetak karakter dan atribut pada posisi
kursor, atau dengan kata lain mengisi register AH dengan data 09.
MOV AL, 2Eh merupakan register AL yang diisi kode ASCII karakter yang akan dicetak,
yaitu mencetak karakter titik. Sehingga kode ASCIInya bernilai 2E. Huruf h di sini
menandakan heksa.
MOV BH, 00h merupakan nomor halaman layar.
MOV BL, 00011100b dilakukan untuk memberikan warna merah dan warna dasar putih
pada karakter.
MOV CX, 1d merupakan register CX yang diisi angka sebagai banyaknya karakter yang
akan dicetak. Huruf h di sini menandakan desimal.
INT 10h merupakan perintah untuk mencetak karakter pada register AL, yaitu spasi.

VI.

Kesimpulan

Dalam bahasa assembly, ada beberapa jenis instruksi, seperti MOV yang digunakan sebagai
instruksi pemindahan data, INT 10h untuk mencetak karakter pada register AL, dan INT 20H
digunakan untuk mengakhiri program.

VII.

Tugas

Membuat program dengan menggunakan bahasa Assembly, yaitu:


1. Membuat program untuk mengurutkan huruf dari Z-A dan beri warna merah dengan
layar warna putih.
2. Membuat program yang dapat mencetak nama diri sendiri dengan atribut atau warna
Yang diinginkan.
Keterangan syntax:
.SMALL = Tanda directive ini digunakan untuk memberitahukan kepada assembler
bentuk memory yang digunakan oleh program kita.
.CODE = Tanda directive ini digunakan untuk memberitahukan kepada assembler
bahwa kita akan mulai menggunakan Code Segment-nya di sini.
ORG 100h = Perintah ini digunakan untuk memberitahukan assembler supaya
program pada saat dijalankan (diload ke memory) ditaruh mulai pada offset ke 100h
(256) byte.
Proses : = Bagian ini menjadi identitas dari kumpulan perintah inti.
INT 20h = Bagian ini digunakan untuk menghentikan program, kembali ke DOS.
8

END = Proses selesai.


Penyelesaian nomor 1:
.MODEL SMALL
.CODE
ORG 100h
Proses:
MOV AH,
MOV AL,
MOV BL,
MOV CX,

09h
'A'
11111100b
26

Ulang:
INT 10h
INC AL
LOOP Ulang
INT 20h
END Proses
Penjelasan:

Proses:
MOV AH, 09h merupakan nilai servis untuk mencetak karakter dan atribut pada posisi
kursor, atau dengan kata lain mengisi register AH dengan data 09.
MOV AL, A merupakan register AL yang diisi karakter yang akan dicetak, yaitu mencetak
huruf "A".
MOV BH, 00h merupakan nomor halaman layar.
MOV BL, 11111100b untuk memberikan warna merah dan warna dasar putih pada karakter.
MOV CX, 26 merupakan register CX yang diisi angka sebagai banyaknya karakter yang
akan dicetak.

Ulang:
INT 10h merupakan perintah untuk mencetak karakter pada register AL.
INC AL merupakan perintah untuk menambahkan karakter pada register AL dengan 1.
LOOP Ulang merupakan perintah untuk lompat ke Ulang.
Penyelesaian nomor 2:
.MODEL SMALL
.CODE
ORG 100h
Proses:
MOV AH,
MOV AL,
MOV BL,
MOV CX,
INT 10h
MOV AL,

09h
'M'
11101100b
1
'i'
9

MOV BL, 11101100b


MOV CX, 1
INT 10h
MOV
MOV
MOV
INT

AL, 'c'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 'h'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 'a'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 'e'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 'l'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 20h
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 'J'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 2Eh
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 'C'
BL, 11101100b
CX, 1
10h

MOV AL, 2Eh


MOV BL, 11101100b
10

MOV CX, 1
INT 10h
MOV
MOV
MOV
INT

AL, 'M'
BL, 11101100b
CX, 1
10h

MOV
MOV
MOV
INT

AL, 2Eh
BL, 11101100b
CX, 1
10h

INT 20h
END
Proses
Penjelasan:
MOV AL, M merupakan register AL yang diisi karakter yang akan dicetak, yaitu mencetak
huruf "M".
MOV BH, 00h merupakan nomor halaman layar.
MOV BL, 11111100b untuk memberikan warna merah dan warna dasar kuning pada
karakter.
MOV CX, 1 merupakan register CX yang diisi angka sebagai banyaknya karakter yang akan
dicetak.
INT 10h merupakan perintah untuk mencetak karakter pada register AL, yaitu huruf M.

11

DAFTAR PUSTAKA
Suheri, Asep. 2012. Modul Praktikum Organisasi Komputer& Bahasa Assembly. Bogor
(ID): Program Diploma Institut Pertanian Bogor.
http://www.academia.edu/4873496/Assemblious_Tutorial_Assembly_x86_dengan_FASM,
[diakses 04 Oktober 2014 pukul 19:00 WIB]
http://www.academia.edu/4776898/Laporan_Pemogram_Assembly_1, [diakses 04 Oktober
2014 pukul 19:30 WIB]

12

LAMPIRAN
1. Huruf M

2. Karakter spasi

3. Karakter titik (.)

4. Huruf Z-A

13