Anda di halaman 1dari 24

LAPORAN PRAKTIKUM BAHASA ASSEMBLY

MENCETAK KARAKTER

DISUSUN
OLEH:

NAMA : ISNANI
NIM : 1957301025
KELAS : TI 1.C
DOSEN PEMBIMBING : AZHARI, S.T,. M.T.

PROGRAM STUDI D4 TEKNIK INFROMATIKA


JURUSAN TEKNOLOGI INFORMASI DAN KOMPUTER
POLITEKNIK NEGERI LHOKSEUMAWE
2020
LEMBAR PENGESAHAN

Nomor Praktikum : 04/TIK/TI/MHK/1C/2020


Judul Praktikum : Mencetak Huruf dan Kalimat
Nama : Isnani
Nim : 1957301010
Kelas : TI 1.C
Jurusan : Teknologi Informasi dan Komputer
Progran Studi : Teknik Informatika
Tanggal Praktikum : 01 April 2020
Tanggal Penyerahan : 08 April 2020
Nilai :

Bukit Rata, 08 April 2020


Dosen Pembimbing

Azhari, S.T,. M.T.


NIP 19640830 199003 1 005
PRAKTIKUM 4
MENCETAK HURUF DAN KALIMAT

TUJUAN
1. Mahasiswa mampu melakukan pemrograman assembly menggunakan Turbo Assembler
2. Mahasiswa mampu membuat program assembly untuk mencetak huruf , kalimat, dan
angka

DASAR TEORI
Proses pencetakan huruf, kalimat, atau angka pada bahasa assembly secara umum
memanfaatkan interupsi dos. Untuk mencetak sebuah kalimat maka dipergunakan INT 21h
dengan kode servis 9 dengan ketentuan sebagai berikut :
1. Register AH diisi dengan 09h
2. Register DS:DX diisi dengan alamat kalimat yang akan dicetak
3. Jalankan INT 21h
Untuk metode ini , maka secara default karakter $ akan dijadikan tanda akhir kalimat
yang akan dicetak.
Dalam implementasinya, akan sering dijumpai karakter kontrol. Karakter kontrol
merupakan karakter yang khusus untuk melaksanakan fungsi tertentu. Macamnya sebagai
berikut :
Tabel 1. Tabel Karakter Kontrol ASCII

Kode ASCII Nama Fungsi


7 Bel Memberikan suara beep
8 Backspace Memindahkan kursor 1 kolom ke belakang
9 Horizontal tab Memindah kursor 8 kolom ke kanan
10 Line feed Memindah kursor 1 kolom ke bawah
13 Carriage return Memindahkan kursor ke ke awal baris

Selain karakter kontrol tersebut, juga ada karakter kontrol lainnya, yang dipergunakan untuk
komunikasi komputer dengan periferalnya, antara lain :
Tabel 2. Tabel Karakter Kontrol ASCII Lengkap
Kode ASCII Nama
0 Null
1 Start of heading
2 Start of text
3 End of text
4 End of transmission
5 Enquiry
6 Acknowledge
7 Bel
8 Backspace
9 Horizontal tab
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 (NACK)
19 Synchronous idle
20 End of transmission block
21 Cancel
22 End of medium
23 Substitute
24 Escape
25 File separator
26 Group separator
27 Record separator
28 Unit separator
29 Spasi
30 Delete

Mencetak kalimat juga bisa menggunakan atribut seperti pada pencetakan huruf.
Interupsi yang dipergunakan yaitu INT 10h dengan langkah sebagai berikut :
1. Register AX diisi dengan 1300h
2. Register BL diisi dengan atribut yang diinginkan
3. Register BH diisi dengan halaman tampilan
4. Register DL diisi dengan posisi X kalimat akan ditampilkan
5. Register DH diisi dengan posisi Y kalimat akan ditampilkan
6. Register CX diisi dengan panjang kalimat yang akan ditampilkan
7. Register ES:BP diisi alamat kalimat yang akan dicetak
8. Jalankan INT 10h

Pengaturan atribut yang diinginkan dapat dilihat seperti pada tabel berikut :
Tabel 3. Atribut Kalimat

Warna dasar Warna tulisan


Bit
7 6 5 4 3 2 1 0
ke
BL R G B I R G B
Nama
(Blink) (Red) (Green) (Blue) (Intensitas) (Red) (Green) (Blue)

Mencetak angka untuk bahasa assembly tidak semudah pada bahasa tingkat tinggi.
Hal ini dikarenakan tidak ada fungsi khusus yang dapat digunakan. Misal ingin cetak angka 2,
maka kita harus mencari nilai kode ASCII-nya yaitu 32h baru bisa dicetak ke layar. Cara yang
sering digunakan adalah dengan melakukan pembagian bertingkat dengan 10. Pembagian
memanfaatkan register AX dan BX, untuk selanjutnya hasil pembagian disimpan ke stack
pointer. Setelah pembagian selesai maka data di stack pointer dikonversi ke ASCII dan
ditampilkan ke layar.

DAFTAR ALAT DAN BAHAN


1. Komputer Pribadi
2. Perangkat Lunak Turbo Assembler dan DEBUG

KESELAMATAN KERJA
1. Praktikum hanya dapat dilakukan atas petunjuk dosen pengasuh atau instruktur.
2. Pastikan semua peralatan dalam keadaan baik sebelum dan sesudah melakukan
praktikum serta menjaga semua peralatan yang digunakan.
3. Perlu mematuhi semua peraturan yang berlaku dalam laboratorium yang digunakan

PROSEDUR PERCOBAAN
1. Mencetak kalimat
Tuliskan program berikut ini pada text editor dan simpan sebagai file kal00.asm pada folder
yang sama dengan tasm.exe.

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Program : kal00.asm ;
; Fungsi : Mencetak kalimat ;
; dengan Int 21 servis 9 ;
;=====================================;
.Model Small
.Code
ORG 100h

Kalimat :
JMP Proses
Kal0 db 'PROSES PENCETAKAN STRING ',13,10,'$'
Kal1 db 'DIBELAKANG TANDA $ TIDAK BISA DICETAK '

Proses:
MOV AH,09h ; Servis ke 9
MOV DX,OFFSET Kal0; Ambil Alamat Offset Kal0
INT 21h ; Cetak perkarakter sampai tanda $
LEA DX,Kal0 ; Ambil Alamat Offset Kal0
INT 21h ; Cetak perkarakter sampai tanda $
LEA DX,Kal0+7 ; Ambil Alamat Offset KAl0+7
INT 21h ; Cetak perkarakter sampai tanda $
LEA DX,KAL1 ; Ambil Offset kal1
INT 21h ; Cetak perkarakter sampai ketemu $
INT 20h ; Selesai, kembali ke DOS
End Kalimat

a. Buka command prompt dos.


b. Compile program menggunakan tasm dengan perintah berikut :
tasm kal00
c. Lingking file kal00.obj menggunakan tlink dengan mengetikkan perintah berikut :
tlink/t kal00
d. Jalankan file kal00.com dan amati yang terjadi pada layar Anda.
e. Ubah nilai Kal0 dan Kal1 sesuai dengan keinginan Anda dan lihat hasilnya

2. Mencetak kalimat dengan atribut


a. Tulis source code program berikut ini pada text editor lalu compile ,linking, dan jalankan
hasilnya serta amati hasilnya dengan seksama.
;=============================================
; Program : kal01.asm ;
; Fungsi : Mencetak kalimat disertai atribut ;
;=============================================;
.Model Small
.Code
ORG 100h

Kalimat :
JMP Proses
Kal0 db ' Menulis kalimat dengan Atributnya '
Proses:
MOV AX,1300h ; Servis 13h subfungsi 00
MOV BL,10010101b ; Atribut tulisan
MOV BH,00 ; Halaman tampilan 0
MOV DL,20 ; Posisi X
MOV DH,12 ; Posisi Y
MOV CX,35 ; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
INT 20h ; Selesai, kembali ke DOS
End Kalimat

b. Ubah nilai BL menjadi : 65, 128, 180, 200, 255, 0 dan amati yang terjadi
c. Ubah nilai DL dan DH lalu amati apa yang terjadi pada tulisan di layar Anda

BORANG DATA
Jalankan instruksi berikut ini, jelaskan maksud dari instruksi tersebut, sebutkan mode
pengalamatannya dan lihat isi register atau memori

No Perc. Program (Source Code) Hasil (Output)

1
2

TUGAS DAN PERTANYAAN


1. Analisa hasil dari eksekusi program diatas, berikan maksud dari setiap baris program
yang diberikan, tinjau perubahan dari register-register yang diakibatkan oleh instruksi
program, demikian juga isi memori jika dipakai untuk menyimpan data.

2. Dari hasil percobaan yang dilakukan, buat kesimpulan dari masing-masing percobaan
di atas.
HASIL PERCOBAAN
1. Mencetak kalimat
Coding :

Hasil :

Analisis:
• .Model Small : Tanda directive ini digunakan untuk memberitahukan kepada
assembler bentuk memory yang digunakan oleh program kurang dari ukuran 1 segment
atau 64 KB.
• .Code : Tanda directive ini digunakan untuk memberitahukan kepada assembler
bahwa kita akan mulai menggunakan Code Segment-nya.
• ORG 100h : Perintah ini digunakan untuk memberitahukan assembler supaya
program pada saat dijalankan(diload ke memory) ditaruh mulai pada offset ke 100h(256)
byte.
• Kalimat : Pemberian label dengan nama Kalimat.
• JMP Proses : Perintah JUMP yang membuat program langsung lompat
mengeksekusi pernyataan yang ada di label Proses.
• Kal0 db : Mendefinisikan sebanyak 25 bytes untuk variabel Kal0 dengan
kalimat yang akan dicetak.
• Kal1 db : Mendefinisikan sebanyak 36 bytes untuk variabel Kal1 dengan
kalimat yang akan dicetak.
• Proses : Pemberian label dengan nama Proses.
• MOV AH, 09h : Service untuk mencetak kalimat atau string.
• MOV DX, OFFSET Kal0 : Mengisi register DX dengan alamat offset dari variabel
Kal0 yang akan dicetak.
• INT 21h: Mencetak perkarakter yang ada di register DX sampai tanda $.
• LEA DX, Kal0 : Mengisi register DX dengan alamat offset dari variabel Kal0 yang
akan dicetak.
• INT 21h: Mencetak perkarakter yang ada di register DX sampai tanda $.
• LEA DX, Kal0+7 : Mengisi register DX dengan alamat offset dari variabel Kal0+7
yang akan dicetak.
• INT 21h: Mencetak perkarakter yang ada di register DX sampai tanda $.
• LEA DX, Kal1 : Mengisi register DX dengan alamat offset dari variabel Kal1 yang
akan dicetak.
• INT 21h: Mencetak perkarakter yang ada di register DX sampai tanda $.
• INT 20h: Menandai akhir dari suatu program dan kembali ke DOS.
• End Proses : Menandai sebagai akhir pernyataan dalam label Proses.
Coding :

Hasil :

Analisis : Saat pendefinisian untuk variabel “KAL0” kita menambahkan tanda 13 dan 10.
Kedua tanda ini merupakan karakter kontrol untuk pindah baris(tanda 10) dan menuju
kolom 0(tanda 13). Pada akhir dari setiap kalimat yang ingin dicetak harus kita
tambahkan dengan karakter “$”. Karakter ini akan dipakai sebagai tanda akhir dari
kalimat.Karena karakter “$” dijadikan sebagai tanda akhir dari kalimat yang ingin dicetak,
maka pada proses pencetakan karakter yang kedua hanya kalimat tidak tercetak keluar,
karena terletak dibelakang tanda “$”.Dengan demikian, bila kita ingin mencetak kalimat
yang mengandung tanda”$”, harus digunakan fungsi yang lain, misalnya mencetak
kalimat dengan perkarakter melalui interupsi 21h.

Kesimpulan :

2. Mencetak kalimat dengan atribut


Coding : 10010101b

Hasil :
Analisis :


Mengisi register BL dengan nilai 10010101b atau 95h dengan fungsi
untuk mengatur atribut tulisan, yaitu : warna tulisan biru kombinasi
merah warna gelap dengan warna dasar biru blink/kelap kelip.
Coding : 65

Hasil :

Analisis :

Jika 65 diubah ke biner menjadi 0100 0001, yang berarti warna tulisan biru
gelap, dengan warna dasar merah tidak kelip-kelip.
Coding : 128

Hasil :

Analisis :

Jika 128 diubah ke biner menjadi 1000 0000, yang berarti warna tulisan hitam
gelap, dengan warna dasar hitam kelip-kelip.
Coding : 180

Hasil :

Analisis :

Jika 180 diubah ke biner menjadi 1011 0100, yang berarti warna tulisan merah
gelap, dengan warna dasar merah + hijau kelip-kelip.
Coding : 200

Hasil :

Analisis :

Jika 200 diubah ke biner menjadi 1100 1000, yang berarti warna tulisan hitam
gelap, dengan warna dasar merah kelip-kelip.
Coding : 255

Hasil :

Analisis :


Jika 255 diubah ke biner menjadi 1111 1111, yang berarti warna tulisan
kombinasi merah+hijau+biru terang, dengan warna dasar kombinasi
merah+hijau+biru kelip-kelip.
Coding : 0

Hasil :

Analisis :

Jika 0 diubah ke biner menjadi 0000 0000, yang berarti warna tulisan hitam
gelap, dengan warna dasar hitam tidak kelip-kelip.
Coding : dl 65

Hasil :

Analisis :
Posisi tulisannya berubah kekanan di kolom 65
Coding : dl 120

Hasil :

Analisis :
Posisi tulisannya berubah kekanan di kolom 120
Coding : dh 12

Hasil :

Analisis :
Posisi tulisannya berubah ke kiri di baris 12
Coding : dh 20

Hasil :
Analisis:
Posisi tulisannya berubah ke kiri di baris 20

Kesimpulan :
MOV BL, ... fungsi untuk mengatur atribut tulisan, yaitu : warna tulisan
MOV DL, ... berfungsi mengisi register DL dengan nilai 20 yang berfungsi sebagai
koordinat (X) meletakkan karakter awal yang akan dicetak di kolom ke 20.
MOV DH, ... berfungsi mengisi register DH dengan nilai 12 yang berfungsi sebagai
koordinat (Y) meletakkan karakter awal yang akan dicetak di baris ke 12.

Anda mungkin juga menyukai