Anda di halaman 1dari 7

MATAKULIAH : Praktik Mikroprosesor dan

UNIVERSITAS NEGERI Mikrokontroler

PADANG
JURUSAN : ELEKTRONIKA TOPIK : MENGGANTI HALAMAN LAYAR

SEMESTER : 5 ( LIMA ) PER.KE : 02 ( DUA )

PROGRAM : D3 NOMOR : 02/PMM/ELA-UNP/PDG/ VII/10


A. Tujuan :

1. Agar mahasiswa dapat menggunakan int 10h service 5h untuk mengganti


halaman layar monitor yang aktif.

2. Agar mahasiswa dapat menggunakan int 10h service bh untuk mengganti


backgroud layar monitor .

3. Agar mahasiswa dapat menggunakan int 10h service 0h untuk mengganti format
layar monitor .

4. Agar mahasiswa dapat menggunakan int 21h service 9h untuk menampilkan


teks kalimat (string) ke layar monitor.

5. Agar mahasiswa dapat menggunakan int 16h service 0h untuk menerima inputan
karakter dari keyboard.

6. Agar mahasiswa dapat menggabungkan program ganti halaman layar menjadi


satu program com saja

7. Agar mahasiswa dapat menerapkan perintah assembley CMP, JE, JNE dan JMP
untuk mengarahkan program.

8. Agar mahasiswa dapat meng-compiler program asm sehingga menjadi program


com dan mengeksekusi program ganti halaman layar secara terpadu

B. Teori Pendukung

Layar monitor mempunyai beberapa halaman layar. Jumlah halaman tergantung dari
jumlah memori kartu monitor dan format layar. Jika format layar adalah 80 x 25 hitam putih,
maka gambar layar itu akan menampilkan 80 x 25 = 2000 karakter. Satu karakter memakai 2 byte
memory, dimana 1 byte pertama untuk menyimpan kode ASCII dan satu byte yang lain untuk
menyimpan atribut dari karakter itu. Dengan demikian untuk menampilkan satu halaman layar
format 80 x 25 memakai memory kartu sebanyak 2 X 2000 byte= 4000 byte atau 4 KB. Kalau
memory kartu monitor 16 KB maka ada 4 halaman layar dan kalau memory kartu monitor 8 MB
maka jumlah halaman adalah 8 . 106 : 4.103 = 2000 halaman.

Ooleh Drs.Edidas, MT 385871075.doc Halaman 1 dari 7


Begitu juga kalau memakai monitor warna untuk menampilkan satu karakter
membutuhkan 4 byte memory. Satu byte untuk kode ASCII-nya dan tiga byte yang lain untuk
menyimpan kode warna R(red), G(green), B(blue). Jumlah memory yang dibutuhkan untuk satu
layar dapat dihitung sendiri .

Untuk mengamati halaman layar yang aktif dipakai int 10h layanan 5h. Prosedur ganti
halaman adalah dengan mengeset register AH  05h. dan register AL dengan nilai nomor halaman
yang diaktifkan .Nilai AL maksimum adalah FFh (255 desimal) sehingga jumlah halaman yang
dapat diaktifkan sebanyak 256 halaman layar.

Untuk memperingkas program ganti halaman layar namun dapat dipakai untuk
mengaktifkan halaman nomor tertentu maka program-program itu digabung dengan menggunakan
logika ‘pilih’ dengan cara menerima inputan keyboard lalu mengarahkan peogram dengan
statemen CMP, JMP, JE, JNE . Program-program ganti layar akan disatukan dengan satu program,
dengan ketentuan setiap nomor layar yang diinginkan akan di inputkan dari keyboard. Untuk
menerima inputan dari keyboard dapat memakai int 16h service 0h. Interup ini akan menunggu
samapai ada input karakter dari keyboard. Secara default kode ASCII karakter yang di inputkan
dari keyboard akan masuk ke register AL . Didalam program ganti halaman layar dapat dibuat
program filter dengan cara membandingkan isi AL dengan angka-angka nomor halaman layar
yang baku. Jika angka nomor halaman layar yang dimasukan benar, maka akan di teruskan ke
program ganti nomor halaman layar . Jika inputan tidak ada yang benar maka program akan
meminta inputan baru sampai cocok dengan ganti halaman layar yang telah ditetapkan. Untuk
membandingkan isi AL adalah sbb:

Ulang : mov Ah.01

Int 21h

cmp AL,0 ; apakah AL= 0 ?

Je hal0 ; jika sama teruskan, ke ganti halaman 0

Jne ulang ; jika tidak minta inputlagi

Hal0: Program ganti halaman ke 0 dst.

C. Listing Program : GTHAL.asm

ghal segment
assume cs:ghal
org 100h
start: jmp mulai
ket db,13,10,' MENGGANTI HALAMAM LAYAR YANG AKTIF',13,10,
db ,13,10,,13,10, 'Masukkan Nomor Halaman :',13,10,'$'

hal0 db,13,10,' ████████'


db,13,10,' ███'
db,13,10,' █████ INI ADALAH HALAMAN PERTAMA'
db,13,10,' ███'
db,13,10,' ████████','$'

hal1 db,13,10,' ███████'


db,13,10,' ███ ██'
db,13,10,' ███ ██ INI ADALAH HALAMAN KEDUA'

Ooleh Drs.Edidas, MT 385871075.doc Halaman 2 dari 7


db,13,10,' ███ ██'
db,13,10,' ███████','$'

HAL2 db,13,10,' ███'


db,13,10,' ███'
db,13,10,' ███ INI ADALAH HALAMAN KETIGA'
db,13,10,' ███'
db,13,10,' ███','$'

HAL3 db,13,10,' ███████'


db,13,10,' ███ ██'
db,13,10,' ███ ██ INI ADALAH HALAMAN KEEMPAT'
db,13,10,' ███ ██'
db,13,10,' ███████','$'

HAL4 db,13,10,' █████'


db,13,10,' ██ ██ '
db,13,10,' █████████ INI ADALAH HALAMAN KELIMA'
db,13,10,' ███ ███'
db,13,10,' ███ ███','$'

HAL5 db,13,10,' ████████'


db,13,10,' ███'
db,13,10,' ████████ INI ADALAH HALAMAN KEENAM'
db,13,10,' ███'
db,13,10,' ████████','$'

mulai : mov ah,06h ; menggulung layar


mov cx,000h ; koordinat kursor awal ch=0 dan cl=0
mov dh,24 ; baris kursor akhir dh=24
mov dl,80 ; kolom kursor akhir dl=80
mov bh,1 ; halaman layar = 1
mov al,0h ; hapus seluruhnya
int 10h ; jalan int 10h

mov ah,0 ; perintah format layar


mov al,6 ; format layar 6
int 10h ; format layar ke format diatas

mov ah,9 ; tulis kata dalam dx


mov dx,offset ket ; isi dx dg kata ket
int 21h

ulang: mov ah,1 ; Tunggu Input dari keyboard


int 21h

cmp al,'0' ; bandingkan Input dg 0


je H0 ; jika sama lompat ke m0

cmp al,'1'
je H1

cmp al,'2'
je H2

cmp al,'3'
je H3

cmp al,'4'
jne t5
jmp H4

Ooleh Drs.Edidas, MT 385871075.doc Halaman 3 dari 7


t5 : cmp al,'5'
jne keluar
jmp H5

keluar: cmp al,'q'


jne ulang
jmp selesai

H0: mov ah,05h ; perintah ganti halaman layar


mov al,00 ; halaman 0
int 10h ; ganti ke halaman 0

mov ah,0 ; perintah format layar


mov al,2 ; format layar 2
int 10h ; format layar ke format diatas

mov ah,09h ; perintah menulis kata yang ada di dx


mov dx,offset hal0 ; isi dx dengan kata hal0
int 21h ; jalankan perintah tulis diatas

mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,6 ; coklat
int 10h
jmp ulang

h1: mov ah,05h ; perintah ganti layar


mov al,01h ; layar halaman 1
int 10h ; ganti layar dengan halaman diatas

mov ah,0
mov al,6 ;format laya ke 6
int 10h

mov ah,09h
mov dx,offset hal1
int 21h

mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,5 ; megenta
int 10h
jmp ulang

h2: mov ah,05h ; perintah ganti layar


mov al,02h ; layar halaman 2
int 10h ; ganti layar dengan halaman diatas

mov ah,0
mov al,6 ;format laya ke 6
int 10h

mov ah,09h
mov dx,offset hal2
int 21h

mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,1 ; biru
int 10h
jmp ulang

h3: mov ah,05h ; perintah ganti layar


mov al,03h ; layar halaman 3

Ooleh Drs.Edidas, MT 385871075.doc Halaman 4 dari 7


int 10h ; ganti layar dengan halaman diatas

mov ah,0
mov al,6 ;format laya ke 6
int 10h

mov ah,09h
mov dx,offset hal3
int 21h

mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,4 ; merah
int 10h
jmp ulang

h4: mov ah,05h ; perintah ganti layar


mov al,04h ; layar halaman 4
int 10h ; ganti layar dengan halaman diatas

mov ah,0
mov al,6 ;format laya ke 6
int 10h

mov ah,09h
mov dx,offset hal4
int 21h

mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,2 ; hijau
int 10h
jmp ulang

h5: mov ah,05h ; perintah ganti layar


mov al,05h ; layar halaman 5
int 10h ; ganti layar dengan halaman diatas

mov ah,0
mov al,6 ;format laya ke 6
int 10h

mov ah,09h
mov dx,offset hal5
int 21h

mov ah,0bh
mov bh,0 ; warna latar belakang
mov bl,6 ; coklat
int 10h
jmp ulang
selesai: int 20h
gahl ends
end start

D. langkah kerja.

1. Siapkan komputer dalam sistem operasi DOS

2. Jalankan program EDIT.COM

Ooleh Drs.Edidas, MT 385871075.doc Halaman 5 dari 7


3. Ketiklah program GTHAL.ASM

4. Simpanlah file itu dengan nama GTHAL.asm

5. Compile program GTHAL.asm sehingga menjadi GTHAL.obj

perintahnya : masm.gthal.asm

6. Link program GTHAL.obj sehingga menjadi GTHAL.exe

perintahnya : link gthal.obj

7. Rubah GTHAL.exe menjadi GTHAL.com

perintahnya : exe2bin gthal.exe gthal.com

8. Jalankan program GTHAL.com dan amatilah tampilan pertama program ini

9. Ketikkan angka format layar sesuai dengan informasi pada halaman pertama

itu, kemudian tuliskan hasil kedalam table pengamatan dibawah ini.

10. Buatlah laporan praktek dan kesimpulannya.

TABEL PENGAMATAN
HALAMAN KETERANGAN ATRIBUT LAYAR YANG
INPUT
LAYAR TAMPIL
KEY-
YANG
BOARD SIMBOL FORMAT BACKGROUND
TAMPIL

0 0 E 80 X 25 Coklat

9
bersamabung ke halaman berikutnya………………..

E. Tugas Dan Pengayaan

Ooleh Drs.Edidas, MT 385871075.doc Halaman 6 dari 7


1. Revisi program diatas sehingga dapat menampilkan sebuah halaman layar masing-masing
dengan atribut yang berbeda !.

2. Hubungkan semua program ganti halaman ini sehingga setelah halaman berganti akan
meminta inputan lagi, kecuali kalau inputannya karakter ‘k’ maka program akan berhenti !.

3. Jelaskan kegunaan kenapa halaman layar perlu di buat banyak ?

4. Pada register mana terletak nilai nomor halaman pada int 10h layanan 5h ?

5. Jelaskan apa fungsi program mov ah,0

Mov al,2

Int 10h

6. Untuk apa format layar ditentukan sesudah mengganti halaman layar ?

7. Jelaskan mengapa memory monitor semakin diperbesar saja ?

8. Buat program sederhana untuk menampilkan seluruh kode ASCII ke layar montor dengan
menggunkan int 21 service 2. ( ingat ! DL diisi mulai dari 00 – FF ) !

***** SELAMAT BEKERJA SEMOGA SUKSES *****

LAMPIRAN : LISTING PROGRAM DENGAN DEBUG

Program Ganti Latarbelakang layar monitor


a150 mov bl,3 mov ah,1
mov ah,0 int 10h int 21
mov al,6 jmp 100 cmp al,30
int 10h jz 150
mov ah,0b a180 cmp al,31
mov bh,0 mov ah,0 jz 160
mov bl,1 mov al,6 cmp al,32
int 10h int 10h jz 170
jmp 100 mov ah,0b cmp al,33
mov bh,0 jz 180
a160 mov bl,4 cmp al,34
mov ah,0 int 10h jz 190
mov al,6 jmp 100 cmp al,6b
int 10h jz 11e
mov ah,0b a190 jmp 100
mov bh,0 mov ah,0 mov ah,0
mov bl,2 mov al,6 mov al,3
int 10h int 10h int 10
jmp 100 mov ah,0b int 20
mov bh,0
a170 mov bl,5
mov ah,0 int 10h
mov al,6 jmp 100
int 10h
mov ah,0b
mov bh,0 a100

Ooleh Drs.Edidas, MT 385871075.doc Halaman 7 dari 7

Anda mungkin juga menyukai