Mencetak Huruf Pada Bahasa Rakitan

Mencetak Huruf Pada Bahasa Rakitan
Mencetak Huruf Pada Bahasa Rakitan ~ Bila dihasilkan interupsi 21h apa yang akan dikerjakan oleh komputer ?. Jawabnya, ada banyak sekali kemungkinan. Pada saat terjadi interupsi 21h maka pertama-tama yang dilakukan komputer adalah melihat isi atau nilai apa yang terdapat pada register AH. Misalkan bila nilai AH adalah 2 maka komputer akan mencetak sebuah karakter, berdasarkan kode ASCII yang terdapat pada register DL. Bila nilai pada register AH bukanlah 2, pada saat dilakukan interupsi 21h maka yang dikerjakaan oleh komputer akan lain lagi.

Dengan demikian kita bisa mencetak sebuah karakter yang diinginkan dengan meletakkan angka 2 pada register AH dan meletakkan kode ASCII dari karakter yang ingin dicetak pada register DL sebelum menghasilkan interupsi 21h.

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; PROGRAM : A0.ASM ;
; FUNGSI : MENCETAK KARAKTER ;
; 'A' DENGAN INT 21 ;
;==========================S’to=;
.MODEL SMALL
.CODE
ORG 100h
Proses :
MOV AH,02h ; Nilai servis untuk mencetak karakter
MOV DL,'A' ; DL = Karakter ASCII yang akan dicetak
INT 21h ; Cetak karakter !!
INT 20h ; Selesai ! kembali ke DOS
END Proses

Program 7.1. Mencetak sebuah karakter

Setelah program 7.1. anda ketik compile-lah dengan menggunakan TASM.EXE dengan perintah :
C:\>tasm a0
Turbo Assembler Version 2.0 Copyright (c) 1988, 1990
Borland International
Assembling file: a0.ASM
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 306k
C:\>dir a0.*
Volume in drive C is Bangvandawablog
Directory of C:\
A0 ASM 506 08-14-94 3:56p
A0 OBJ 179 08-14-94 11:24p
2 file(s) 685 bytes
1,267,200 bytes free

Sampai disini sudah dihasilkan suatu file object dari KAL.ASM yang siap dijadikan file COM(karena kita membuat file dengan format program COM). Untuk itu lakukanlah langkah kedua, dengan perintah :
C:\>tlink/t a0
Turbo Link Version 3.0 Copyright (c) 1987, 1990
Borland International
C:\>tlink/t a0
Turbo Link Version 3.0 Copyright (c) 1987, 1990
Borland International
C:\>dir a0.*
Volume in drive C is Bangvandawablog
Directory of C:\
A0 ASM 506 08-14-94 3:56p
A0 OBJ 179 08-14-94 11:26p
A0 MAP 229 08-14-94 11:26p
A0 COM 8 08-14-94 11:26p
4 file(s) 922 bytes
1,266,176 bytes free

Setelah kedua proses itu selesai maka dihasilkanlah suatu program COM yang sudah siap untuk dijalankan. File-file yang tidak digunakan bisa anda hapus. Bila program 7.1. dijalankan maka pada layar akan ditampilkan

C:\>A0
A

Kita lihat disini bahwa karakter yang tercetak adalah yang sesuai dengan kode ASCII yang ada pada register DL. Sebagai latihan cobalah anda ubah register DL dengan angka 65 yang merupakan kode ASCII karakter 'A'. Hasil yang didapatkan adalah sama. Pelajarilah fungsi ini baik-baik, karena akan banyak kita gunakan pada bab-bab selanjutnya.

Mencetak Karakter Beserta Atribut

Sebuah karakter disertai dengan warna tentunya akan lebih menarik. Untuk itu anda bisa menggunakan interupsi ke 10h dengan aturan pemakaiannya :
INPUT
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

Setelah semua register dimasukkan nilainya maka lakukanlah interupsi 10h. Perlu anda perhatikan bahwa interupsi ini mencetak karakter tanpa menggerakkan kursor.
;=================================;
; PROGRAM : A1.ASM ;
; FUNGSI : MENCETAK KARATER 'A';
; BESERTA ATRIBUTNYA ;
; DENGAN INT 10h ;
;============================S’to=;
.MODEL SMALL
.CODE
ORG 100h
Proses :
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 Proses

Program 7.2. Mencetak karakter beserta atributnya

Bila program 7.2. dieksekusi maka akan ditampilkan huruf 'A' sebanyak 3 kali dengan warna dasar biru kedip dan warna tulisan Cyan(sesuai dengan nilai register BL). Mengenai halaman layar dan atribut(warna) akan kita bahas lebih lanjut pada bagian yang lain.

B:\>A1
AAA

Anda bisa merubah-rubah register AL dan BL untuk merubah karakter dan warna yang ingin dicetak.

Pengulangan Dengan Loop

Perintah LOOP digunakan untuk melakukan suatu proses yang berulangulang. Adapun syntax dari perintah ini adalah :
LOOP Tujuan

Tujuan dapat berupa suatu label yang telah didefinisikan, contoh:
MOV CX,3 ; Banyaknya pengulangan yang dilakukan
Ulang : INT 10h ; Tempat terjadinya pengulangan
LOOP Ulang ; Lompat ke label 'Ulang'

Pada proses pengulangan dengan perintah LOOP, register CX memegang suatu peranan yang khusus dimana register ini dijadikan sebagai counter/penghitung terhadap banyaknya looping yang boleh terjadi. Setiap ditemui perintah LOOP, maka register CX akan dikurangi dengan 1 terlebih dahulu, kemudian akan dilihat apakah CX sudah mencapai 0. Proses looping akan selesai bila nilai pada register CX mencapai nol. Seperti pada contoh diatas, maka interupsi 10h akan dihasilkan sebanyak 3 kali(sesuai dengan nilai CX). Perlu diperhatikan bahwa jangan sampai anda menaruh CX kedalam proses LOOP karena hal ini akan menyebabkan nilai CX diSET terus sehingga proses looping tidak bisa berhenti.

Trick :
Bila anda menetapkan nilai CX menjadi nol pada saat pertama kali sebelum dilakukan loop, maka anda akan mendapatkan proses looping yang terbanyak. Hal ini dikarenakan proses pengurangan 0 dengan 1 akan menghasilkan nilai FFFFh(-1), Contoh :
MOV CX,00
Ulang: LOOP Ulang

Mencetak Beberapa Karakter
Untuk mencetak beberapa karakter, bisa anda gunakan proses looping. Sebagai contoh dari penggunaan looping ini bisa dilihat pada program 7.3.
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; PROGRAM : ABC0.ASM ;
; FUNGSI : MENCETAK 16 BUAH ;
; KARAKTER DENGAN ;
; INT 21h SERVIS 02 ;
;==========================S’to=;
.MODEL SMALL
.CODE
ORG 100h
Proses :
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
END Proses

Program 7.3. Pengulangan dengan perintah LOOP

Bila program 7.3. dijalankan maka akan ditampilkan :
ABCDEFGHIJKLMNOP

Perintah INC DL akan menambah register DL dengan 1, seperti intruksi, DL:=DL+1 dalam Pascal. Lebih jauh mengenai operasi aritmatika(INC) ini akan dibahas pada bab selanjutnya.


Oke, sekian dulu posting kali ini mengenai Mencetak Huruf Pada Bahasa Rakitan. Semoga berguna........

» JANGAN LUPA LIKE N Komentarnya Yeach...

= Baca Juga Sob =



Ditulis Oleh : Unknown ~ Berbagi Ilmu Pengetahuan

Artikel Mencetak Huruf Pada Bahasa Rakitan ini diposting oleh Unknown. Sobat diperbolehkan mengcopy paste atau menyebar-luaskan artikel ini, namun jangan lupa untuk meletakkan link AKTIF artikel ini sebagai sumbernya. Terimakasih atas kunjungan Anda serta kesediaan Anda membaca artikel ini. Kritik dan saran dapat anda sampaikan melalui kotak komentar.

::..Get Free Daily Email Updates..::

Comments
0 Comments

Tidak ada komentar:

Posting Komentar

Baru Lama HomE
to Top