Anda di halaman 1dari 5

PRAKTIKUM MIKROPROSESOR DAN BAHASA RAKITAN 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 : Kode ASCII 7 8 9 10 13 Fungsi Bel Memberikan suara beep Backspace Memindahkan kursor 1 kolom ke belakang Horizontal tab Memindah kursor 8 kolom ke kanan Line feed Memindah kursor 1 kolom ke bawah Carriage return Memindahkan kursor ke ke awal baris Tabel 1. Tabel Karakter Kontrol ASCII Nama

Selain karakter kontrol tersebut, juga ada karakter kontrol lainnya, yang dipergunakan untuk komunikasi komputer dengan periferalnya, antara lain : 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 Tabel 1. Tabel Karakter Kontrol ASCII Lengkap 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 : Bit ke Nama 7 BL (Blink) Warna dasar 6 5 4 3 Warna tulisan 2 R (Red) 1 0

R G B I (Red) (Green) (Blue) (Intensitas warna) Tabel 3. Atribut Kalimat

G B (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.

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 Kal0 Kal1 Proses db 'PROSES PENCETAKAN STRING ',13,10,'$' db 'DIBELAKANG TANDA $ TIDAK BISA DICETAK ' ; ; ; ; ; ; ; ; ; ; Servis ke 9 Ambil Alamat Offset Kal0 Cetak perkarakter sampai tanda $ Ambil Alamat Offset Kal0 Cetak perkarakter sampai tanda $ Ambil Alamat Offset KAl0+7 Cetak perkarakter sampai tanda $ Ambil Offset kal1 Cetak perkarakter sampai ketemu $ Selesai, kembali ke DOS

Proses: MOV AH,09h MOV DX,OFFSET Kal0 INT 21h LEA DX,Kal0 INT 21h LEA DX,Kal0+7 INT 21h LEA DX,KAL1 INT 21h INT 20h 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

3. 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 ; ; atributnya ; ;-----------------------------------------------; ; INT 10h ; ;-----------------------------------------------; ; Input : ; ; AX = 1300h ; ; BL = Atribut ; ; BH = Halaman tampilan ; ; DL = Posisi X ; ; DH = Posisi Y ; ; CX = Panjang kalimat<dalam karakter>; ; ES:BP = Alamat awal string ; ;=============================================; .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

Anda mungkin juga menyukai