Anda di halaman 1dari 4

1

PRAKTIKUM MIKROPROSESOR DAN BAHASA RAKITAN


MENCETAK HURUF, KALIMAT, DAN ANGKA

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

DASAR TEORI
Interupsi merupakan inti dari sebuah program assembly. Interupsi memungkinkan sebuah
program assembly untuk meminta komputer melakukan proses sesuai dengan nilai
register yang dipergunakan sebagai dasar interupsinya. INT 21h merupakan interupsi
DOS service yang bersifat general atau umum. Tipe interupsi ini jika dipanggil oleh
sebuah baris pada program assembly maka komputer akan mengecek data pada register
AH. Misal jika AH = 2 maka komputer akan mencetak karakter sesuai dengan kode
ASCII pada register DL. Maka untuk mencetak sebuah huruf langkah yang harus
dilakukan sebagai berikut :
1. Mengisi register AH dengan 2
2. Mengisikan kode ASCII yang akan dicetak ke register DL
3. Menjalankan interupsi 21h
Mencetak huruf dengan atribut misal warna yang berbeda dapat dilakukan dengan
interupsi 10h. Untuk melakukannya, maka langkah-langkahnya sebagai berikut :
1. Mengisi register AH dengan 9
2. Mengisi register AL dengan kode ASCII yang akan dicetak
3. Mengisi register BH dengan nomor halamannya(isi dengan 0 untuk halaman ke-1)
4. Mengisi register BL dengan warna yang diinginkan
5. Mengisi register CX dengan banyaknya karakter yang akan dicetak
6. Melakukan interupsi 10h
Untuk mencetak beberapa karakter maka harus digunakan perulangan. Perulangan dalam
bahasa assembly menggunakan register CX sebagai counter atau pencacah perulangannya.
2
Instruksi yang dipergunakan yaitu LOOP. Setiap ditemui LOOP maka register CX secara
otomatis akan dikurangi nilainya dengan 1 sampai dengan CX bernilai 0.

PROSEDUR PERCOBAAN
1. Mencetak huruf
Tuliskan program berikut ini pada text editor dan simpan sebagai file cetak.asm pada
folder yang sama dengan tasm.exe.
;==========================================
; titel : mencetak huruf
; program : cetak_huruf.asm
; deskripsi :
; mencetak huruf dengan assembly
; - AH = 2
; - DL = kode ASCII yang akan dicetak
; - run INT 21h
;==========================================

.Model Small
.Code
org 100h

cetak:
MOV AH,2 ; nilai servis utk cetak huruf
MOV DL,'A' ; karakter yg dicetak
INT 21h ; tampilkan karakter
INT 20h ; finish, kembali ke dos

End cetak

a. Buka command prompt dos.
b. Compile program menggunakan tasm dengan perintah berikut :
tasm cetak
c. Lingking file coba.obj menggunakan tlink dengan mengetikkan perintah berikut :
tlink/t cetak
d. Jalankan file cetak.com dan amati yang terjadi pada layar Anda.
e. Ubah nilai DL menjadi a,1,0,!,#, 38, 67 dan amati yang terjadi

2. Mencetak huruf dengan atribut
a. Tulis source code program berikut ini pada text editor lalu compile ,linking, dan
jalankan hasilnya serta amati hasilnya dengan seksama.
;==========================================
3
; titel : mencetak huruf dengan atribut
; program : cetak_huruf_attr.asm
; deskripsi :
; mencetak huruf dengan atribut
; - AH = 09h
; - AL = Kode ASCII dari karakter yang akan dicetak
; - BH = Nomor halaman(0 untuk halaman 1)
; - BL = Atribut atau warna dari karakter yang akan dicetak
; - CX = Banyaknya karakter tersebut akan dicetak
;==========================================

.Model Small
.Code
org 100h

cetak:
MOV AH,09h ; Nilai servis untuk mencetak karakter
MOV AL,'A' ; AL = Karakter yang akan dicetak
MOV BH,00h ; Nomor Halaman layar
MOV BL,93h ; Warna atau atribut dari karakter
MOV CX,03h ; Banyaknya karakter yang ingin dicetak
INT 10h ; Laksanakan !!!
INT 20h ; Selesai ! kembali ke DOS

End cetak

b. Ubah nilai BL menjadi : 65, 128, 180, 200, 255, 0 dan amati yang terjadi


3. Mencetak beberapa karakter
a. Tulis source code program berikut ini pada text editor lalu compile ,linking, dan
jalankan hasilnya serta amati hasilnya dengan seksama.
;==========================================
; titel : mencetak bbrp karakter
; program : cetak_ul_kar.asm
; deskripsi :
; mencetak beberapa karakter dengan loop
; - CX = loop counter
;==========================================

.Model Small
.Code
org 100h

cetak:
MOV AH,02h ; Nilai servis
MOV DL,'A' ; DL=karakter 'A' atau DL=41h
MOV CX,10h ; Banyaknya pengulangan yang akan
Ulang :
INT 21h ; Cetak karakter !!
INC DL ; Tambah DL dengan 1
LOOP Ulang ; Lompat ke Ulang
INT 20h ; Selesai ! kembali ke DOS

4
End cetak

b. Ubah nilai DL ke 32, 50, 75 dan amati apa yang terjadi

Anda mungkin juga menyukai