Anda di halaman 1dari 13

UNIVERSITAS NEGERI PADANG MATAKULIAH: Praktik Mikroprosesor

PROGRAM STUDI : Pendidikan Teknik


TOPIK : Pemrograman Mikroprosesor
Elektronika
JUDUL : Pemrograman Mikroprosesor Melalui
JENJANG PROGRAM / SEMESTER : S1/ V
Register dan Interupt
PERTEMUAN KE :1 NOMOR : 01 / PM/S1 /23

A.Tujuan

1. Agar mahasiswa dapat membuat program untuk menampilkan sebuah

karakter di layar monitor menggunakan INT 21H service 2 dan nilai

ASCII ditempatkan pada register DL.

2. Agar mahasiswa dapat membuat program untuk menampilkan sebuah

kalimat di layar monitor menggunakan INT 21H service 2 dan nilai

ASCII ditempatkan pada register DL.

3. Agar mahasiswa dapat membuat program untuk menampilkan sebuah

karakter di layar monitor menggunakan INT 21H service 9 dengan

kalimat yang akan ditampilkan ditulis pada alamat lain.

4. Agar mahasiswa dapat membuat program untuk menampilkan kalimat

bergerak sepanjang layar monitor menggunakan INT 10 service 2 untuk

mengatur poisi kursor .

5. Agar mahasiswa dapat membuat program untuk membersihkan layar

monitor agar tampilan tampilan kalimat bersih dengan menggunakan INT

10 service 0 dengan format layar 3 ( Al=3).

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 1 dari 13
B. Teori Pendukung

Mikroprosesor dapat diprogram untuk menampilkan data ke layar monitor. Untuk


urusan monitor vendor mikroprosesor Intel telah menerbitkan program interupt sebagai
berikut :
1. INT 5 adalah perintah PRINT SCREEN. Untuk mencetak apa yang ada di layer.
2. INT 10 service 0H, adalah perintah format layer. Nilai 0H disimpan di register AH
sedang nilai yang yang ada pada register AL adalah nilai format layar. Ada 15 nilai
mulai dari 0 sampai F yang menyatakan format layar ( Lihat detailnya pada kamus
Interupt).
3. INT 10 service 01H, adalah perintah untuk menentukan bentuk kursor.
4. INT 10 service 02H, adalah perintah untuk menentukan posisi kursor.
5. INT 10 service 03H, adalah perintah untuk mencari posisi kursor.
6. INT 10 service 04H, adalah perintah untuk mencari posisi light pen.
7. INT 10 service 05H, adalah perintah untuk memilih halaman yang aktif.
8. INT 10 service 06H, adalah perintah untuk menggulung layar ke atas.
9. INT 10 service 07H, adalah perintah untuk mengguung layar ke bawah.
10. INT 10 service 08H, adalah perintah untuk membaca data ASCII dan atribut karakter.
11. INT 10 service 09H, adalah perintah untuk mencetak karakter ASCII dan atribut ke
layar.
12. INT 10 service 0AH, adalah perintah untuk mencetak karakter ASCII tanpa atribut le
layar.
13. INT 10 service 0BH, adalah perintah untuk mencetak warna background dan
foreground layar.
14. INT 10 service 0CH, adalah perintah untuk mencetak pixel pada posisi kursor.
15. INT 10 service 0DH, adalah perintah untuk membaca angka pixel.
16. INT 10 service 0EH, adalah perintah untuk mencetak karakter TTY (tele type) mode.
17. INT 10 service 0FH, adalah perintah untuk membaca modus video.
18. INT 21 service 02H, adalah perintah untuk menulis satu karakter le layar.
19. INT 21 service 09H, adalah perintah untuk menulis seuntai kalimat ke layar.

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 2 dari 13
Untuk lebih jelasnya cara penggunaan INTn tersebut diatas dapat dilihat dalam kamus
interupt. Karakter yang dapat ditampilkan di layar adalah karakter yang sudah mempunyai
kode ASCII (American Standart Code for Interchage Information) atau kode perluasanya.
C. Alat dan Bahan

1. PC
2. Debug
3. Dosbox

C. Langkah Kerja

1. Jalankan program DEBUG.exe (dapat dilakukan melalui tab RUN pada menu START

yang ada pada pojok kiri bawah layar Windows, sehingga layar debug dengan prompt –

(tanda kurang) seperti gambar berikut:

2. Ketik perintah r pada prompt – untuk melihat regsister-register yang ada di dalam

mikroprosesor Intel yang yang terpasang di dalam komputer anda, sehingga tampilah

nama-nama register beserta isinya seperti yang terlihat pada gambar berikut:

3. Selanjutnya catatlah isi 13 buah regsiter dan status 8 bit register flag yang terlihat di

layar debug anda, lalu cobalah memaknai setiap data yang anda catat itu !.

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 3 dari 13
Hasil: (makna setiap isi register dan makna status register Flag)

………………………………………………………………………………………………………

………………………………………………………………………………………….…………

4. Rakitlah program seperti disamping pada alamat


-a100
Xxxx:0100 MOV AH,02
offset 100 dengan perintah a[alamat].  MOV DL,45
INT 21
INT 20

5. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset

ketika program ditulis tadi!

Cek 1: IP= ………………………………………………………….

6. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !

7. Amati apa yang terjadi ! Hasil 1 : ………………………………………………

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 4 dari 13
-a100
8. Tambahkan tiga baris program berikut Xxxx:0100 MOV AH,00
MOV AL,03
ke program tadi pada baris 1 sampai 3 INT 10
MOV AH,02
sehingga program menjadi seperti :  MOV DL,45
INT 21
INT 20

9. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset

ketika program ditulis tadi!

Cek 2: ………………….…………………………………………………………..

10. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !

11. Amati apa yang terjadi ! Hasil 2 : ………………………………………………

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 5 dari 13
Catatan : Fungsi program 3 baris pertama adalah : ……………………………….

12. Tambahkan program lagi untuk mencetak karakter


-a100
Xxxx:0100 MOV AH,00
lebih banyak. Misalnya seperti program disamping ! . MOV AL,03
INT 10
MOV AH,02
MOV DL,45
INT 21
13. Jika sudah selesai dirakit pastikan isi register IP
MOV AH,02
MOV DL,44
apakah sama dengan alamat offset ketika program INT 21
MOV AH,02
ditulis tadi! MOV DL,49
INT 21
Cek 3: IP =………………………………….. INT 20

14. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 6 dari 13
15. Amati apa yang terjadi ! Hasil 3 : ………………………………………………

Catatan : Jika banyak karakter yang akan ditampilkan maka terjadi program yang

panjang sekali maka untuk itu dilakukan manipulasi dengan cara:

1. Mendifinisikan karakter yan akan ditulis pada alamat lain.

2. Tunjuk alamat awal karakter dengan salah register dengan cara pengalamatan

tidak langsung (indirect addressing mode ).

3. Isikan nilai register CX sebanyak karater yang akan ditampilkan

4. Berikan perintah loop ( pegulangan).

5. ………………………………………………………………………………………..

6. ………………………………………………………………………………………..

16. Rakit program berikut pada alamat offset 100 dan dan program definisi karakter pada

alamat offset 300 sbb:

A300
xxxx: 0300 DB’ TERNYATA BELAJAR MIKROPROSESOR ITU MENYENANGKAN’

A100
xxxx:0100 MOV AH,00
MOV AL,03
INT 10
MOV CX,0030
MOV AH,02
MOV BX,0300
MOV DL,[BX]
INT 21
INC BX
LOOP 010E
INT 20

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 7 dari 13
17. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset

program utama (a100)! . Program pada alamat 300 adalah sub program yang dipanggil

melalui register BX.

Cek 4: …………………………………………………………..

18. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !

19. Amati apa yang terjadi ! Hasil 4 : ………………………………………………

MOV AH,00
MOV AL,03
INT 10
MOV AH,02
MOV DX,0920
INT 10
MOV CX,0030
MOV AH,02
MOV BX,0300
MOV DL,[BX]
INT 21
INC BX
LOOP 0115
INT 20

20. Tambah lagi baris program untuk memindahkan posisi tampil karakter dengan

menggunakan INT 10 sevice 2. Rakit program pada alamat 100 seperti program

disamping dan subprogram tetap pada alamat 300!

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 8 dari 13
21. Jika sudah selesai dirakit pastikan isi register IP apakah sama dengan alamat offset

program utama (a100)! . Cek 5: …………………………………………………………..

22. Eksekusi program pada prompt debug (tanda kurang) dengan perintah g !

23. Amati apa yang terjadi ! Hasil 5 : ………………………………………………

24. Dengan data masih tetap pada alamat a300, rubahlah posisi kursor untuk DX=1240 (ke

samping kanan bawah), lalu amati tampilan teks nya.

25. Amati apa yang terjadi ! Hasil 6 : ………………………………………………

26. Lakukan perubahan posisi kursor untuk 3 posisi A200


xxxx: 0200 PUSH BP
dengan menambahkan program delay yang ditulis PUSH CX
MOV BP,100
MOV CX,4000
pada alamat a200 seaegai berikut: LOOP 208
DEC BP
JNZ 205
POP CX
POP BP
RET

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 9 dari 13
27. Lanjutkan merancang dan merakit program pada layar debug untuk menampilkan huruf

abjad dari A sampai Z ! (kode ASCII dari A=41), seperti listing program pada kotak

sebelah kiri. Selanjutnya modifikasi program untuk menampilkan huruf abjad kecil a

sampai z jika kode ASCII a=61.. Hasil 6 : ( berupa Listing Program pada kotak

sebelah kanan)

A100 A100
MOV AH,00
MOV AL,03
INT 10
Mov CX,1A
Mov AH,2
Mov DL,41
INT 21
INC DL
LOOP 10D
INT 20

28. Rancang dan rakit program untuk menampilkan huruf abjad dari z sampai a dimana

nilai ASCII dari z=7a !. Hasil 7: ( Listing Program)

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 10 dari 13
29. Rancang dan rakit program untuk menampilkan huruf angka 9 sampai 5 pada posisi

ditengah-tengah layar ! nilai ASCII dari 9=39 !. Hasil 8: ( Listing Program)

30. Untuk program berikut anda mencatat kode ASCII nama anda sendiri pada layar debug

dengan cara memasukkan nama anda pada alamat tertentu dengan perintah A[alamat]

lalu melihat hasilnya dengan perintah d[alamat], seperti contoh E=45, D=44, I=49,

D=44, A=41 dan S=53.

Hasil 9: (catatan kode ASCII nama anda masing-masing)…………………………….

-a100
1358:0100 db'EDIDAS'
1358:0106
-d100
1358:0100 45 44 49 44 41 53 00 00-00 00 00 00 00 00 00 00 EDIDAS.....
1358:0110 00 00 00 00 00 00 00 00-00 00 00 00 34 00 47 13 ...........
1358:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...........
1358:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...........
1358:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ...........

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 11 dari 13
31. Tambahkan program delay seperti disamping
A200
untuk menampilkan huruf nama anda ditampilkan xxxx: 0200 PUSH BP
PUSH CX
secara berurutan karakter demi karakter. Rakit MOV BP,100
MOV CX,4000
LOOP 208
program delay pada alamat offset 200. Hasil10: DEC BP
JNZ 205
(listing program nama anda digabung dengan POP CX
POP BP
program delay)………………………………….. RET

32. Eksekusi program diatas lalu amatilah tampilan pada layar !

Hasil 11: ………………………………………………………………………………

33. Praktikum selesai.

D.Tugas Dan Pengayaan

1. Analisa data yang telah anda kumpulkan lalu buat kesimpulannya!.


2. Kembangkan program tampilan layar untuk membuat nama berjalan:
a. dari kiri ke kanan pada layar monitor !
b. dari kanan ke kiri pada layar monitor !
c. bolak baik kanan kiri pada layar monitor !
d. dari atas ke bawah pada layar monitor !
e. dari bawah ke atas pada layar monitor !
f. bolak balik bawah atas pada layar monitor !
g. dan lain lain animasi sesuai dengan tingkat pemahaman anda

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 12 dari 13
XXXX SEMOGA SUKSES XXXX

---------------------------------------------------------------------------------------------------------
Dibuat Oleh Eddas, MT Halaman 13 dari 13

Anda mungkin juga menyukai