Assalamua’alaikum wr.wb
Dasar teori
APA ITU MODEL SMALL ?
Tanda directive ini digunakan untuk
memberitahukan kepada assembler bentuk memory yang digunakan oleh program kita.
Supaya lebih jelas model-model yang bisa digunakan adalah :
TINY
Jika
program anda hanya menggunakan 1 segment seperti program COM. Model ini
disediakan khusus untuk program COM.
S SMALL
Jika
data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64
KB.
MEDIUM
Jika
data yang digunakan oleh program kurang dari 64 KB tetapi code yang digunakan
bisa lebih dari 64 KB.
Ø -COMPACT
Jika
data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari 64
KB.
Ø LARGE
Jika
data dan code yang dipakai oleh program bisa lebih dari 64 KB.
Ø -HUGE
jika
data, code maupun array yang digunakan bisa lebih dari 64 KB.
Mungkin ada yang bertanya-tanya mengapa
pada program COM yang dibuat digunakan model SMALL dan bukannya TINY ? Hal ini
disebabkan karena banyak dari compiler bahasa tingkat tinggi yang tidak bisa
berkomunikasi dengan model TINY, sehingga kita menggunakan model SMALL sebagai
pemecahannya.
APA ITU CODE?
Tanda directive ini digunakan untuk
memberitahukan kepada assembler bahwa kita akan mulai menggunakan Code
Segment-nya disini. Code segment ini digunakan untuk menyimpan program yang
nantinya akan dijalankan.
APA
ITU ORG 100h ?
Pada program COM perintah
ini akan selalu digunakan. Perintah ini digunakan untuk memberitahukan
assembler supaya program pada saat dijalankan(diload ke memory) ditaruh mulai
pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h
byte kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan
ditempati oleh PSP(Program Segment Prefix) dari program tersebut. PSP ini
digunakan oleh DOS untuk mengontrol jalannya program tersebut.
APA ITU PERINTAH MOV ?
Perintah MOV digunakan untuk mengcopy
nilai atau angka menuju suatu register,variabel atau memory. Adapun syntax
untuk perintah MOV ini adalah :
MOV Tujuan,Asal
Sebagai
contohnya : MOV AL,9 ; masukkan nilai 9
pada AL.
MOV AH,AL ; nilai AL=9
dan AH=9
MOV AX,9 ; AX=AH+AL
hingga AH=0 dan AL:=9
Pada baris pertama(MOV AL,9), kita
memberikan nilai 9 pada register AL. Kemudian pada baris kedua(MOV AH,AL) kita
mengcopykan nilai register AL untuk AH. Jadi setelah operasi ini register AL
akan tetap bernilai 9, dan register AH akan sama nilainya dengan AL atau 9.
Pada baris ketiga(MOV AX,9), kita memberikan register AX nilai 9. Karena AX
terdiri atas AH dan AL, maka register AH akan bernilai 0, sedangkan AL akan
bernilai 9.
Perintah MOV akan mengcopykan nilai pada
sumber untuk dimasukan ke Tujuan, nilai sumber tidaklah berubah. Inilah
sebabnya MOV(E) akan kita terjemahkan disini dengan mengcopy, dan bukannya
memindahkan.
APA ITU PERINTAH INT ?
Didalam pemrograman assambler, kita akan
banyak sekali menggunakan interupsi untuk membantu kita dalam mengerjakan suatu
pekerjaan. Untuk menghasilkan suatu interupsi digunakan perintah INT dengan
syntax:
INT NoInt
Dengan NoInt adalah nomor interupsi yang
ingin dihasilkan. Sebagai contohnya bila kita ingin menghasilkan interupsi 21h,
bisa dituliskan dengan: INT 21h, maka interupsi 21h akan segera terjadi.
Interupsi
20h
berfungsi untuk mengakhiri program dan menyerahkan kendali sepenuhnya kepada
Dos. Pada program COM cara ini bukanlah satu-satunya tetapi cara inilah yang
paling efektif untuk digunakan. Bila anda lupa untuk mengakhiri sebuah program
maka program anda tidak akan tahu kapan harus selesai, hal ini akan menyebabkan
komputer menjadi hang.
APA
ITU PERINTAH ADD ?
Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal.
Hasil yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan
instruksi Tujuan:=Tujuan + Asal.
Untuk menambah dalam bahasa assembler digunakan perintah ADD dan
ADC serta INC. Perintah ADD digunakan dengan syntax :
ADD
Tujuan,Asal
Sebagai
contohnya :
MOV AH,15h ; AH:=15h
MOV AL,4 ; AL:=4
ADD AH,AL ; AH:=AH+AL, jadi AH=19h
Dan
Mov ah,09h;nilai servis untuk mencetak karakter
Mov dl,’A’; cetak karakter A
Add dl,1;tambahkan karakter
A+1 jadi B , dan seterusnya.
APA itu LOOP?
Perintah LOOP digunakan untuk melakukan suatu proses yang
berulang-ulang. 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 28
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
PROGRAM :
11.ASM
FUNGSI :
MENCETAK KARAKTER A-Z WARNA PADA ASSEMBLY
DENGAN MOV BL
.model small
.code
org 100h
proses :
mov ah,09h ; nilai servis mencetak warna
mov bl,93h ; nilai untuk mencetak karakter
warna
mov cx,26 ; banyak nya karakter warna
yang akan dicetak
ulang :
int 10h ; cetak karakter warna
add bl,3 ; tambahkan bl+3 , 93+3
= 96h dsb ,membuat warna menjadi berbeda
loop ulang ; mengulang sebanyak 26 kali
mov ah,02h ; nilai servis mencetak karakter
tanpa warna
mov dl,'A' ; karakter yang akan dicetak
“A”
mov cx,26 ; banyak nya karakter yang
akan dicetak
lagi :
int 21h ; cetak karakter!
add dl,1 ; tambahkan karakter
pada DL+1
loop lagi ; Mengulang mencetak
karakter hingga 26 kali
int 20h ; kembali ke DOS !
end proses
Baiklah
langsung saja kita buat program di atas dengan langkah-langkah berikut ini :
1. panggil atau buka M-DOS ( command prompt ) dari
menu start pada dekstop>pilih command prompt>lalu klik dua kali . atau jika belum punya Program Software
asembly nya bisa sobat download terlebih
dahulu disini download Program Software assembly
2.lalu akan muncul
kotak dialog dari command prompt yang kita panggil tadi
3.buka lembar kerja
pada command prompt dengan cara
mengetikan edit pada kotak dialog cmd yg dipanggil tadi , lalu enter
4.maka akan muncul
lembar kerja seperti ini
5.ketikkan
program pada lembar kerja edit seperti pada gambar dibawah ini
6.simpan program dengan
memilih menu file>pilih save/save as . kemudian kasih nama . disini saya
menyimpan nya dengan nama 11.asm ( ingat program assembler yang disimpan harus
berekstensi .asm )
7.panggil program yang
kita buat tadi dengan cara pilih menu file>exit , atau dengan memanggil cmd
dari menu start. lalu ketik dan ikuti
seperti pada gambar 1.1
Gambar 1.1
Penjelasan gambar 1.1
Ø panggil
Comand Promptnya lalu Ketik D: ( atau jika sobat menyimpan program nya di disk C maka Ketik C: ) , lalu enter
Ø ketik
Cd Assembly ( atau folder tempat
menyimpan program assembly) , Lalu Enter
Ø ketik
Cd Asm ( atau sub folder tempat menyimpan program assembly) , Lalu Enter
Ø ketik
Tasm 11 ( atau nama file yang sobat save tadi) , Lalu Enter
Ø ketik
Tlink –T 11, Lalu Enter
Ø kemudian
ketik nama file 11 , Tekan Enter maka akan muncul karakter A-Z Warna Pada
Assembler akan dicetak.
Semoga
bermanfaat :) jangan
lupa untuk memberikan + pada materi ini dan blognya:)
Tunggu
terus sob postingan selanjutnya :)
Jazzakumullah
khoiron katsiron , nun walqolami wama yasturun , Wassalamua’laikum wr.wb:)
Belum ada tanggapan untuk "PROGRAM MENCETAK KARAKTER A-Z WARNA PADA ASSEMBLLY"
Post a Comment